Как создать файл Word .doc из шаблона .doc в php - PullRequest
9 голосов
/ 04 января 2010

Мне нужно создать документ Word из шаблона слова, что-то вроде: нам нужно заменить несколько строк (скажем, переменных) в шаблоне на значения.

Пожалуйста, расскажите, как мы можем сделать это на PHP (или cakePHP).

Ответы [ 4 ]

4 голосов
3 голосов
/ 04 января 2010

Самая большая проблема, с которой вы столкнетесь, заключается в том, что формат .doc имеет двоичный характер (см. этот вопрос и этот пост от Джоэла ).

Есть ли причина, по которой вы не можете использовать документ в формате HTML (какое слово открывалось более 10 лет) или форматированный текстовый файл ? Оба они основаны на тексте и причинят вам значительно меньше боли. В результате их очень легко использовать с шаблоном.

В качестве альтернативы, если вы можете быть уверены, что у пользователя будет более новая версия Office (2007+), то вы можете, хотя это несколько сложно, использовать документ .docx, который на самом деле представляет собой Zip-архив и данные XML , Вы можете реализовать это довольно просто, создав файл .docx word, содержащий нужный шаблон, переименовав его в .zip, извлекая файлы, обучая ваше приложение выполнять замену текста в этой файловой структуре на месте, повторно заархивируйте его, используя PHP-класс ZipArchive , а затем отправьте этот файл (конечно, с именем .docx).

2 голосов
/ 30 сентября 2014

Я думаю, это поможет вам

docxtemplater-мастер

Генерация документов из шаблонов, https://github.com/edi9999/docxtemplater

phpdocx

PHP-библиотека для динамической генерации документов Word в формате docx.

http://www.phpdocx.com/

0 голосов
/ 04 января 2010

Чек http://www.phpbuilder.com/annotate/message.php3?id=1024286, а также статья, которую он комментирует.

Я сделал подобный трюк, когда мне нужно было создать простую таблицу Excel. При отправке правильного заголовка клиент Excel не жаловался вообще. Или, если вы можете использовать другой формат напрямую, используйте его. (.docx или открытый документ являются сжатыми XML, так что вы можете управлять им проще)

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