summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--bk_pdf.c18
1 files changed, 13 insertions, 5 deletions
diff --git a/bk_pdf.c b/bk_pdf.c
index fa5262a..ce71c5e 100644
--- a/bk_pdf.c
+++ b/bk_pdf.c
@@ -76,7 +76,10 @@ void pdf_backend(paragraph *sourceform, keywordlist *keywords,
olist.number = 1;
cat = new_object(&olist);
- outlines = new_object(&olist);
+ if (doc->n_outline_elements > 0)
+ outlines = new_object(&olist);
+ else
+ outlines = NULL;
pages = new_object(&olist);
resources = new_object(&olist);
@@ -84,11 +87,16 @@ void pdf_backend(paragraph *sourceform, keywordlist *keywords,
* The catalogue just contains references to the outlines and
* pages objects.
*/
- objtext(cat, "<<\n/Type /Catalog\n/Outlines ");
- objref(cat, outlines);
+ objtext(cat, "<<\n/Type /Catalog");
+ if (outlines) {
+ objtext(cat, "\n/Outlines ");
+ objref(cat, outlines);
+ }
objtext(cat, "\n/Pages ");
objref(cat, pages);
- objtext(cat, "\n/PageMode /UseOutlines\n>>\n");
+ if (outlines)
+ objtext(cat, "\n/PageMode /UseOutlines");
+ objtext(cat, "\n>>\n");
/*
* Set up the resources dictionary, which mostly means
@@ -349,7 +357,7 @@ void pdf_backend(paragraph *sourceform, keywordlist *keywords,
/*
* Set up the outlines dictionary.
*/
- {
+ if (outlines) {
int topcount;
char buf[80];