2013-05-01 5 views
0

Я пытаюсь придумать способ управления документами.Заполните PDF онлайн?

В настоящее время мы разрабатываем наши шаблоны документов в формате HTML, а затем позволяем нашим клиентам заполнять несколько пробелов с использованием CKEditor, а затем мы используем DOMPDF для преобразования HTML в PDF, чтобы они могли распечатать документ.

Это работает нормально, но есть много мест, где это может пойти не так. CKEditor немного разбирается в HTML, и DOMPDF не всегда идеально его преобразует. В частности, мы не можем делать верхние и нижние колонтитулы должным образом.

С нашей конечной целью является создание PDF-файла, есть ли лучший способ сделать все это? Например, мы могли бы разработать документ в PostScript или LaTeX, а затем каким-то образом визуализировать PDF непосредственно на нашем веб-сайте (без внешней программы!) С использованием JavaScript с некоторыми текстовыми полями-заполнителями, чтобы наши клиенты могли заполнить необходимые части, а затем сохранить и экспортировать это?

Часть «заполнить» должна оставаться на нашем сайте, потому что нам необходимо отслеживать, что они ввели для аудита и управления версиями.

+0

есть заполненные формы PDF – 2013-05-01 00:06:51

+0

Как насчет того, если вы отправляете данные из своего HTML и собираете PDF-файлы на стороне сервера? – Rafa

+0

@YoriKusanagi: А? Как это отличается от того, что я уже делаю? Мы сами создаем HTML-шаблон, затем HTML выводим в редакторе WYSIWYG, который наши клиенты могут редактировать в своем сердце, а затем нажимают кнопку, которая преобразует ее в PDF (на стороне сервера). – mpen

ответ

0

Сначала вам нужно обрабатывать HTML-форм данных в формате XFDF (через createXFDF() функции), то вы хотите использовать такой код:

$pdf_template_path = dirname(__FILE__) . '/pdf_form_template.pdf'; 
$pdftk = '/usr/bin/pdftk'; 
$pdf_name = substr($xfdf_file_path, 0, -4) . 'pdf'; 
$result_pdf = $result_directory . '/' . $pdf_name; 
$command = "$pdftk $pdf_template_path fill_form $xfdf_file_path output $result_pdf flatten"; 

, предполагающей у вас есть шаблон PDF на вашем сервере для записи данных.

> more information here

+0

Я также использую PDFTK для обработки XFDF в PDF, но это не всегда лучший способ.Часть проблемы состоит в том, что это предполагает, что они заполняют предопределенные местоположения в документе - вопрос не говорит, имеет ли это значение, или они заполняют текст внутри существующих абзацев или строк текста. –

+0

OP не имеет онлайн-формы .. – Ejaz

+0

Ejay's correct. У нас нет кучи полей форм, у нас есть редактор WYSIWYG, который позволяет им заполнять части документа или слегка редактировать его, если это необходимо. – mpen

1

Лучший ответ на этот вопрос будет зависеть от того, какие данные ваши клиенты добавляемых к форме.

Если они заполняют информацию, в частности, поля фиксированной ширины, то самым простым способом, как и другие, также является создание заполняемого PDF-файла, использование XFDF для его заполнения и PDFTK, чтобы сгладить его. Вы можете увидеть my answer to another question для образца кода.

Однако, если ваши клиенты заполняют пробелы в середине строк или абзацев текста, вы не сможете легко использовать заполняемый PDF-файл. Ваше предложение использовать PostScript или LaTeX является хорошим. Если вы оставляете какие-то токены в необработанном файле, а затем заменяете их «на лету» данными, представленными на вашей веб-странице, вы можете позвонить ps2pdf или latex2pdf (или любую другую программу конвертации), когда форма отправлена ​​для возврата завершенного PDF.

EDIT Это не то, что вопрос подразумевал под «никакой внешней программой». В вашем исходном вопросе запрашивается «нет внешней программы», но many other sources say что, как представляется, библиотеки PHP не делают такого преобразования.

+0

То, что я подразумевал под «никакой внешней программой», было то, что я не хочу, чтобы мои клиенты заполняли документ в автономном режиме. то есть, когда он покидает наш сайт, мы не можем отслеживать, что они делают с этим документом. Нам нужно, чтобы они ввели всю информацию на нашем сайте напрямую, чтобы мы могли записать все изменения, которые они вносят в документ. Предпочтительно после экспорта PDF он будет «заблокирован» и не будет легко редактироваться. – mpen

+0

Данные часто находятся в середине абзаца, но я не думаю, что очень важно, чтобы текст был «плотным» вокруг их ввода. то есть оставляя слот фиксированной ширины для текста в порядке. – mpen

Смежные вопросы