C# 将postscript转换为jpeg

C# 将postscript转换为jpeg,c#,jpeg,ghostscript,postscript,C#,Jpeg,Ghostscript,Postscript,我有一个ghostscript dll(gsdll32.dll),我已经将它包装到了我的c#应用程序中。我尝试了各种方法将postscript转换为jpeg,但没有成功。代码如下: PDFPrinter.WGhostScript gs = new PDFPrinter.WGhostScript(); gs.AddParam("-sDEVICE=jpeg"); gs.AddParam("-dJPEGQ=100");

我有一个ghostscript dll(gsdll32.dll),我已经将它包装到了我的c#应用程序中。我尝试了各种方法将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();
原因可能是什么

  • 我手头有postscript位置,在字符串“psFilePath”中
  • “outfile”表示输出的位置和文件名
  • [我使用了相同的材料,并将PostScript转换为PDF和PNG,如下所示]

    成功了吗

                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 正在生成postscript,应用程序将继续运行,直到退出。但找不到jpeg文件


    postscript由随鬼脚本一起提供的postscript打印机生成。生成此postscript后,控件将传输到转换此PS的应用程序。

    我使用以下参数获得了输出:

                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>);
    
    PDFPrinter.WGhostScript gs=new PDFPrinter.WGhostScript();
    gs.AddParam(“-q”);
    gs.AddParam(“-dNOPAUSE”);
    gs.AddParam(“-dBATCH”);
    gs.AddParam(“-sDEVICE=jpeg”);
    gs.AddParam(@“-sOutputFile=%i.jpg”);
    gs.AddParam();
    
    我必须加上“-q”才能完成


    “-q以防止Ghostscript将消息写入标准输出,从而与预期的输出流混合。”

    能否详细说明“它没有发生”。没有文件、空文件、内容错误?你在PDF和PNG版本之间所做的更改就是-sDEVICE?postscript是否会丢失
    showpage
    ?这可能会导致不一致的结果,除非您先通过ps2eps运行它。@luser droog:谢谢您的回复。我编辑了内容&我添加了将PS转换为PDF和PNG的代码。这两个功能都工作正常。但是JPEG代码似乎没有生成输出文件。这就是我使用命令行版本进行这些类型转换所知道的全部。但现在这是一个更强有力、更容易回答的问题。干得好+欢迎来到这个网站!非常感谢@luser droog对您的支持您正在处理打印机驱动程序输出吗?其中可能包含pdf不支持的硬件控制代码。尝试一些事情:从命令行运行gs,这样您将看到任何错误消息;2使用非常干净/简单的postscript代码测试您的程序代码。很高兴您修复了它,但这实际上没有意义。您的输出是到一个文件,而不是标准输出。@george:您好,我不太确定,这刚刚起作用,我在问题中显示的代码由于某种原因似乎不起作用。即使我有一个工作代码,我仍然在寻找一个原因,“为什么问题中的代码不工作”。