5

是否有任何适用于 Linux 的命令行工具允许我使用文本或特定字体、颜色和大小注释 PS 或 PDF 文件而不会损失质量?我试过 ImageMagick 的转换,结果 PDF 质量很差。

我有一个最初在 Adob​​e Illustrator 中创作的模板,我想从中生成 PDF,并在某些地方使用名称。我有一个巨大的名字列表,所以我想分批(不是交互式地)这样做。

如果有人有任何想法,我将不胜感激。谢谢,卡尔

4

2 回答 2

3

实现此目的的另一种方法是破解 postscript 文件本身。以前AI文件postscript文件,可以直接修改;我不知道那是不是真的了。所以你可能需要导出它。

为简单起见,我假设只有一个页面。因此,在最后会有一个调用showpage(可能通过另一个名字)。在显示页面之前执行的任何绘图命令都将显示在页面上。

您可能需要重新初始化图形状态initgraphics

要放置文本,您需要设置一种新字体(旧字体已被 initgraphics 无效)以点为单位测量位置(72 点/英寸,28.3465 点/厘米)。

/Palatino-Roman 17 selectfont %so much prettier than Times
x y moveto
(new text) show

要进行合并,您可以使用 perl:将文档的开头作为 HERE 文档发出,通过程序构造一些文本写入行,发出文档的尾部。这是使用 PERL 生成 postscript的示例

--或者,您可以使用选项 ( )从命令行(使用 ghostscript)获取数据$gs -q -- program.ps arg1 arg2 ... argn。程序可以通过名为 /ARGUMENTS 的数组访问这些参数。

所以,假设你有一个漂亮的图形,一个可怕的小丑拿着一个大约 1 英寸宽、3 英寸高、左上角距离左侧 4 英寸、距离底部 4 英寸的空白标志。您可以将此代码插入到 ps 程序中,就在showpage.

initgraphics
/Palatino-Roman 12 selectfont
4 72 mul 4 72 mul moveto
ARGUMENTS {
    gsave show grestore 0 -14 rmoveto
} forall

现在你可以让他说一些有趣的话($gs -- clown.ps "On a dark," "and stormy night...")。

于 2011-12-06T07:37:48.217 回答
2

我认为最好创建 PDF 表单并用pdftk fill_form批量填写:

$ pdftk form.pdf fill_form data.fdf output out.pdf flatten

表单数据应该是表单数据格式(它只是带有指定字段名称和值的 XML 文件)。
注意flatten命令。需要将填写的表格转换为普通文档。

另一种方法是创建一组“在某些地方有名称”和透明背景的 PDF 文档,然后pdftk在模板上标记它们中的每一个:

$ pdftk template.pdf stamp words.pdf output out.pdf
于 2011-12-03T05:22:47.497 回答