我如何运行 Ghost Script 命令

Posted

技术标签:

【中文标题】我如何运行 Ghost Script 命令【英文标题】:How i can run Ghost Script command 【发布时间】:2013-10-15 07:52:12 【问题描述】:

我如何在 web 应用程序中使用 ghost 脚本运行以下命令将 pdf 转换为 jpeg。

我正在使用以下代码:

 protected void Page_Load(object sender, EventArgs e)
    
        string file = @"C:\pdf\p_o6GEE+.pdf";
        string image = @"C:\image";

        try
        
            PdfToJpg(file, image);
        
        catch (Exception ex)
        
            throw ex;
        
    

    private void PdfToJpg(string inputPDFFile, string outputImagesPath)
    
        string ghostScriptPath = @"C:\Program Files\gs\gs9.09\bin\gswin32.exe";
        String ars = "-dNOPAUSE -sDEVICE=jpeg -r300 -o" + outputImagesPath + "%d.jpg -sPAPERSIZE=a4 " + inputPDFFile;
        Process proc = new Process();
        proc.StartInfo.FileName = ghostScriptPath;
        proc.StartInfo.Arguments = ars;
        proc.StartInfo.CreateNoWindow = true;
        proc.StartInfo.WindowStyle = ProcessWindowStyle.Hidden;
        proc.Start();
        proc.WaitForExit();

    

当我尝试运行此代码时,我的应用程序进入等待状态,图像文件夹仍然为空。

【问题讨论】:

【参考方案1】:

我建议您使用 Ghostscript.NET(Ghostscript 库的包装器)而不是直接调用 .exe。

在那里你可以找到 GhostscriptJpegDevice 类,它可以满足你的需要。看看GhostscriptDevice usage sample

您也可以看看 GhostscriptProcessor sample,它也可以满足您的需求。

【讨论】:

如果您不指定 dev.Pdf.FirstPage 和 dev.Pdf.LastPage ,它们将不会被包含在内,所有页面都将被导出。因此,要从 PDF 文档中导出所有页面,请从您的代码中删除 dev.PDF.FirstPage 和 dev.Pdf.LastPage 行。 不安装 gs909w32.exe 可以使用吗? 对不起,不行,必须在机器上安装。 所以在服务器上安装这个 exe 会给我带来问题吗?我如何克服这个限制【参考方案2】:

您必须使用:-sDEVICE=tiffg4 -dBATCH -dNOPAUSE -r600x600 -dNOSAFER -q -sOutputFile=

事实上 -dBATCH -dNOPAUSE ,会做你所期望的工作, 尽情享受吧。

【讨论】:

以上是关于我如何运行 Ghost Script 命令的主要内容,如果未能解决你的问题,请参考以下文章

怎样启动dos 进入ghost 直接恢复系统

如何从命令行调试使用 python -m 运行的 Python 模块?

Ubuntu服务器运行js,让js一直运行下去

perl在windows下如何运行

5.Docker 镜像运行调试

如何用ghost备份C盘到光盘