Загрузите документ MS Word 2007 с классом TinyButStrong и без расширения файла.docx
Я пытаюсь объединить документы с библиотекой TBS, но когда я пытаюсь загрузить документ MS Word 2007 с $tbs->LoadTemplate($path_file)
, Это не работает, у меня нет ошибки, но сгенерированный файл поврежден.
Я знаю, откуда возникла проблема: $path_file
не имеет расширения .docx
потому что если я пытаюсь загрузить файл с .docx
расширение, все работает правильно. Но я не могу использовать этот способ, я должен использовать файл без расширения (файлы загружаются пользователями на сервер и хранятся без расширения, и я не могу изменить функции для загрузки файлов).
Так что я хочу знать, как я могу открыть .docx
без расширения с TBS?
3 ответа
Проблема решается путем создания временного файла с расширением (расширение хранится в базе данных). Я загружаю шаблон, используя temp, и удаляю его сразу после.
Я предполагаю, что вы используете плагин OpenTBS для TinyButStrong, который создает документы Docx.
Сейчас есть новая версия 1.6.0, которая все еще находится в бета-версии, но доступна для скачивания. Эта последняя версия может распознавать тип документа не только по его расширению, но и по вложенному файлу. В конце у него также есть новая команда, которая позволяет вам принудительно установить тип документа.
Увидеть:
http://www.tinybutstrong.com/news.php
http://www.tinybutstrong.com/plugins/opentbs/tbs_plugin_opentbs.html
Скорее всего, это не проблема расширения, а проблема формата.
.docx
формат файла на основе XML TBS может работать с заполнителями в XML-документах, так что все в порядке - простой поиск и замена будут работать.
Старый .doc
Формат файла проприетарный. Его структура не известна широкой публике и не основана на XML. Вы не можете искать и заменять содержимое там, как в документе XML.
То, что вы хотите сделать, возможно, невозможно со старыми файлами.doc.