windows 7 Review bit-info.com on alexa.com

COM API для программистов

В этом разделе описано, как можно вызывать функции программы «Печать конвертов!» из других программ.

Простой пример-введение

Для начала проиллюстрируем, как можно просто вызвать печать конверта из других программ:

Создадим файл test.js со следующим текстовым содержимым:

pepro= WScript.CreateObject("PEPro.Application");

pepro.PrintEnvelope
  ("Иван",  "г Иваново, Ивановская 4", "111111",
   "Марья", "г Мариуполь, Ленина 2",   "222222");
      

 

Разберём, как работает этот скрипт.

 

Сначала необходимо создать экземпляр программы «Печать конвертов!», что выполняется в первой команде CreateObject ("PEPro.Application"). Полученный экземпляр сохраняется для дальнейшего использования.

Далее вызывается непосредственно функция PrintEnvelope печати конверта для письма от Ивана к Марье.

  • Иван указывает обратный адрес "г Иваново, Ивановская 4", почтовый индекс "111111".
  • Письмо пишется на адрес Марьи "г Мариуполь, Ленина 2", почтовый индекс "222222".

Просто запустив созданный файл, мы должны получить открытую форму печати конверта (возможно, в зависимости от регистрации программы, после «формы ворчания»).

Далее, того же самого результата можно добиться, собрав данные для конверта в один xml-аргумент и воспользовавшись методом PrintFromXmlEnvelopes:

pepro= WScript.CreateObject("PEPro.Application");

pepro.PrintFromXmlEnvelopes
(
"" +
"  " +
"    " +
"      Иван" +
"      
г Иваново, Ивановская 4
" + " 111111" + " " + " " + " Марья" + "
г Мариуполь, Ленина 2
" + " CA 90048" + " " + " " + "" );

 

Конечно, возникает вопрос, зачем делать сложно то, что проще простого. Понять «зачем» можно из следующего примера, который иллюстрирует, как Иван может разом писать несколько писем. Например, помимо Марьи можно заодно распечатать конверт и для Анжелины:

pepro= WScript.CreateObject("PEPro.Application");

pepro.PrintFromXmlEnvelopes
(
"" +
"  " +
"    " +
"      Иван" +
"      
г Иваново, Ивановская 4
" + " 111111" + " " + " " + " Марья" + "
г Мариуполь, Ленина 2
" + " CA 90048" + " " + " " + " " + " " + " Иван" + "
г Иваново, Ивановская 4
" + " 111111" + " " + " " + " Angelina" + "
1901 Ave. of the Stars # 680\r\n" + " Los Angeles, CA 90067-6008\r\n" + " USA
" + " " + " " + "" );

 

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

Такой режим поддерживается при помощи метода PrintFromFileEnvelopes:

pepro.PrintFromFileEnvelopes(path + "\\printenvelopes.xml");