I have some graphs in postscript format, generated by gnuplot. I need to place some identifying information on the graph. How can I script some instructions to do that? I want to write a number at the top right corner of the graph (a .ps file).
相关问题
- How to get the return code of a shell script in lu
- Correctly parse PDF paragraphs with Python
- Set BaseUrl of an existing Pdf Document
- Invoking Mirth Connect CLI with Powershell script
- Emacs shell: save commit message
相关文章
- 使用2台跳板机的情况下如何使用scp传文件
- In IntelliJ IDEA, how can I create a key binding t
- shell中反引号 `` 赋值变量问题
- How get the time in milliseconds in FreeBSD?
- Behavior of uniforms after glUseProgram() and spee
- Launch interactive SSH bash session from PHP
- Python Sendgrid send email with PDF attachment fil
- Generate disk usage graphs/charts with CLI only to
Ok, the example file you linked to is well behaving (and has not re-defined the
showpage
operator).So I'm now assuming the following:
gnp-NNN.ps
(like gnp-544.ps is).NNN
from the filename.I also assume you have Ghostscript installed, and it is the most recent version, 8.71. I'm currently on Windows -- if you're on Linux/Unix, just replace
gswin32c.exe
bygs
and all line endings^
by\
.Test PDF Output
Now try this command first:
and see if the resulting
gnp-with-number-544.pdf
looks like you want it.The
-c "..."
is used to pass PostScript snippets to Ghostscript and make it process these together with the main .ps file which has then to follow as next parameter, with-f ...
.You can modify parameters:
/Helvetica-Italic
fontname by/Helvetica
,/Courier
,/Times
,Helvetica-Bold
or whatever you've available and prefer.15
here means 15 points (in PDF 72 points == 1 inch).453 482
moves the PostScript currentpoint to "453 points to the left, 482 points to the top" (with the oringin 0,0 set to the bottom left corner).-g5030x5320
gives you 503x532 points (due to the default resolution of 720 dpi used by-sDEVICE=pdfwrite
.(File No. 544) show
or whatever you want.You could also add quite a few parameters to tweak the quality of the output file (resolution, font embedding etc.), but these ones will do for now.
Change to PostScript Output
Should you need PostScript output for some reason instead of PDF, change the command like this:
Batch-convert Lots of Files
Now, how to batch-convert this? For this last step, I'm assuming:
NNN
numbering scheme is not using leading0
s.On Windows, create an
addnumbers-make-pdf.bat
file with this content:Now run this command in a
cmd.exe
console:On Linux, create an
addnumbers-make-pdf.sh
Bash shell script with this content:Now run this command in a shell:
Update:
Hah!, it even works ;-) I just tested it on Windows. Here is a screenshot with the original and the overlayed file (as PDFs):
If you can affect the gnuplot code, you can add the text with gnuplot. See this for example. The command to use is set label.
If you don't have access to the Gnuplot source file, here is a generic method that works (which you can script). It uses Ghostscript and PDFTK.
pdftk
(on Unix) orpdftk.exe
(on Windows) to overlay the two PDFs.This SuperUser answer contains many details which will help you along the path outlined above.
With the help of a text editor you may be able to insert PostScript code that render the additional information into your .ps files manually.
However, I cannot give you a working PS code snippet without seeing the graph's PS code first.
Ghostscript you may be able to create new PS files from your graphs using a single commandline.
Try it with s.th. similar to
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
".However, I cannot really tell if this PS code snippet would really work without seeing the graph's PS code first.