就像标题所说的那样。我问的原因是我们将PDF转换为格式化的ASCII文本(使用pdftotext),并且只想显示看起来合理的文本。
PPT文件往往有文字覆盖图像,对角文本和其他不能很好地转换为ASCII的内容,所以如果可以的话我们想过滤掉它们。
答案 0 :(得分:4)
PDF的创建应用程序列在其XMP元数据中。您可以在Acrobat 9中轻松看到这一点(我之前相信):转到File > Properties
,点击Additional Metadata...
,然后转到Advanced
,它列在 XMP核心属性下和 PDF属性:
xmp:CreatorTool: Microsoft PowerPoint
pdf:Creator: Microsoft PowerPoint
我猜你想以编程方式找到它,所以你需要找一个库来读取这个与你的语言一致的元数据。 Here是一些XMP工具的列表。
答案 1 :(得分:3)
简短回答:
不,我不这么认为。
答案很长:
不,我不这么认为,因为有可能将PowerPoint文件转换为pdf,例如Adobe Acrobat和PDFCreator以及许多其他文件。由转换器在PDF文件中嵌入特定信息,即使您找到了从一个转换器中检测PowerPoint-source pdf的方法,同样的方法也可能不适用于另一个转换器。
更长的回答:
不,我不这么认为,因为“长答案”中描述的原因。我不认为检测PDF的来源是解决您要解决的问题的最佳方法。不只是PowerPoint产生重叠的文本和图像。我认为检测PDF文件的实际布局要好得多。如果有图像和文本的叠加,那么您可以进行一些过滤或预处理以满足该要求。
答案 2 :(得分:1)
您的推理非常随意 - 肯定有很多PPT文件没有您描述的功能,以及大量PDF文件带有它们是从其他来源生成的
理论上,更好的方法就是检测这些“不需要的”情况何时发生。然而,即使PDF格式部分开放(显然只是为了阅读,所以它不是真正的开放格式),提取这样的复杂数据将非常困难。
答案 3 :(得分:1)
无论来源如何,所有PDF都可能出现此问题。大多数桌面出版套件都能够输出PDF,并且经常以超高质量和更华丽的PDF演示文稿出售......
“saner”方法是使用PDF解析器,ITextSharp或pdfNet等,使用您选择的库,找到所有图像矩形,以及所有文本矩形,排序矩形,然后查看是否文本和图像的大量重叠 - 忽略图像与图像的重叠。如果是,请拒绝页面和/或文档。
这不会是完美的,但至少它会捕获许多不理智的PDF,无论来源如何。要添加的其他启发式方法包括颜色分析。 (即重叠区域中的颜色是否足够不同以允许“健全”结果?)
祝你好运
答案 4 :(得分:0)
它可能会将其名称放在创建者或制作人信息中,但我没有副本来检查这个理论。
答案 5 :(得分:0)
通常,以编程方式确定(可靠地)文件来自何处或基于其内容如何生成文件并非易事。毕竟,文件只是一个比特集合。
除非你有足够的资源来构建启发式方法来确定文件是否根据你的需要看起来“合理健全”,否则我认为这是人类的任务。
答案 6 :(得分:0)
从ppt到pdf的某些转换器会在pdf开头的注释中保留创建者。
答案 7 :(得分:0)
我认为从大多数应用程序生成的PDF看起来都是一样的。 可能有一些可以从文件中读取的元数据......