Можно ли выводить другие форматы than.docx и.odt с плагином TinyButStrong и OpenTBS
У меня есть модуль, который объединяет документ из записей базы данных и .docx
или .odt
модель документа.
Я должен вывести .docx
, .odt
или .pdf
. Для вывода в Microsoft и открытые форматы проблем нет, все работает правильно.
Но я хочу знать, могу ли я вывести данные в формат (например, XML или HTML), который я могу использовать для последующего создания PDF-документа?
Если я не могу, существуют ли какие-либо библиотеки, которые предоставляют возможность объединения документов, например:
DOCX (or ODT) + database record => PDF
И я не хочу использовать phplivedocx.
3 answers
Я не знаю ни одной библиотеки PHP, которая бы делала DOCX => PDF. На самом деле, преобразование DOCX во что-то другое в PHP сегодня является открытой проблемой. Это не зависит от того, как вы сделали DOCX.
Но, как вы сказали, это библиотеки PHP для HTML => PDF.
HTML2PDF - это хорошо известная библиотека PHP, которая выполняет HTML=>PDF. Существует также dompdf.
Итак, если вы можете найти библиотеку PHP для DOCX =>HTML, то это сработает.
Конечно, в нем есть некоторые ограничения, потому что даже если и PDF, и DOCX являются открытым форматом, у них есть очень специфические функции, им требуется огромный процесс рендеринга, и редакторы хранят для них несколько полезных советов.
Преобразование DOCX в HTML теоретически возможно. Существует программное обеспечение для Windows, которое делает это с помощью Epingsoft. Если вам нужно сделать это на PHP, в некоторых веб-статьях рассказывается, как это сделать, но, поскольку я не могу найти ни одного PHP-кода, делающего это, я думаю, что это более теоретически, чем практичный.
Http://www.quepublishing.com/articles/article.aspx?p=691502
Насколько сложным будет этот процесс , зависит от того, сколько собственного форматирования Word вам нужно сохранить во время обращение.
Если вы хотите попробовать этот способ, полезно знать, что OpenTBS позволяет вам читать XML до и после слияния. Он основан на PHP-классе с именами TbsZip, который может считывать любой XML-файл в DOCX, поскольку на самом деле это zip архив.
Я успешно разместил портативную версию libreoffice на веб-сервере моего хоста, который я вызываю с помощью PHP, чтобы выполнить преобразование командной строки из .docx и т. Д. В pdf. на лету. У меня нет прав администратора на веб-сервере моего хоста. Вот мой пост в блоге о том, что я сделал:
Ура! Конвертируйте напрямую из .docx или.odt в .pdf с помощью PHP с помощью LibreOffice (OpenOffice преемник)!
Также возможно использовать PDF-файлы непосредственно в TBS после распаковки:
qpdf --qdf --object-streams=disable in.pdf out.pdf