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

问题描述 投票:0回答:2

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

这是行不通的。你能告诉我我做错了什么吗?

ghostscript ghostscript.net
2个回答
1
投票

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

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

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

请注意,Ghostscript不会“转换”PDF文件,并且将CompatibilityLevel设置为1.5并不会真正起作用。它只是限制了pdfwrite设备可用的功能。

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

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


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传递二进制流,ghostscript将转换PDF的版本。 - >如何通过ghostscript传递流?由于Ghostscript需要保存在硬盘驱动器上的文件并将其写回硬盘驱动器?它必须在上传文件后在内存流中完成?

© www.soinside.com 2019 - 2024. All rights reserved.