Генерируйте ODT-документы с динамическими изображениями на PHP
-
21-09-2019 - |
Вопрос
Я поддерживаю пару веб-баз данных, основанных на PHP и MySQL, на пакете общего хостинга.Базы данных имеют механизм, позволяющий пользователю загружать документы OpenOffice с заполнителями:
[person.name] [person.address] [person.postcode]
Затем я использую этот отличный PHP-инструмент чтобы просмотреть документ OpenOffice и вставить в него значения из базы данных.Результатом снова является документ OpenOffice.
Чего он не может сделать, так это динамические изображения.
Кто-нибудь знает - предпочтительно только на PHP - решение для вставки изображений в документы OpenOffice?
- Я знаю PUNO.Не могу использовать его в данном контексте, потому что это общий хостинг.
- Я знаю, что OpenOffice можно запустить как демон - то же самое.
- Я знаю phpDocWriter.Это было здорово для файлов SXW, но теперь мертво.
- Я знаю, что OpenDocument - это набор XML-файлов в ZIP-файле.Однажды я попытался программно добавить подпись к каждому изображению в документе ODT.Это сводило меня с ума чертов сумасшедший.Я с восхищением смотрю на разработчиков, которые работают с этим форматом, но это не для меня.
Я был бы очень признателен за любые подсказки по существующим решениям.
Решение
Я думаю, что odtPHP возможно, это то, что вы ищете
похоже, что is может вставлять изображения в заполнитель в документе и просто считывает данные из массива, чтобы увидеть, какое изображение разместить.
http://www.odtphp.com/index.php?i=tutorials&p=tutorial5
Теперь, если вы сделаете это как постпроцесс после вашего текущего кода или просто используете его вместо TBS, вы получите все, что вам нужно, ИМХО
В качестве альтернативы вы можете включить изображение по умолчанию с определенным именем файла в свой документ и просто заменить этот файл изображения в архиве.
Другие советы
Появилась новая версия TbsOOo, это Открытые страницы и у него есть функция для вставки / изменения изображения в файле.
Вы пытались использовать AddFileToDoc
способ добавления изображения в документ?
Документация по этому методу находится здесь: