~mdw
/
sgt
/
halibut
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Implemented PDF outlines.
[sgt/halibut]
/
bk_ps.c
diff --git
a/bk_ps.c
b/bk_ps.c
index
ae1feae
..
77b0ab5
100644
(file)
--- a/
bk_ps.c
+++ b/
bk_ps.c
@@
-50,7
+50,6
@@
void ps_backend(paragraph *sourceform, keywordlist *keywords,
filename = dupstr("output.ps");
for (p = sourceform; p; p = p->next) {
filename = dupstr("output.ps");
for (p = sourceform; p; p = p->next) {
- p->private_data = NULL;
if (p->type == para_Config && p->parent) {
if (!ustricmp(p->keyword, L"ps-filename")) {
sfree(filename);
if (p->type == para_Config && p->parent) {
if (!ustricmp(p->keyword, L"ps-filename")) {
sfree(filename);
@@
-106,11
+105,12
@@
void ps_backend(paragraph *sourceform, keywordlist *keywords,
fprintf(fp, "%%%%EndSetup\n");
/*
fprintf(fp, "%%%%EndSetup\n");
/*
- * Output the text.
+ * Output the text
and graphics
.
*/
pageno = 0;
for (page = doc->pages; page; page = page->next) {
text_fragment *frag;
*/
pageno = 0;
for (page = doc->pages; page; page = page->next) {
text_fragment *frag;
+ rect *r;
pageno++;
fprintf(fp, "%%%%Page: %d %d\n", pageno, pageno);
pageno++;
fprintf(fp, "%%%%Page: %d %d\n", pageno, pageno);
@@
-137,6
+137,13
@@
void ps_backend(paragraph *sourceform, keywordlist *keywords,
}
#endif
}
#endif
+ for (r = page->first_rect; r; r = r->next) {
+ fprintf(fp, "%g %g moveto %g 0 rlineto 0 %g rlineto "
+ "-%g 0 rlineto closepath fill\n",
+ r->x / 4096.0, r->y / 4096.0, r->w / 4096.0,
+ r->h / 4096.0, r->w / 4096.0);
+ }
+
for (frag = page->first_text; frag; frag = frag->next) {
char *c;
for (frag = page->first_text; frag; frag = frag->next) {
char *c;