我需要浏览一个pdf文件的源代码(最好使用php)来验证它是否有一定的边距,列,文本在相同宽度的两列中分开+不同的其他样式验证规则。该文件将上传到网站上,并在上传时,必须向用户显示验证消息,说明该文件是否有效。
以下链接是文件必须遵守的一些规则: http://ifac.papercept.net/conferences/support/page.php
请问您可以如何做到这一点?可以做这样的申请吗?我已经有了这个网站,我只需要实现pdf验证器。
答案 0 :(得分:0)
我很想在你完成这项任务时嘲笑你那可怜的悲惨生活,而是让我解释为什么你想要的几乎不可能。
PDF不定义边距,列和段落。它更像是“在这些坐标处绘制这些字符”。 Transformation matrices, and color spaces and clipping regions, oh my!
有一些PDF库可以让您确定特定页面中所有文本绘图命令的位置(确实是边界框)。根据这些信息,您必须确定他们是否遵循了所有布局要求。
边距不会那么难(在所有文本周围构建一个边界框,然后查看该框是否在您的边距内),但是列将变得更加困难。如果有人的PDF生成程序在一个“绘制一些文本”命令中绘制到两个列,即使是不可能的:
(some text from column one some text from column two) Tj
提供类似的东西(完全合法,但没有对bbox分析友好),你必须根据它们包含的空白进一步打破文本框。
总而言之,一个巨大而痛苦的过程,一个你不能承诺的过程将是100%准确的,充满了误报和误报。
不。
乐趣。
为您提供该级别文本信息的库通常也会告诉您给定文本块使用的字体,大小和颜色。
PHP存在这样的库吗?我不知道。 iText(Java或C#,AGPL或$)可以确定文本边界,Adobe($$)库也可以。我确定还有其他人。
我强烈建议您寻找其他方法来强制执行此指南(例如“查看PDF的人”,或“每个人都必须提交[其他格式]”。