我想在激光打印机上打印一本书,所以我准备了一个可以打印的PostScript文件,带有重新排序和2页的页面。现在我想在适当的页面上添加小册子标记,如下图所示:
从其他SO问题我知道它的while
命令将PS文件中的各个页面分开,所以我编写了简单的Perl脚本来计算showpage
的出现次数,并在必要时添加PostSript代码,只是为了测试这种方法是否有效:
showpage
但是在跑完之后:
#!/usr/bin/env perl
use strict;
use warnings;
my $bookletSheets = 6;
my $occurence = 1;
while (my $line = <>) {
if ($line !~ /^showpage/) {
print $line;
next;
}
my $mod = $occurence % (2*$bookletSheets);
if ($mod == 1) {
print " 1 setlinewidth\n";
print " 5 5 newpath moveto\n";
print "-5 5 lineto\n";
print "-5 -5 lineto\n";
print " 5 -5 lineto\n";
print " 5 5 lineto\n";
print "0 setgray\n";
print "stroke\n";
print "%NOP\n"
}
print $line;
$occurence++;
}
尽管代码已正确注入,但我在文档查看器中看不到任何其他标记的迹象。我做错了什么?
根据我的想法,有一些链接:
答案 0 :(得分:3)
经过一番调查,结果发现缺少图像是由BoundingBox
裁剪引起的。边界框被移动,因为PS文件是从带有剥离边距的PDF获得的。