就像标题所说的那样。我问的原因是我们将PDF转换为格式化的ASCII文本(使用pdftotext),并且只想显示看起来合理的文本。

PPT文件往往有文字覆盖图像,对角文本和其他不能很好地转换为ASCII的内容,所以如果可以的话,我们希望将它们过滤掉。

有帮助吗?

解决方案

PDF的创建应用程序列在其XMP元数据中。您可以在Acrobat 9中轻松地看到这一点(我之前相信):转到 File>属性,单击 Additional Metadata ... ,然后转到 Advanced ,它列在 XMP核心属性下PDF属性

xmp:CreatorTool: Microsoft PowerPoint
pdf:Creator: Microsoft PowerPoint

我猜你想以编程方式找到它,所以你需要找一个库来读取这个与你的语言一致的元数据。 此处是一些XMP工具的列表。

其他提示

简短回答:

不,我不这么认为。

答案很长:

不,我不这么认为,因为有可能将PowerPoint文件转换为pdf,例如Adobe Acrobat和PDFCreator以及许多其他文件。由转换器在PDF文件中嵌入特定信息,即使您找到了从一个转换器中检测PowerPoint-source pdf的方法,同样的方法也可能不适用于另一个转换器。

更长的回答:

不,我不这么认为,因为“长答案”中描述的原因。我不认为检测PDF的来源是解决您要解决的问题的最佳方法。不只是PowerPoint产生重叠的文本和图像。我认为检测PDF文件的实际布局要好得多。如果有图像和文本的叠加,那么您可以进行一些过滤或预处理以满足该要求。

您的推理非常随意 - 肯定有很多PPT文件没有您描述的功能,以及大量PDF文件带有它们是从其他来源生成的

理论上,更好的方法是检测这些“不需要的”何时。情况发生。然而,即使PDF格式部分开放(显然只是为了阅读,所以它不是真正的开放格式),提取这样的复杂数据将非常困难。

无论来源如何,所有PDF都可能出现此问题。大多数桌面出版套件都能够输出PDF,并且经常以超高质量和更华丽的PDF演示文稿出售......

“saner”方法是使用PDF解析器,ITextSharp或pdfNet ...等,使用您选择的库,找到所有图像矩形,以及所有文本矩形,排序矩形,然后查看文本是否存在大量重叠图像rects - 忽略图像到图像的重叠。如果是,请拒绝页面和/或文档。

这不会是完美的,但至少它会捕获许多不理智的PDF,无论来源如何。要添加的其他启发式方法包括颜色分析。 (即重叠区域中的颜色是否足够不同以允许“理智”结果?)

祝你好运

它可能会将其名称放在创建者或制作人信息中,但我没有副本来检查这个理论。

通常,以编程方式确定(可靠)文件的来源或基于其内容如何生成文件并非易事。毕竟,文件只是一个比特集合。

除非您有大量资源用于构建启发式方法以确定文件是否看起来“合理地理智”。根据你的需要,我认为这是人类的任务。

从ppt到pdf的某些转换器会在pdf开头的注释中保留创建者。

我认为从大多数应用程序生成的PDF看起来都是一样的。 可能有一些可以从文件中读取的元数据......

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top