SharePoint Alfresco PHP MySQL
О сайте Контакты
четверг, 25 февраля 2010 г.

Взаимодействие PHP и MS Word на примере приложения, сохраняющего HTML в doc

Утюг. Автор - Тамара Гаранина

PHP может замечательно взаимодействовать с MS Word посредством технологии COM. Чтобы избежать подводных камней в установке и стыковке между собой Ворда и PHP, рассмотрим пример приложения, сохраняющего HTML-страницы по их URL в формат doc.


Чтобы интегрировать Word и PHP, необходимо правильно установить пакет MS Office. Самое главное, что нужно сделать вначале – это установить все последние компоненты .NET framework, например версию 3.5 SP1. Казалось бы, зачем это нужно? Это как раз и есть коварный подводный камень – без данных библиотек PHP будет жаловаться, что метод SaveAs не существует. То есть вы сможете создавать документы, писать в них, а сохранить – никак.

Причем, отметим ключевой момент: .NET framework должен быть установлен до установки Office. Если вначале установить Office, а потом – framework, то эффекта от этого не будет и вы не сможете пользоваться всеми возможностями Word из PHP.

После правильной установки, можно полноценно использовать Word из PHP. Функционально это практически ничем не отличается от программирования макросов на VBA. Вы можете использовать совершенно любые методы и функции, без ограничений. Как узнать, какие это функции и методы? Очень просто: достаточно зайти в редактор Visual Basic в Ворде, и выбрать в меню View – Object browser (горячая клавиша F2). Там вы увидите все доступные методы с их описаниями и параметрами. Ну, естественно, не надо забывать об MSDN, если что-то не получается.

Следует отметить, что Word оперирует такими единицами измерения, как Points. То есть если вам нужно задать поле документа величиной 1 см, следует написать число 28 (так как 1 см = 28 points).

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

В своем демо-приложении я привожу также пример, как можно управлять размерами изображений в документе – это может понадобиться, когда изображение в HTML шире чем лист в ворде, и оно «вылазиет» за края. Чтобы такого не было, логично большие изображения масштабировать.

Исходный код приложения с комментариями можно скачать, и делать с ним все что угодно.


Sergey Lysenko, четверг, 25 февраля 2010 г.

Комментарии: