3

gnuplotによって生成されたポストスクリプト形式のグラフがいくつかあります。グラフに識別情報を配置する必要があります。それを行うためのいくつかの指示をスクリプト化するにはどうすればよいですか?グラフの右上隅に数字を書きたい(.psファイル)。

4

3 に答える 3

5

リンクしたサンプルファイルは正常に動作しています(showpage演算子は再定義されていません)。

だから私は今、次のことを想定しています:

  1. すべての.psファイルはサンプルファイルと似ています。
  2. すべての.psファイルは1ページのみです(.epsファイルのように)。
  3. すべてのファイル名は、次のように構成されていますgnp-NNN.psgnp-544.psのように)。
  4. 右上隅に表示する番号はNNN、ファイル名からのものです。

また、Ghostscriptがインストールされていると仮定します。これは、最新バージョンの8.71です。私は現在Windowsを使用しています。Linux/Unixを使用している場合は、に置き換えgswin32c.exegs、すべての行末^を。に置き換えて\ください。

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

たくさんのファイルをバッチ変換する

では、これをバッチ変換する方法は?この最後のステップでは、次のことを前提としています。

  1. NNN番号付けスキームは先頭のを使用していません0
  2. 変換するファイルの範囲はgnp-1.ps..gnp-1000.psです。
  3. 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として)のスクリーンショットです。
代替テキスト

于 2010-09-13T09:56:48.900 に答える
3

Gnuplotソースファイルにアクセスできない場合は、次の一般的なメソッドが機能します(スクリプト化できます)。GhostscriptPDFTKを使用しています。

  1. .psグラフにオーバーレイするコンテンツを含む新しいPDFファイルを作成します。
  2. Ghostscriptを使用して、Gnuplotを元とする.psグラフをPDFに変換します。
  3. pdftk(Unixの場合)または(Windowsの場合)を使用pdftk.exeして、2つのPDFをオーバーレイします。
  4. 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コードスニペットが実際に機能するかどうかはわかりません。

于 2010-09-12T14:34:59.337 に答える
1

gnuplotコードに影響を与えることができる場合は、gnuplotを使用してテキストを追加できます。たとえば、これを参照してください。使用するコマンドはsetlabelです

于 2010-09-11T07:29:14.063 に答える