gpt4 book ai didi

asp.net - 使用 GhostScript 在服务器上将 PDF 转换为图像集合

转载 作者:行者123 更新时间:2023-12-02 00:43:04 29 4
gpt4 key购买 nike

这些是我要实现的步骤:

  1. 在服务器上上传 PDF 文档。
  2. 使用 GhostScript 将 PDF 文档转换为一组图像(每个页面都转换为图像)。
  3. 将图像集合发送回客户端。

到目前为止,我对#2感兴趣。

首先,我下载了 gswin32c.exegsdll32.dll 并设法手动将 PDF 转换为图像集(我打开了 cmd 并运行下面的命令):

gswin32c.exe -dSAFER -dBATCH -dNOPAUSE -sDEVICE=jpeg -r150 -dTextAlphaBits=4 -dGraphicsAlphaBits=4 -dMaxStripSize=8192 -sOutputFile=image_%d.jpg somepdf.pdf

然后我想,我将把 gswin32c.exegsdll32.dll 放到我的 Web 项目的 ClientBin 中,然后通过进程运行 .exe。

System.Diagnostics.Process process1 = new System.Diagnostics.Process();
process1.StartInfo.WorkingDirectory = Request.MapPath("~/");
process1.StartInfo.FileName = Request.MapPath("ClientBin/gswin32c.exe");
process1.StartInfo.Arguments = "-dSAFER -dBATCH -dNOPAUSE -sDEVICE=jpeg -r150 -dTextAlphaBits=4 -dGraphicsAlphaBits=4 -dMaxStripSize=8192 -sOutputFile=image_%d.jpg somepdf.pdf"
process1.Start();

不幸的是,ClientBin 中没有任何输出。任何人都知道为什么?任何建议将不胜感激。

最佳答案

我试过你的代码,它似乎工作正常。我建议检查以下事项:

  1. 验证您的 somepdf.pdf 是否在 gs 进程的工作文件夹中或在命令行中指定文件的完整路径。通过执行以下操作查看 ghostscript 的输出也很有用:

    ....process1.StartInfo.RedirectStandardOutput = true;process1.StartInfo.UseShellExecute = false;process1.Start();//读取输出字符串输出 = process1.StandardOutput.ReadToEnd();...process1.WaitForExit();...

    如果 gs 找不到您的文件,您将在输出流中收到“错误:/undefinedfilename in (somepdf.pdf)”。

  2. 另一个建议是您继续执行您的脚本,而不必等待 gs 进程完成并生成生成的 image_N.jpg 文件。我想添加 process1.WaitForExit 应该可以解决问题。

关于asp.net - 使用 GhostScript 在服务器上将 PDF 转换为图像集合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1941118/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com