Конвертировать HTML и CSS в DOC(X)?


Есть ли какая-нибудь утилита, которую можно вызвать через командную строку для создания файла doc(x)? Исходным файлом будет HTML и CSS.

Я пытаюсь создавать документы Word на лету с помощью PHP. Я знаю только о библиотеке phpdocx, которая очень низкого уровня и не очень полезна для меня (у меня уже есть одна плохая реализация генерации документов Word).

Что мне нужно от документа:

  • ТОС
  • Изображения
  • Нижние колонтитулы/Верхние колонтитулы (они могут быть сделаны вручную на каждой HTML-странице)
  • Таблица
  • Списки
  • Разрыв страницы (возможность решить, что переходит на какую страницу, например, один HTML-файл на страницу, объединить несколько HTML-файлов для создания всего документа.)
  • Пункты
  • Основные стили жирного шрифта/и т.д.
Author: Kara, 2012-01-04

2 answers

Я тоже не нашел PHPDOCX очень полезным. Альтернативой может быть PHPWord, я думаю, он охватывает то, что вам нужно. Согласно веб-сайту, он может делать следующие вещи:

  • Вставка и форматирование разделов документа
  • Вставка и форматирование текстовых элементов
  • Вставка разрывов текста
  • Вставка разрывов страниц
  • Вставка и форматирование изображений и двоичных OLE-объектов
  • Вставка и форматирование водяных знаков (новых)
  • Вставить верхний/Нижний колонтитул
  • Вставка и форматирование Таблицы
  • Вставить собственные заголовки и оглавление
  • Вставка и форматирование элементов списка
  • Вставка и форматирование гиперссылок
  • Очень простая система шаблонов (новая)

В вашем случае этого недостаточно, но есть плагин для преобразования (базового) HTML в Docx, и, на мой взгляд, он работает очень хорошо. http://htmltodocx.codeplex.com/

Я пользуюсь этим уже год или два и доволен этим. Хотя я должен добавить, что HTML не может быть сложный.

 7
Author: mat, 2012-01-04 10:31:40

Обычно я делаю это так, чтобы иметь файл шаблона документа word с частями, которые я хочу заменить, используя ключевые слова (обычно что-то вроде "{ИМЯ}"). Это позволяет вам прочитать файл с помощью PHP, а затем просто выполнить str_replace на всех деталях, которые вы хотите заменить, а затем записать это в другой файл.

Динамические таблицы, использующие этот метод, немного сложнее, так как вам нужен дополнительный шаблон для строки, который затем вы можете включать в основной шаблон столько раз, сколько требуемый.

Я не уверен, что это лучшее решение, оно всегда казалось мне очень сложным, и каждый раз, когда меня просят это сделать, я расстраиваюсь, но, думаю, это работает. Так что, если кто-нибудь знает лучшее решение, я бы тоже хотел его услышать!

 1
Author: Nick, 2012-01-04 10:09:09