在' showpage'之前注入PostScript代码

时间:2015-12-26 18:42:48

标签: printing postscript

我想在激光打印机上打印一本书,所以我准备了一个可以打印的PostScript文件,带有重新排序和2页的页面。现在我想在适当的页面上添加小册子标记,如下图所示:

Booklet marks

从其他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++;
}

尽管代码已正确注入,但我在文档查看器中看不到任何其他标记的迹象。我做错了什么?

根据我的想法,有一些链接:

1 个答案:

答案 0 :(得分:3)

经过一番调查,结果发现缺少图像是由BoundingBox裁剪引起的。边界框被移动,因为PS文件是从带有剥离边距的PDF获得的。