From a10f193fa848901b2f1eb0ea9553fcca968c62f5 Mon Sep 17 00:00:00 2001 From: ben Date: Tue, 16 May 2006 22:55:46 +0000 Subject: [PATCH] On Level 2 implementations, use setpagedevice to select the correct page size. git-svn-id: svn://svn.tartarus.org/sgt/halibut@6689 cda61777-01e9-0310-a592-d414129be87e --- bk_ps.c | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/bk_ps.c b/bk_ps.c index 61a7993..7c0fbb8 100644 --- a/bk_ps.c +++ b/bk_ps.c @@ -99,6 +99,18 @@ void ps_backend(paragraph *sourceform, keywordlist *keywords, if (p->type == para_VersionID) ps_comment(fp, "% ", p->words); + /* + * Request the correct page size. We might want to bracket this + * with "%%BeginFeature: *PageSize A4" or similar, and "%%EndFeature", + * but that would require us to have a way of getting the name of + * the page size given its dimensions. + */ + fprintf(fp, "/setpagedevice where {\n"); + fprintf(fp, " pop 2 dict dup /PageSize [%g %g] put setpagedevice\n", + doc->paper_width / FUNITS_PER_PT, + doc->paper_height / FUNITS_PER_PT); + fprintf(fp, "} if\n"); + for (fe = doc->fonts->head; fe; fe = fe->next) { /* XXX This may request the same font multiple times. */ if (fe->font->info->fp) { -- 2.11.0