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”中的后记位置。
  2. “outfile”表示输出的位置和文件名。

[我使用了相同的东西并将后记转换为 PDF 和 PNG,如下所示]。

到 PDF 工作

            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();

编辑 I 正在生成后记,应用程序继续运行直到它退出。但是没有找到 jpeg 文件。

postscript 由与 ghostscript 一起提供的 postscript 打印机生成。一旦生成了这个后记,控制就会转移到转换这个 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 回答