将pdf转换为pdf命令行参数的Ghostscript不起作用

时间:2018-06-15 01:58:45

标签: ghostscript ghostscript.net

我在Windows 7(gswin64)上安装了最新版本的ghostscript。我正在尝试将PDF从旧版本转换为新版本。我需要从' CMD'运行命令。窗口。我尝试运行这个gs -sDEVICE = pdfwrite -dCompatibilityLevel = 1.5 -dNOPAUSE -dQUIET -dBATCH -sOutputFile = new-pdf1.5.pdf C:\ folder \ original.pdf并尝试将文件路径放入双引号中,例如&# 34; C:\文件夹\ original.pdf&#34 ;.

它不起作用。你能告诉我我做错了吗?

2 个答案:

答案 0 :(得分:1)

以什么方式'不起作用'?请说明整个命令行,包括输入文件,顺序很重要。

你收到错误了吗?如果有什么错误?你在后台频道得到了什么吗?

为什么在尝试调试问题时使用-dQUIET?你想要Ghostscript可以给你的所有信息,所以放弃它。

请注意,Ghostscript不会“转换”PDF文件,并且将CompatibilityLevel设置为1.5并不会带来太大的影响。它只是限制了pdfwrite设备可用的功能。

如果输入不需要更高级别的功能,则pdfwrite设备将不使用它们。由于您的输入是PDF的较低版本,因此它不会使用这些功能,因此虽然标题中的版本为1.5,但实际内容将包含较低版本的功能。

使用具有二进制功能的编辑器将原始PDF文件中的版本更改为1.5可以获得相同的效果。

答案 1 :(得分:0)

我已经发布了我使用的命令。谢谢KenS在启动我的研究方面的帮助。 我无法发布PDF内容,因为它是专有内容。但是它确实升级了PDF。

gswin64.exe -sDEVICE=pdfwrite -dCompatibilityLevel=1.3 -dNOPAUSE \
    -dBATCH -sOutputFile=C:\folder\new.pdf C:\folder\old.pdf

我需要弄清楚的下一个问题:如何在C#.NET中调用此过程? 我需要执行以下操作:

  

使用Upload控件上传文件(那很简单)   上传的文件,并通过ghostscript传递二进制流   它将转换PDF的版本。 ->如何传递信息流   通过ghostscript?由于Ghostscript需要将文件保存在硬盘上   驱动器并将其写回到硬盘驱动器?上传文件后必须在内存流中完成吗?