【问题标题】:PHP - Pdf files style validatorPHP - Pdf 文件样式验证器
【发布时间】:2011-02-02 23:00:07
【问题描述】:

我需要通过一个 pdf 文件的源(最好使用 php)来验证它是否具有某些边距、列、文本是否分隔在相同宽度的两列 + 不同的其他样式验证规则中。文件将上传到网站上,上传时必须向用户显示验证消息,说明文件是否有效。

以下链接是文件必须遵守的一些规则: http://ifac.papercept.net/conferences/support/page.php

您能否就如何做到这一点提出建议?有可能做这样的申请吗?我已经有了网站,我只需要实现pdf验证器。

【问题讨论】:

    标签: php validation pdf coding-style


    【解决方案1】:

    我很想嘲笑你被交给这样一个任务的可怜悲惨的生活,但让我解释一下为什么你想要的几乎是不可能的。

    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 的人”或“每个人都必须以 [其他格式] 提交”。

    【讨论】:

    • 见鬼,即使是文本也不一定是文本。它可能是一个被塞进 PDF 容器的 .jpg。充其量,将 PDF 转换为图像并对其进行一些基本的 ocr-ish 操作可能会奏效。 “白边是否足够,中间是否有白线”等...
    • 它可以是线条艺术。是的。一些精神错乱的怪胎甚至可以画一堆彩色矩形来代替光栅图像。 “文本”不是文本的很多方法。而且我什至没有进入编码。
    猜你喜欢
    • 1970-01-01
    • 2017-01-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-09-19
    • 2012-03-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多