Конвертировать HTML и CSS в DOC(X)?
Есть ли какая-нибудь утилита, которую можно вызвать через командную строку для создания файла doc(x)? Исходным файлом будет HTML и CSS.
Я пытаюсь создавать документы Word на лету с помощью PHP. Я знаю только о библиотеке phpdocx, которая очень низкого уровня и не очень полезна для меня (у меня уже есть одна плохая реализация генерации документов Word).
Что мне нужно от документа:
- ТОС
- Изображения
- Нижние колонтитулы/Верхние колонтитулы (они могут быть сделаны вручную на каждой HTML-странице)
- Таблица
- Списки
- Разрыв страницы (возможность решить, что переходит на какую страницу, например, один HTML-файл на страницу, объединить несколько HTML-файлов для создания всего документа.)
- Пункты
- Основные стили жирного шрифта/и т.д.
2 answers
Я тоже не нашел PHPDOCX очень полезным. Альтернативой может быть PHPWord, я думаю, он охватывает то, что вам нужно. Согласно веб-сайту, он может делать следующие вещи:
- Вставка и форматирование разделов документа
- Вставка и форматирование текстовых элементов
- Вставка разрывов текста
- Вставка разрывов страниц
- Вставка и форматирование изображений и двоичных OLE-объектов
- Вставка и форматирование водяных знаков (новых)
- Вставить верхний/Нижний колонтитул
- Вставка и форматирование Таблицы
- Вставить собственные заголовки и оглавление
- Вставка и форматирование элементов списка
- Вставка и форматирование гиперссылок
- Очень простая система шаблонов (новая)
В вашем случае этого недостаточно, но есть плагин для преобразования (базового) HTML в Docx, и, на мой взгляд, он работает очень хорошо. http://htmltodocx.codeplex.com/
Я пользуюсь этим уже год или два и доволен этим. Хотя я должен добавить, что HTML не может быть сложный.
Обычно я делаю это так, чтобы иметь файл шаблона документа word с частями, которые я хочу заменить, используя ключевые слова (обычно что-то вроде "{ИМЯ}"). Это позволяет вам прочитать файл с помощью PHP, а затем просто выполнить str_replace на всех деталях, которые вы хотите заменить, а затем записать это в другой файл.
Динамические таблицы, использующие этот метод, немного сложнее, так как вам нужен дополнительный шаблон для строки, который затем вы можете включать в основной шаблон столько раз, сколько требуемый.
Я не уверен, что это лучшее решение, оно всегда казалось мне очень сложным, и каждый раз, когда меня просят это сделать, я расстраиваюсь, но, думаю, это работает. Так что, если кто-нибудь знает лучшее решение, я бы тоже хотел его услышать!