我有一些postcript格式的图表,由gnuplot生成。我需要在图表上放置一些识别信息。如何编写一些指令来执行此操作?我想在图表的右上角写一个数字(.ps文件)。
答案 0 :(得分:5)
好的,您链接到的示例文件表现良好(并且没有重新定义showpage
运算符)。
所以我现在假设以下内容:
gnp-NNN.ps
一样构建(如 gnp-544.ps )。NNN
。我还假设你安装了Ghostscript,它是most recent version,8.71。我目前在Windows上 - 如果您使用的是Linux / Unix,只需将gswin32c.exe
替换为gs
,将所有行结尾^
替换为\
。
现在首先尝试这个命令:
gswin32c.exe ^
-o gnp-with-number-544.pdf ^
-sDEVICE=pdfwrite ^
-g5030x5320 ^
-c "/Helvetica-Italic findfont 15 scalefont setfont 453 482 moveto (544) show" ^
-f gnp-544.ps
并查看生成的gnp-with-number-544.pdf
是否符合您的要求。
-c "..."
用于将PostScript代码段传递给Ghostscript,并使其与主.ps文件一起处理,然后使用-f ...
作为下一个参数。
您可以修改参数:
/Helvetica-Italic
字体名替换为/Helvetica
,/Courier
,/Times
,Helvetica-Bold
或您可以使用和喜欢的任何内容。 15
这里表示15分(PDF 72分== 1英寸)。 453 482
将PostScript当前点移动到“453指向左侧,482指向顶部”(使用oringin 0,0 设置在左下角。)-g5030x5320
为您提供503x532分(由于-sDEVICE=pdfwrite
使用的默认分辨率为720 dpi。(File No. 544) show
或您想要的任何内容。您还可以添加相当多的参数来调整输出文件的质量(分辨率,字体嵌入等),但这些参数现在都可以。
如果您出于某种原因需要PostScript输出而不是PDF,请更改以下命令:
gswin32c.exe ^
-o gnp-with-number-544.ps ^
-sDEVICE=ps2write ^
-g5030x5320 ^
-c "/Helvetica-Italic findfont 15 scalefont setfont 453 482 moveto (544) show" ^
-f gnp-544.ps
现在,如何批量转换这个?对于最后一步,我假设:
NNN
编号方案未使用前导0
。 在Windows 上,使用以下内容创建addnumbers-make-pdf.bat
文件:
gswin32c.exe ^
-o gnp-with-number-%1.pdf ^
-sDEVICE=pdfwrite ^
-g5030x5320 ^
-c "/Helvetica-Italic findfont 15 scalefont setfont 453 482 moveto (%1) show" ^
-f gnp-%1.ps
现在在cmd.exe
控制台中运行此命令:
for /l %i in (1,1,100) do (addnumbers-make-pdfvim.bat %i)
在Linux上,使用以下内容创建addnumbers-make-pdf.sh
Bash shell脚本:
#!/bin/bash
gs \
-o gnp-with-number-${1}.pdf \
-sDEVICE=pdfwrite \
-g5030x5320 \
-c "/Helvetica-Italic findfont 15 scalefont setfont 453 482 moveto (${1}) show" \
-f gnp-${1}.ps
现在在shell中运行此命令:
for i in $(seq 1 1000); do addnumbers-make-pdf.sh ${i} ; done
<强>更新强>
哈!它甚至可以工作;-)我刚刚在Windows上测试过它。这是包含原始文件和重叠文件(如PDF)的屏幕截图:
答案 1 :(得分:3)
如果您无权访问Gnuplot源文件,则这是一个有效的通用方法(您可以编写脚本)。它使用 Ghostscript 和 PDFTK 。
pdftk
(在Unix上)或pdftk.exe
(在Windows上)覆盖两个PDF。This SuperUser answer包含许多详细信息,可以帮助您完成上述路径。
借助文本编辑器,您可以插入PostScript代码,手动将其他信息呈现到.ps文件中。
但是,如果没有首先看到图表的PS代码,我就无法为您提供有效的PS代码段。
Ghostscript 您可以使用一个命令行从图表中创建新的PS文件。
尝试使用s.th.类似于gs -sDEVICE=ps2write -o output-with-comments-gnuplot.ps -c "570 800 moveto /Helvetica findfont 32 scalefont setfont (Number: 42) show" -f /path/to/gnuplot.ps
“。
但是,如果没有首先看到图形的PS代码,我无法确定这个PS代码片段是否真的有效。
答案 2 :(得分:1)