gnuplotによって生成されたポストスクリプト形式のグラフがいくつかあります。グラフに識別情報を配置する必要があります。それを行うためのいくつかの指示をスクリプト化するにはどうすればよいですか?グラフの右上隅に数字を書きたい(.psファイル)。
3 に答える
リンクしたサンプルファイルは正常に動作しています(showpage
演算子は再定義されていません)。
だから私は今、次のことを想定しています:
- すべての.psファイルはサンプルファイルと似ています。
- すべての.psファイルは1ページのみです(.epsファイルのように)。
- すべてのファイル名は、次のように構成されています
gnp-NNN.ps
(gnp-544.psのように)。 - 右上隅に表示する番号は
NNN
、ファイル名からのものです。
また、Ghostscriptがインストールされていると仮定します。これは、最新バージョンの8.71です。私は現在Windowsを使用しています。Linux/Unixを使用している場合は、に置き換えgswin32c.exe
てgs
、すべての行末^
を。に置き換えて\
ください。
PDF出力のテスト
最初にこのコマンドを試してください。
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ファイルと一緒に処理するために使用されます。メインの.psファイルは、次のパラメーターとして-f ...
。
パラメータを変更できます。
/Helvetica-Italic
フォント名を、、、、/Helvetica
または/Courier
利用可能な任意/Times
の名前に置き換えHelvetica-Bold
ます。- または、フォントサイズを変更します。
15
ここでは15ポイントを意味します(PDFでは72ポイント== 1インチ)。 - または、位置を変更します。PostScriptの現在のポイントを「左に453ポイント、上に482ポイント」
453 482
に移動します(oringin 0,0を左下隅に設定します)。 - または、メディアサイズを微調整し
-g5030x5320
ます。503x532ポイントを提供します(が使用するデフォルトの解像度は720 dpiであるため)-sDEVICE=pdfwrite
。 - または、印刷する文字列
(File No. 544) show
または任意の文字列を設定します。
出力ファイルの品質を微調整するためにかなりの数のパラメーター(解像度、フォントの埋め込みなど)を追加することもできますが、これらのパラメーターは今のところ機能します。
PostScript出力に変更
PDFの代わりに何らかの理由でPostScript出力が必要な場合は、次のようにコマンドを変更してください。
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
。- 変換するファイルの範囲はgnp-1.ps..gnp-1000.psです。
- PSではなく、数字を追加したPDF出力が必要です。
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シェルスクリプトを作成します。
#!/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として)のスクリーンショットです。
Gnuplotソースファイルにアクセスできない場合は、次の一般的なメソッドが機能します(スクリプト化できます)。GhostscriptとPDFTKを使用しています。
- .psグラフにオーバーレイするコンテンツを含む新しいPDFファイルを作成します。
- Ghostscriptを使用して、Gnuplotを元とする.psグラフをPDFに変換します。
pdftk
(Unixの場合)または(Windowsの場合)を使用pdftk.exe
して、2つのPDFをオーバーレイします。- Ghostscriptを使用してPDFをPSに戻すか(必要な場合)、PDFを引き続き使用します。
このスーパーユーザーの回答には、上記のパスに沿って役立つ多くの詳細が含まれています。
テキストエディタを使用すると、追加情報を.psファイルに手動でレンダリングするPostScriptコードを挿入できる場合があります。
ただし、グラフの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コードスニペットが実際に機能するかどうかはわかりません。
gnuplotコードに影響を与えることができる場合は、gnuplotを使用してテキストを追加できます。たとえば、これを参照してください。使用するコマンドはsetlabelです。