2

C#アプリケーションにラップしたghostscript dll (gsdll32.dll)があります。PostScript を jpeg に変換する方法をいろいろ試しましたが、うまくいきません。コードは次のとおりです。

            PDFPrinter.WGhostScript gs = new PDFPrinter.WGhostScript();
            gs.AddParam("-sDEVICE=jpeg");
            gs.AddParam("-dJPEGQ=100");
            gs.AddParam("-dNOPAUSE");
            gs.AddParam("-dBATCH");
            gs.AddParam("-dSAFER");
            gs.AddParam("-r300");
            string outfile = txtOutFolderLoc.Text + txtFileName.Text + ".jpg";
            gs.AddParam(@"-sOutputFile=" + outfile);
            gs.AddParam(psFilePath);
            gs.Execute();
            Application.Exit();

理由は何ですか?

  1. 文字列 "psFilePath" に Postscript の場所が手元にあります。
  2. 「outfile」は、出力の場所とファイル名を表します。

[私は同じものを使用し、ポストクリプトを次のように PDF と PNG に変換しました]。

PDFへ WORKED

            gs.AddParam("-dBATCH");
            gs.AddParam("-dNOPAUSE");
            gs.AddParam("-sDEVICE=pdfwrite");
            gs.AddParam("-sPAPERSIZE=a4");
            gs.AddParam("-sProcessColorModel=DeviceGray");
            gs.AddParam("-sPDFPassword=password");
            string outfile = txtOutFolderLoc.Text + txtFileName.Text + ".pdf";
            gs.AddParam(@"-sOutputFile=" + outfile);
            gs.AddParam(psFilePath);
            gs.Execute();
            Application.Exit();

PNG コードへ:

            gs.AddParam("-dSAFER");
            gs.AddParam("-dBATCH");
            gs.AddParam("-dNOPAUSE");
            gs.AddParam("-sDEVICE=png16m");
            gs.AddParam("-dGraphicsAlphaBits=4");
            gs.AddParam(@"-sOutputFile=" + txtOutFolderLoc.Text + txtFileName.Text + "%i.png");
            gs.AddParam(psFilePath);
            gs.Execute();
            Application.Exit();

EDIT I ポストスクリプトが生成されており、アプリケーションは終了するまで続行します。しかし、jpegファイルが見つかりません。

ポストスクリプトは、ゴーストスクリプトに付属のポストスクリプト プリンタによって生成されます。このポストスクリプトが生成されると、この PS を変換するアプリケーションに制御が移されます。

4

1 に答える 1

1

次の引数を使用して出力を取得できました。

            PDFPrinter.WGhostScript gs = new PDFPrinter.WGhostScript();
            gs.AddParam("-q");
            gs.AddParam("-dNOPAUSE");
            gs.AddParam("-dBATCH");
            gs.AddParam("-sDEVICE=jpeg");
            gs.AddParam(@"-sOutputFile=<full oytput file path>%i.jpg");
            gs.AddParam(<psFilePath>);

それを行うには、「-q」を追加する必要がありました。

' -q は、Ghostscript がメッセージを標準出力に書き込んで、意図した出力ストリームと混合するのを防ぎます。'

于 2013-01-22T13:44:18.437 に答える