如何使用Python检查PDF是否有活动内容?

2024-09-14 11:29:27 发布

您现在位置:Python中文网/ 问答频道 /正文

活动内容为JavaScript、PostScript。我想知道一个给定的PDF文件是否包含任何活动内容。如何使用Python检查这一点


Tags: 文件内容pdfjavascriptpostscript
1条回答
网友
1楼 · 发布于 2024-09-14 11:29:27

您需要一个Python库来访问Adobe(和其他一些库)所称的COS级别。这是文件中对象的级别

对于JavaScript,恐怕没有别的办法,只能通过PDF规范,查找所有允许JavaScript的地方,然后检查这些地方

对于PostScript,我想说你不必担心,因为这已经不可能了,但我必须回到那个观点:)你基本上需要检查:

  • PostScript XObjects:我有点惊讶这些仍然在规范中,因为我认为它们已经被弃用了,但哦,至少在32000-1中,它们显然仍然存在
  • PostScript函数(类型4函数)。某些PDF对象在其定义中使用函数,并且存在PostScript函数类型

然后它变得有点棘手,因为有一些警告:

  • 曾经有一个PostScript操作符可以在页面流中使用,它可以将PostScript直接注入页面流。此已被弃用,但根据您的目标,您可能仍需要检测它
  • 当我说您需要一个具有COS级别访问权限的库时,您实际上可能需要更多。您可以在COS级别检测PostScript XObject,但为了知道它是否在页面上实际使用,您需要一个库,该库还可以为您解析页面内容。你是否需要这个取决于你的目的

然后,同样取决于您的目的,您应该意识到PostScript或JavaScript代码可以隐藏在PDF文件中的任意流对象中。它们不会被使用,因为工具不知道它在那里,但它们仍然在那里。你是否关心这一点取决于你打算用它做什么

相关问题 更多 >