Мне нужен вариант из PHP для манипулирования документом .docx (Microsoft Office 2007).
Мне нужно:
Я знаю, что могу использовать Word Automation, создавая COM-объект Microsoft Word, но он слишком медленный, нестабильный, и я должен установить его на сервере.
Есть ли библиотека или код, который может сделать это с PHP?
Для авторов PHPExcel существует PHPWord.
Docx – это всего лишь ZIP-файл, содержащий несколько файлов XML и встроенные медиафайлы, такие как изображения. Из-за этого вы можете легко читать и редактировать документ. Просто разархивируйте его, откройте word / document.xml, выполните чтение и запись и переупакуйте файлы.
Convet для HTML может быть сложно. Но вы найдете миниатюру первой страницы в docProps / thumbnail.jpeg.
Обратите внимание, что вам придется ознакомиться с структурой XML, чтобы выполнить любые сложные изменения. Существует сводный XML docProps / app.xml, который содержит некоторые метаданные для файла, поэтому не забудьте его обновить. Подробнее из Википедии: http://ru.wikipedia.org/wiki/Office_Open_XML
Вы можете взглянуть на PHPDocX. Я считаю, что он делает все, о чем вы просите.
Вы можете напрямую работать с внутренним форматом.
DOCX – это всего лишь zip-файл, а внутри него есть word / document.xml, содержащий фактический документ.
Очень просто разархивировать файл, прочитать document.xml, str_replace (), что вы ищете, сохранить его и повторно застегнуть каталог, и это упрощает возможность быстрого и простого обмена сообщениями для текстовых документов. Это также работает для других форматов офиса.
Для получения дополнительной информации см. Официальные документы по внутренней структуре .
Существует также класс PHP для слияния нового содержимого в существующий файл .docx. Он доступен здесь: http://www.tinybutstrong.com/ . Документация довольно хороша, а также имеет множество примеров, и все это бесплатно и с открытым исходным кодом. Однако это требует знакомства с концепциями .docx.