Мне нужно создать документ слова из шаблона слова, что-то вроде этого, нам нужно заменить несколько строк (например, переменных) в шаблоне значениями.
Расскажите, как мы можем это сделать в PHP (или cakePHP).
Я бы рекомендовал проверить phpLiveDocx: http://www.phplivedocx.org/
И некоторые другие вопросы по SO, которые можно было бы прочитать:
Самая большая проблема, с которой вы столкнетесь, заключается в том, что формат .doc
носит двоичный характер (см. Этот вопрос и этот пост Joel ).
Есть ли причина, по которой вы не можете использовать документ в формате HTML (какое слово можно было открыть более 10 лет) или Rich Text File ? Оба они основаны на тексте, и это приведет к значительному уменьшению боли. Они, как результат, очень просты в использовании шаблона.
В качестве альтернативы, если вы можете быть уверены, что у пользователя будет более новая версия Office (2007+), вы могли бы, хотя это несколько сложно, использовать документ .docx
, который на самом деле является архивом Zip и данными XML. Вы можете реализовать это достаточно просто, создав файл слова .docx
с нужным вам шаблоном, переименовав его в .zip
, извлекая файлы, обучая ваше приложение выполнять замену текста в этой файловой структуре на месте, повторно запишите его используя PHP-класс ZipArchive , а затем отправив этот файл ( по умолчанию .docx
).
я думаю, это поможет вам
docxtemplater-мастер
Создание docx из шаблонов, https://github.com/edi9999/docxtemplater
phpdocx
Библиотека PHP для динамического создания документов Word в формате docx.
Проверьте http://www.phpbuilder.com/annotate/message.php3?id=1024286, а также статью, которую он комментирует.
Я сделал подобный трюк, когда мне нужно было создать простую таблицу excel. При отправке правого заголовка клиентское преследование вообще не жаловалось. Или, если вы можете использовать другой формат напрямую, используйте его. (.docx или открытый документ сжаты xml, поэтому вы можете легко манипулировать им)