PHP - валидатор стиля PDF файлов - PullRequest
2 голосов
/ 03 февраля 2011

Мне нужно просмотреть исходный файл pdf (желательно с использованием php), чтобы проверить, есть ли у него определенные поля, столбцы, текст разделен на два столбца одинаковой ширины + другие правила проверки стиля.Файл будет загружен на веб-сайт, и при загрузке пользователю должно отобразиться сообщение о проверке, в котором будет указано, является ли файл действительным.

По ссылке ниже приведены некоторые правила, к которым долженпридерживаться: http://ifac.papercept.net/conferences/support/page.php

Не могли бы вы посоветовать, как это можно сделать?Можно ли будет сделать такое приложение?У меня уже есть веб-сайт, мне нужно только внедрить валидатор PDF.

1 Ответ

0 голосов
/ 03 февраля 2011

Мне хочется просто посмеяться над твоим бедным жалким существованием, когда мне вручили такую ​​задачу, но вместо этого позволь мне объяснить, почему то, что ты хочешь, практически невозможно.

PDF не определяет поля, столбцы и абзац. Это больше похоже на «нарисовать этих персонажей в этих координатах». Матрицы преобразования, цветовые пространства и области отсечения, о боже!

Есть несколько библиотек PDF, которые позволят вам определить местоположение (действительно ограничивающие рамки) всех команд рисования текста на конкретной странице. Исходя из этой информации, вам необходимо определить, соответствуют ли они всем вашим требованиям к макету.

Поля не будут такими трудными (создайте ограничивающий прямоугольник вокруг всего текста, а затем посмотрите, находится ли этот прямоугольник внутри ваших полей), но столбцы будут значительно сложнее. Даже невозможно, если чья-то программа создания PDF-файлов рисует в оба столбца одной командой «нарисовать текст»:

(some text from column one           some text from column two) Tj

Представленный с чем-то подобным (совершенно законным, но не подходящим для анализа bbox), вам придется дополнительно разбивать текстовые поля на основе пробелов, которые они содержат.

В целом, огромный и болезненный процесс, который вы не можете обещать, будет на 100% точным, чреват как ложными, так и ложными отрицаниями.

нет.
Fun.

Библиотеки, предоставляющие такой уровень текстовой информации, обычно также сообщают, какой шрифт, размер и цвет использует данный фрагмент текста.

Существует ли такая библиотека для PHP? Я не знаю. iText (Java или C #, AGPL или $) может определять границы текста, как и библиотеки Adobe ($$). Я уверен, что есть другие.

Я настоятельно рекомендую вам поискать другой способ применения этого правила (например, «люди, просматривающие PDF-файлы» или «все должны отправлять документы в [каком-то другом формате]».

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...