我有一些由gnuplot生成的postscript格式的图表。我需要在图表上放置一些标识信息。如何编写脚本以执行此操作?我想在图表的右上角写入一个数字(.ps文件)。
我有一些由gnuplot生成的postscript格式的图表。我需要在图表上放置一些标识信息。如何编写脚本以执行此操作?我想在图表的右上角写入一个数字(.ps文件)。
好的,你提供的示例文件表现良好(并且没有重新定义showpage
运算符)。
所以现在我假设以下内容:
gnp-NNN.ps
构造一样(就像gnp-544.ps一样)。NNN
。我还假设您已经安装了Ghostscript,并且它是最新版本,即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个点"(原点0,0设置为左下角)。-g5030x5320
给出503x532个点(由于-sDEVICE=pdfwrite
使用的默认分辨率为720 dpi)。(文件号544) show
或其他任何内容。您还可以添加许多参数来调整输出文件的质量(分辨率、字体嵌入等),但现在这些就足够了。
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)
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
for i in $(seq 1 1000); do addnumbers-make-pdf.sh ${i} ; done
更新:
哈哈!它甚至可以工作;-) 我刚在Windows上测试了它。这是一个屏幕截图,显示原始文件和叠加文件(作为PDF文件):
此 SuperUser答案包含许多详细信息,可以帮助您完成上述路径。
借助文本编辑器,您可以手动将PostScript代码插入到.ps文件中,以呈现附加信息。
但是,在查看图表的PS代码之前,我无法为您提供可工作的PS代码片段。
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代码片段是否真正有效。