2011-02-02 124 views
2

我需要通過一個pdf文件的源代碼(最好使用php)來驗證它是否有一定的邊距,列,文本以相同寬度+不同的其他樣式驗證規則分成兩列。該文件將上傳到網站上,在上傳時,驗證信息必須顯示給用戶,說明該文件是否有效。下面PHP -PDF文件樣式驗證程序

在鏈路的一些規則,以該文件必須堅持: http://ifac.papercept.net/conferences/support/page.php

能否請您就如何可以這樣做?有可能做這樣的應用程序嗎?我已經有了網站,我只需要實施PDF驗證器。

回答

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文件」,或者「每個人都必須提交爲[其他格式]」。

+0

哎呀,連文字沒有按」 t必須是文本,它可能是一個被填充到PDF容器中的.jpg,充其量,將PDF轉換爲圖像並在其上執行一些基本的ocr-ish事情可能會奏效。「是否有足夠的白色邊距,是那裏有一條白色的線條,等等...... – 2011-02-03 02:54:44