将postscript转换为jpeg

时间:2013-01-21 07:49:45

标签: c# jpeg ghostscript postscript

我有我的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”中有postcript位置。
  2. “outfile”表示输出的位置和文件名。
  3. [我使用了相同的东西并将后记转换为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();
    

    编辑我 正在生成postscript并继续应用程序直到它退出。但是没有找到jpeg文件。

    postscript由ghostscript提供的postscript打印机生成。生成此postscript后,控件将转移到转换此PS的应用程序。

1 个答案:

答案 0 :(得分: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将消息写入与预期输出流混合的标准输出。'