两位学者表示他们使用Ghostscript验证PDF。他们的技术解释有些晦涩:“为了使Ghostscript成为验证器,我们只需将PDF文件转换为'None'。”在演示文稿中,他们补充说“None”是“虚假结果,没有真实输出”,并且转换为None“打印出发现的错误”。
我希望以类似的方式使用Ghostscript,并在此过程中了解一些Ghostscript的知识,以备日后应用。我查阅了Ghostscript文档和之前的StackOverflow答案,尝试了以下操作(在Windows 7虚拟机上使用Ghostscript Portable 9.50):
我希望以类似的方式使用Ghostscript,并在此过程中了解一些Ghostscript的知识,以备日后应用。我查阅了Ghostscript文档和之前的StackOverflow答案,尝试了以下操作(在Windows 7虚拟机上使用Ghostscript Portable 9.50):
gswin64c.exe -o /dev/null -dNODISPLAY "C:\PDFs\Badfile.pdf" > "C:\Results.txt"
我希望能得到有关此目的的最佳命令建议。我的问题与Results.txt文件中Badfile.pdf的情况有关。以下是Results.txt文件的内容:
GPL Ghostscript 9.50 (2019-10-15)
Copyright (C) 2019 Artifex Software, Inc. All rights reserved.
This software is supplied under the GNU AGPLv3 and comes with NO WARRANTY:
see the file COPYING for details.
**** Error: An error occurred while reading an XREF table.
**** The file has been damaged. This may have been caused
**** by a problem while converting or transfering the file.
**** Ghostscript will attempt to recover the data.
**** However, the output may be incorrect.
No pages will be processed (FirstPage > LastPage).
**** This file had errors that were repaired or ignored.
**** Please notify the author of the software that produced this
**** file that it does not conform to Adobe's published PDF
**** specification.
**** The rendered output from this file may be incorrect.
我的问题:
(1) 我应该把这个输出解释为XREF表问题是这个文件中唯一的问题,还是可能存在其他未指定的问题?如果是后者,我能否修改命令以获得更具体的指示,当Results.txt报告Badfile.pdf“不符合Adobe发布的PDF规范”时,它意味着什么?
(2) “文件已损坏。这可能是由于在转换或传输文件时出现问题。”这是在暗示对于一些有标记的PDF,Ghostscript识别的问题可能源自Ghostscript本身吗?
(3) “Ghostscript将尝试恢复数据。...此文件有错误已被修复或忽略。”我可以假设操作词是“忽略”--就像那两位学者使用的程序一样,Ghostscript并没有真正尝试恢复数据,而我的命令正在产生“没有实际输出”的结果吗?
(4) 对于某些目的,我可能希望以一行摘要形式输出。例如,JHOVE PDF验证器的audit选项可以生成包含文件名、MD5哈希和PDF文件是否有效的声明的行。鉴于学者发现JHOVE存在问题,如果我能够将Ghostscript的发现放入电子表格进行比较,这将非常有帮助。
我知道Ghostscript可能没有所有这些功能,并且我很感激已经从它那里获得的内容。但是,如果我遗漏了任何东西,我想知道。谢谢您能提供的任何帮助。