Създавайте документи на Word програмно, Windows IT Pro

Използване на скриптове VBScript

Създаването на текстови файлове с помощта на скриптове е доста лесно, тъй като Windows средата като цяло и Windows Script Host (WSH) в частност предоставят специални инструменти за работа с текстови файлове. Въпреки това, докато текстовите файлове са идеални за съхраняване на проста, неструктурирана информация, те не са достатъчни за по-сложни изисквания. Ако трябва да представите йерархична информация, можете да използвате XML инструменти, за да създадете маркиран текст с (или не) препратка към схемата. Често обаче е необходимо да се създават документи, които представят информация, използвайки сложна маркировка. HTML файловете са алтернатива на свързването на данни и сложното маркиране на страници. HTML документите обаче са обикновен текст и по принцип са лесна плячка за нападателите. В допълнение, HTML документите рядко са самостоятелни и често съдържат връзки към външни ресурси като изображения, ActiveX контроли и аплети.

За разлика от разгледаните по-горе решения, Microsoft Word всъщност е стандартът в работния процес на реалния свят. Лесно е да създавате такива документи онлайн, но можете ли да автоматизирате този процес, като създавате програмно и използвате документи, базирани на шаблони? Да, и сега ще обясня защо. Няма да навлизам в подробности от страната на процеса, която се отнася до работата в пакета Word. Вместо това ще се съсредоточа върху създаването и управлението на програмни документи, ако приемем, че читателите са запознати с основите на работа с шаблони и маркери на Word.

Използване на Word шаблони

Понякога трябва да подготвя фактури, след това да ги разпечатвам за изпращане по пощата или да ги разпространявам по имейл. Обикновено отварям Word, избирам шаблона за фактура, въвеждам необходимата информация и записвам файла като нов документ. След това изпращам фактурата на клиента по обикновена поща или като документ, прикачен към имейла.

В повечето случаи фактурите и другите формуляри са прости документи, които използват едни и същи шаблони, но съдържат различна информация като дата, номер на фактура, описание и сума на фактурата. Шаблонът, на който се основава документът, обикновено съдържа едно или повече празни полета, където потребителите могат да добавят специфични за формуляра данни.

В Word можете да създавате формуляри за стандартни документи като фактури, като персонализирате шаблонния файл с разширение .dot. Когато искате да подготвите нов документ въз основа на шаблона, щракнете върху менюто Файл, Нов. След като изберете шаблона, който искате в новия прозорец и щракнете върху OK, Word създава и показва нов формуляр въз основа на този шаблон. В съответните полета на празен формуляр се въвежда различна информация.

Когато използва Word онлайн, потребителят може да види къде да въведе информация. Но как да принудите да се въвежда различна информация в задължителните полета на WSH скрипта? Преди да отговоря на този въпрос, нека разгледаме обектния модел на Word, базирана на COM инфраструктура, която помага програмно да контролира поведението на пакет от Word.

Word обектен модел

Обектният модел на Word съдържа богата и сложна йерархия от обекти. Този обектен модел програмно излага интерактивната функционалност на Word на COM-ориентирани клиенти (т.е. WSH и Visual Basic (VB) скриптове). Основният елемент на обектния модел на Word е обектът Word.Application. За да създадете екземпляр на този обект, трябва да използвате следния код:

Обектният модел на Word работи с изпълнимия файл на Word (winword.exe), а не с отделна DLL. По този начин всеки екземпляр на обекта Word.Application е еквивалентен на стартиране и изпълнение на екземпляр на приложението Word. Тези случаи обаче са невидими. И тъй като не можем да ги видим, съществува риск много случаи да съществуват безцелно, губейки системни ресурси. За да избегнете разпространението на безполезни екземпляри на Word, трябва да се уверите, че скриптовете винаги освобождават обекта, след като приключат с метода Quit:

Въпреки че новосъздадените екземпляри на Word са невидими по подразбиране, можете да ги направите видими, като зададете свойството Visible на True:

Когато екземплярът е видим, можете ръчно да затворите приложението. Задаването на свойството Visible на True може да бъде много полезно при отстраняване на грешки в скриптираните приложения на Word.

Работата с елементи на обектния модел на Word е напълно същата като работата с приложение в интерактивен режим. След инициализиране на приложението, ние създаваме нов документ или отваряме съществуващ. За да създадете нов празен документ, базиран на конкретен шаблон, извикайте метода Add от колекцията Documents и посочете .dot файла, където се съхранява желания от вас шаблон. Кодът по-долу създава документ, който съдържа възможности, вградени в шаблон с име Фактура: