Parsing PDF生成器标识

Parsing PDF生成器标识,parsing,pdf,signature,Parsing,Pdf,Signature,识别自动生成的PDF的生成器/检测模式的最佳方法是什么? 我一直在使用表格和文本分析来提取文件识别后的数据,但我很难将文件发送到正确的解析器。 显然,PDF没有关于作者的元数据,文件名可以更改,因此不是准确的标识来源 谢谢, 亚瑟你可以看看预告片: trailer << /Size 9 /Root 1 0 R /Info 8 0 R >> startxref 626 %%EOF 但是,如果元数据部分不是直截了当的(例如,包含十六进制代码,或者间接指向另一个部分),那么它

识别自动生成的PDF的生成器/检测模式的最佳方法是什么? 我一直在使用表格和文本分析来提取文件识别后的数据,但我很难将文件发送到正确的解析器。 显然,PDF没有关于作者的元数据,文件名可以更改,因此不是准确的标识来源

谢谢,
亚瑟

你可以看看预告片:

trailer
<<
/Size 9
/Root 1 0 R
/Info 8 0 R
>>
startxref
626
%%EOF
但是,如果元数据部分不是直截了当的(例如,包含十六进制代码,或者间接指向另一个部分),那么它将变得更加复杂

当元数据如下所示时,它会变得棘手:

42 0 obj
(git-cheat-sheet-education)
endobj
43 0 obj
(Mac OS X 10.9.1 Quartz PDFContext)
endobj
44 0 obj
(Adobe Illustrator CC \(Macintosh\))
endobj
45 0 obj
(D:20140224195805Z00'00')
endobj
1 0 obj
<< /Title 42 0 R /Producer 43 0 R /Creator 44 0 R /CreationDate 45 0 R /ModDate
45 0 R >>
endobj
42 0 obj
(git备忘单教育)
endobj
43 0 obj
(Mac OS X 10.9.1 Quartz PDFContext)
endobj
44 0 obj
(Adobe Illustrator CC\(Macintosh\)
endobj
45 0 obj
(D:20140224195805Z00'00')
endobj
10 obj
>
endobj
有很多开源代码可以为您显示PDF元数据


我不确定我是否在回答你的问题。

嗨!感谢您抽出时间回答。遗憾的是,正如问题中所述,由于人们不经常签署PDF,而且解决方案需要“通用”场景,因此无法使用。举一个需要的例子,假设有30个人发送生成的账单:每个人都有自己的模式。如果你知道它并从中学习,你只需要处理30个案例,并且100%准确率的解析是通过简单的拖放完成的,没有任何规范。目前,我最好的解决方案是使用一个PDFtoText,然后为每个生成器使用一个正则表达式。基本上,您只能从各自的源中查找PDF中的单个特定指纹。它们可能是事实的组合,例如使用哪一行的结尾,文件中的特殊对象(特别是目录或信息字典)位于何处,哪些类型的对象是间接的,哪些类型的对象不是,假设每种类型有10个案例和大量的PDF类型,那么它是否能够真实地自动推断出来?现在,忘记自动部分,我将使用PDFtoText和regex路线,它对所有测试用例都起到了作用。有更好/更快的主意吗?谢谢我想这是可以做到的,但要找到这些指纹需要做大量的前期工作。好吧,我想我会坚持使用正则表达式,谢谢!
42 0 obj
(git-cheat-sheet-education)
endobj
43 0 obj
(Mac OS X 10.9.1 Quartz PDFContext)
endobj
44 0 obj
(Adobe Illustrator CC \(Macintosh\))
endobj
45 0 obj
(D:20140224195805Z00'00')
endobj
1 0 obj
<< /Title 42 0 R /Producer 43 0 R /Creator 44 0 R /CreationDate 45 0 R /ModDate
45 0 R >>
endobj