在某种意义上,我想知道
假设我有一个遵循文档结构约定的现有文档。我可以扫描它,提取出前言、尾页和各个页面。然后,我想将选定的页面嵌入到另一个文档的输出中,同时进行缩放和平移。我尝试过遵循封装后置脚本的约定,但这些约定假设源材料符合正确的规则。
我尝试过以下方法:
在前言中定义这些内容:
然后在我的一个输出页面中,我做了这样的事情:
psnup
是如何工作的。假设我有一个遵循文档结构约定的现有文档。我可以扫描它,提取出前言、尾页和各个页面。然后,我想将选定的页面嵌入到另一个文档的输出中,同时进行缩放和平移。我尝试过遵循封装后置脚本的约定,但这些约定假设源材料符合正确的规则。
我尝试过以下方法:
在前言中定义这些内容:
/BeginEPSF {
/b4_inc_state save def % save state for cleanup
/dict_count countdictstack def % count objects on dict stack
/op_count count 1 sub def % count objects on operand stack
userdict begin % push userdict on dict stack
/showpage { } def % redefined showpage
0 setgray 0 setlinecap
1 setlinewidth 0 setlinejoin
10 setmiterlimit [] 0 setdash newpath
/languagelevel where
{pop languagelevel
1 ne
{false setstrokeadjust false setoverprint
} if
} if
} bind def
/EndEPSF {
count op_count sub {pop} repeat % clean up stacks
countdictstack dict_count sub {end} repeat
b4_inc_state restore
} bind def
然后在我的一个输出页面中,我做了这样的事情:
%%Page: "1" 1
BeginEPSF
gsave
0.00000 49.76471 translate
0.64706 0.64706 scale
(copy one page from source document, discarding its leading %%Page)
grestore
EndEPSF
showpage
然而,嵌入的页面在输出文档中仍然保持不变。嵌入页面中的某些内容覆盖了我的BeginEPSF
函数。
我已经比较并确认了我的代码和psnup都未改变页面内容(除了删除%%Page注释),所以问题应该出在包装代码上。
与其花费几天时间去理解psnup代码,我想知道是否有一份类似于EPS规范的文档,说明应该如何处理这个问题。
psnup
程序就是一个例子,它可以据说接受任何输入的后续文件,并生成一个包含多个输入页面的输出页面的文件。 - undefined