Как изменить определенный символ в существующем XFA PDF?

Я застрял в сумасшедшем проекте, который заставляет меня искать странное решение. У меня есть PDF-документ XFA, созданный сторонней стороной. В PDF-файлах есть несколько галочек «✓», которые мне нужно просто заменить на «X». Причина этого находится вне моего контроля. Я просто ищу способ изменить ✓ на X. Может кто-то указать мне верное направление? Является ли это возможным?

В настоящее время мы используем PHP и TCPDF для создания «наших» серверных PDF-файлов, но этот конкретный PDF-файл создается вне моего контроля третьей стороной, которая не хочет менять свой способ ведения дел. Что еще хуже, я не знаю, сколько и где могут стоять галочки. Это всего лишь один очень специфический персонаж, который нуждается в изменении. Кто-нибудь знает способ взломать документ, чтобы изменить характер?

Персонаж 2713

http://www.fileformat.info/info/unicode/char/2713/index.htm


person jjwdesign    schedule 15.05.2012    source источник
comment
Может ли кто-нибудь указать мне правильное направление? - Определите право и укажите Направление, иначе: Вон там! / Возможно? - Конечно, возможно --- подсказка: Прочтите FAQ, как задать хороший вопрос.   -  person hakre    schedule 16.05.2012


Ответы (1)


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

Боюсь, я не знаю ни одной библиотеки, которая это сделает, но я был бы удивлен, если бы их не было. Вам нужно будет прочитать объекты PDF, выполнить замену и записать их в новый файл. Я бы начал с поиска ответов на этот вопрос.

Изменить: это выглядит полезным.

person halfer    schedule 15.05.2012