XDP файл с использованием удаленного PDF - PullRequest
2 голосов
/ 14 июля 2011

В одном из наших приложений у нас есть сценарий сброса данных из базы данных в правильно сформированный XDP-файл, который пользователь может загрузить. XDP содержит ссылку на PDF-файл на том же сервере через тег <pdf>. Идея состоит в том, что пользователь может выгружать данные, получать XDP, который загружает PDF-файл и автоматически заполняет данные, которые они могут затем сохранить, распечатать или отправить по электронной почте.

Проблема в том, что Adobe Reader (или Acrobat) вместо этого открывает веб-браузер по умолчанию, чтобы попытаться загрузить PDF, и если вы откроете его из браузера, он не будет автоматически заполнять данные, выгруженные из базы данных. Если я возьму XDP и использую текстовый редактор, чтобы изменить ссылку в теге <pdf> на локально загруженную копию, форма заполнится нормально, поэтому XDP написан правильно, однако это не практическое решение, так как большинство пользователей не знаю, как это сделать.

У меня вопрос, есть ли способ автоматизировать этот процесс, чтобы Adobe Reader или Acrobat загружал файл PDF и автоматически заполнял данные, а не пытался направить процесс через веб-браузер.

EDIT

Используя ответ Искателя, мы создали следующий короткий фрагмент в PHP:

$filename = ""; // Your file here
$contents = base64_encode(file_get_contents($filename));

Затем в файле PHP, который обрабатывает XML:

<pdf xmlns="http://ns.adobe.com/xdp/pdf/">
    <document>
        <chunk><?php echo $contents ?></chunk>
    </document>
</pdf>

1 Ответ

2 голосов
/ 24 июля 2011

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

в вашем файле XDP замените это: <pdf href="http://.../form.pdf"> на:

 <pdf xmlns="http://ns.adobe.com/xdp/pdf/"><document>
     <chunk>**CONTENT OF YOUR PDF IN BASE64 GOES HERE**</chunk>
    </document>
 </pdf>

Это должно решить вашу проблему.

...