Ghostscript pdfwrite 在从 PDF 文件读取时产生零长度输出,没有错误报告,其他输入也很好
Ghostscript pdfwrite produces zero length output when reading from PDF files, no error reported, fine with other inputs
我需要将一个 PDF 文件附加到另一个文件。
我觉得 Ghostscript 是前进的方向,并安装了 64 位 Windows 版本 (9.53.0),但是如果我尝试对输入为 PDF 的 pdfwrite 执行任何操作,例如
gswin64c -DNOSAFER -sDEVICE=pdfwrite -o output.pdf input.pdf
我得到零长度输出(完全没有错误消息)。无论 PDF 是 Ghostscript 附带的示例之一、使用 tcpdf 生成的示例,还是从 Windows 应用程序保存的示例,都会发生这种情况。无论我尝试读取单个 PDF 还是多个 PDF(后者是我的用例),都会发生这种情况。
如果我将输入的 PDF 转换为 Postscript,然后在这些文件上使用 pdfwrite,它就像一个梦,例如
call pdf2ps input.pdf temp.ps
gswin64c -DNOSAFER -sDEVICE=pdfwrite -o output.pdf temp.ps
EPS 输入也工作正常 - 唯一的问题似乎是 PDF 输入。但是 Ghostscript 可以读取和显示任何 PDF(并且确实可以将任何 PDF 转换为 Postscript),据我所知,它只是无法处理 PDF 作为 pdfwrite 的输入。
我找不到任何关于这个特定问题的参考资料。
事实证明这不仅限于 PDF 输入,只是更容易以这种方式触发它。问题是内部数据类型从 build-dependent 大小更改为始终为 64 位,但是 #define'd 值未正确更新,因此 64 位 Windows 构建仍然存在使用用于 32 位构建的值。
已提交解决问题 here。然而,这似乎非常严重,以至于新版本 9.53.1(所以已经是补丁级别 1...)很快就会出现(如果它还没有的话)。
如果人们在发现此类问题时可以报告错误,那将会有很大帮助,如果有任何志愿者来试用候选版本就更好了,我们真的不希望发布有严重问题的版本。 ....
我需要将一个 PDF 文件附加到另一个文件。
我觉得 Ghostscript 是前进的方向,并安装了 64 位 Windows 版本 (9.53.0),但是如果我尝试对输入为 PDF 的 pdfwrite 执行任何操作,例如
gswin64c -DNOSAFER -sDEVICE=pdfwrite -o output.pdf input.pdf
我得到零长度输出(完全没有错误消息)。无论 PDF 是 Ghostscript 附带的示例之一、使用 tcpdf 生成的示例,还是从 Windows 应用程序保存的示例,都会发生这种情况。无论我尝试读取单个 PDF 还是多个 PDF(后者是我的用例),都会发生这种情况。
如果我将输入的 PDF 转换为 Postscript,然后在这些文件上使用 pdfwrite,它就像一个梦,例如
call pdf2ps input.pdf temp.ps
gswin64c -DNOSAFER -sDEVICE=pdfwrite -o output.pdf temp.ps
EPS 输入也工作正常 - 唯一的问题似乎是 PDF 输入。但是 Ghostscript 可以读取和显示任何 PDF(并且确实可以将任何 PDF 转换为 Postscript),据我所知,它只是无法处理 PDF 作为 pdfwrite 的输入。
我找不到任何关于这个特定问题的参考资料。
事实证明这不仅限于 PDF 输入,只是更容易以这种方式触发它。问题是内部数据类型从 build-dependent 大小更改为始终为 64 位,但是 #define'd 值未正确更新,因此 64 位 Windows 构建仍然存在使用用于 32 位构建的值。
已提交解决问题 here。然而,这似乎非常严重,以至于新版本 9.53.1(所以已经是补丁级别 1...)很快就会出现(如果它还没有的话)。
如果人们在发现此类问题时可以报告错误,那将会有很大帮助,如果有任何志愿者来试用候选版本就更好了,我们真的不希望发布有严重问题的版本。 ....