想使用ghostscript在pdf文件上写标题。我试过这个论坛的几个主题
can I use Ghostscript to overlay a text (fax) header onto a PDF and/or TIFF?
How can I make a program overlay text on a postscript file?
我尝试了这段代码并且有效。我无法看到标题但是当我使用find函数搜索标题时,我可以在某处看到标题,但它不可见。
gs \
-o /5/7007.pdf \
-sDEVICE=pdfwrite \
-g5030x5320 \
-c "/Helvetica-Italic findfont 15 scalefont setfont 453 482 moveto (544) show" \
-f /5/77.pdf
和其他代码是
gs -dBATCH -dNOPAUSE -sDEVICE=pdfwrite \
-sOutputFile=/5/7007.pdf \
-c "/Times findfont 12 scalefont setfont 50 765 moveto (header text) show" \
-f /5/77.pdf
这两个代码也会生成pdf文件和标题,但标题不可见。
我的ghostscript输出是
Page 2
Page 3
Page 4
Page 5
Can't find (or can't open) font file %rom%Resource/Font/Arial-ItalicMT.
Can't find (or can't open) font file Arial-ItalicMT.
Can't find (or can't open) font file %rom%Resource/Font/Arial-ItalicMT.
Can't find (or can't open) font file Arial-ItalicMT.
Didn't find this font on the system!
Substituting font Helvetica-Oblique for Arial-ItalicMT.
Page 6
Page 7
Page 8
Page 9
Page 10
Page 11
我想在所有页面中编写页眉和页脚,我对任何字体都没问题,或者如果可能的话可以更改
。我用fc-list列出了几种字体。我使用其中一个然后也得到类似的错误。似乎ghostscript试图匹配每个页面字体。我对匹配每个页面字体不感兴趣。只想使用一些可用的标题字体。
部分字体列表在这里
fc-list
Liberation Mono:style=Regular
Utopia:style=Bold Italic
Nimbus Sans L:style=Regular Italic
DejaVu Serif,DejaVu Serif Condensed:style=Condensed,Book
Hershey\-Gothic\-English:style=Regular
URW Palladio L:style=Roman
DejaVu Serif,DejaVu Serif Condensed:style=Condensed Bold Italic,Bold Italic
Century Schoolbook L:style=Bold Italic
DejaVu Serif,DejaVu Serif Condensed:style=Condensed Bold,Bold
Liberation Sans:style=Regular
DejaVu Sans,DejaVu Sans Condensed:style=Condensed Oblique,Oblique
DejaVu Sans Mono:style=Bold Oblique
Carlito:style=Italic
Liberation Serif:style=Bold Italic
Caladea:style=Bold
DejaVu Serif:style=Bold Italic
Nimbus Sans L:style=Bold
OpenSymbol:style=Regular
Utopia:style=Bold
Caladea:style=Bold Italic,Italic
Hershey\-Plain\-Duplex\-Italic:style=Regular
答案 0 :(得分:1)
您需要添加代码以在页面上作为EndPage过程创建标记,否则您首先在“页面”上创建标记,然后编写PDF文件的内容。我假设你想以相反的方式做到这一点,先写下PDF文件的内容,然后再写下附加内容。
您还应该设置您希望文本所在的颜色,否则它将使用当前颜色,该颜色可能是白色。 0 setgray
0 0 0 setrgbcolor
或0 0 0 1 setcmykcolor
会将当前颜色设置为黑色。
类似于:
-c "<</EndPage {0 setgray /Times 20 selectfont 453 482 moveto (544) show}>> setpagedevice" -f
应该可以运作得很好。
关于Arial-ItalicMT的警告,这意味着您的PDF文件使用该字体,但不包含该字体。你必须:
为了执行2或3中的任何一个,您需要修改fontmap.GS或cidfmap,具体取决于它是字体还是丢失的CIDFont。
添加更正的代码:
-sDEVICE=pdfwrite -sOutputFile=\temp\out.pdf -c "<</EndPage {2 ne {0.5 setgray /Times 20 selectfont 453 48 moveto (Test) show pop true}{pop false} ifelse} >> setpagedevice" -f