Scripting and Programming Support

Miraplacid Text Driver registers itself as COM object and could be used from any scripting and COM-compliant software.
Using this ability, you can control the printing process directly from your script or application.

Miraplacid Text Driver Scripting Object Creation

To create component, use following constructions
  • JScript: var obj = WScript.CreateObject("Miraplacid.TextDriver");
  • VBScript: set obj = WScript.CreateObject("Miraplacid.TextDriver")
  • Visual Basic: Set obj = CreateObject("Miraplacid.TextDriver")
    To enable early binding, you have to check "Miraplacid Text Driver Type Library" in "Project References" dialog and insert the following code:
    Dim obj As Miraplacid.TextDriver
    Set obj = CreateObject("Miraplacid.TextDriver")
where myscript.vbs is your script name (see sample scripts below)

Unregistered version of Miraplacid Text Driver will not show registration dialog until trial period expiration if used in autosave mode. After that, object creation will fail with appropriate message in errorinfo.

Object Miraplacid.TextDriver


Property Type Description
Value VARIANT (String Name) (Read / Write) All the Text Driver properties. This is Default Property. Meaning, it could be referred as obj("property_name") as well as obj.Value("property_name")
All the parameters are listed below.
DocumentName String (Read Only) Original name of the printed document
TotalPages Number (Read Only) Total estimated amount of pages in current print job
RenderedPages Number (Read Only) Amount of rendered pages in current print job
TotalJobs Number (Read Only) Number of printed documents spooled in Text Driver and waiting for processing
JobProperty VARIANT (String Name) (Read Only) Current job various properties. All the parameters are listed below.
AutoSave Number (Read / Write) 0 - interactive mode; 1 - Process and Auto-send to the specified destinations
Identity Number (Read / Write) Identity value to replace {{IDENTITY}} tag
Format String (Read / Write) Selects format plug-in ("Output Style"). PLug-ins should be named by their internal (short) names.
The following values are valid:
Formatted - "Formatted Text"
TWL - "Text with Layout"
XML - "XML"
RSS - "RSS"
Plain - "Plain Text"
FormatParam VARIANT(String PluginName, String ParameterName) (Read / Write) Format Plug-in Parameters. All the parameters for all plug-ins are listed below.
FormatParamNoCheck VARIANT(String PluginName, String ParameterName) (Write Only) Format Plug-in Parameters. Use this option to set only appropriate property, without updating plug-in user interface and checking value. This option is useful when you need to set all options in a batch, and some options affect others. After all options are set, call FormatCheckSettings to update plug-in state correctly.
FormatPluginNames String Collection (Read Only) List of installed format plug-ins (XML, Plain Text and so on)
Transport String (Read / Write) Selected Transport Plug-in names. If more than one transport plug-in selected, names should be comma delimited.
The following values are valid: Clipboard, FTP, File, HTTP. Mail, Printer.
TransportParam VARIANT(String PluginName, String ParameterName) (Read / Write) Transport Plug-in Parameters All the parameters for all plug-ins are listed below.
TransportParamNoCheck VARIANT(String PluginName, String ParameterName) (Write Only) Transport Plug-in Parameters. Use this option to set only appropriate property, without updating plug-in user interface and checking value. This option is useful when you need to set all options in a batch, and some options affect others. After all options are set, call TransportCheckSettings to update plug-in state correctly.
TransportPluginNames String Collection (Read Only) List of installed transport plug-ins (File, FTP and so on)
Printer String (Read / Write) Name of the currently selected printer
Printers String Collection (Read Only) List of all printers in Text Driver collection.
RedirectPrinter String (Read / Write) Name of the currently selected printer for redirection. If empty, no redirection will be performed.
SystemPrinters String Collection (Read Only) List of all printers installed in the system. Useful for user interface, this property allows UI to avoid using spooler API.
DefaultPrinter String (Read Only) Name of the default printer in the system.
Method Parameters Description
GetPage Number, returns String Get a rendered page by index.
UpdatePage Number n, String s Replace contents of nth page by s.
CancelJob None Cancel current Print Job. Returns immediately.
CancelJobWait None Cancel current Print Job. Waits until current job will be cancelled and the new one will be opened, if any.
CancelAllJobs None Cancel all jobs for this printer
SaveConfiguration None Save current configuration for active user and active printer
SaveCommonConfiguration None Save current configuration for all users (who do not have own configurations yet) and active printer
SavePage Number page_number Send particular page through selected Transport Plug-Ins. Returns immediately.
SaveAllPages None Send All through selected Transport Plug-Ins. Returns immediately.
SavePageWait Number page_number Send particular page through selected Transport Plug-Ins. Waits until page will be saved.
SaveAllPagesWait None Send All through selected Transport Plug-Ins. Waits until all pages will be saved.
Stop None Unloads plug-ins, get ready for unloading from memory. System will unload Miraplacid Text Driver core form memory with 2-5 seconds delay. We recommend you to add this method call at the end of each script.
FormatCheckSettings String plug-in Call this method after updating several plug-in settings in a batch (using FormatParamNoCheck). Some settings may affect others, and this method guarantees that they will be updated in correct order.
TransportCheckSettings String plug-in Call this method after updating several plug-in settings in a batch (using TransportParamNoCheck). Some settings may affect others, and this method guarantees that they will be updated in correct order.
Redirect String printer, String document This method provides an alternative way to print a copy of print job to another printer. Unlike RedirectPrinter property, which allows to set printer for automatic redirect, this method may be used in scripts or external programs when additional analysis needed to decide, redirect this job to that printer or not. Returns immediately.
"Document" parameter allows you to provide alternative name of redirected print job. Ignored if NULL or empty string.
RedirectWait String printer, String document The same as Redirect method, but waits until redirect process will be completed.
LoadUI None Loads user interface component if it is not already loaded.
UnloadUI None Unloads user interface component, if it supports OnUnload event.
GetEMFPage Number index, String filename Extracts a page referred by index from current job and saves it as a file "filename" in EMF format. Caller is responsible for deleting this file.
This method works only with print jobs in EMF format.
Special tags supported.
SetEMFPage Number index, String filename Assigns a file "filename" to be a content of page referred by index. File must be in EMF format. Caller is responsible for deleting this file. File must not be deleted before the job is redirected.
To set page back to original content from print job spool file, set filename to empty string or NULL value.
This page manipulation will affect only EMF print job intended for redirect to another printer, not text job image for save.
This method works only with print jobs in EMF format.
Special tags supported.

Miraplacid Text Driver Properties Reference


All these properties accessible via default "Value" property:
obj.Value("Charset") = 1250
or just
obj("Charset") = 1250

Property Type Description
Charset Number Character set (codepage number)
5 - UNICODE
437 - OEM American DOS
850 - OEM Latin-1 DOS
852 - OEM Eastern Europe DOS
866 - OEM Cyrillic DOS
932 - Japanese
936 - Chinese (Simplified")
949 - Korean
950 - Chinese (Traditional)"
1250 - ANSI Latin-1 Windows
1251 - ANSI Cyrillic Windows
1252 - ANSI Eastern Europe Windows
1257 - ANSI Baltic Windows
...etc...
UnixEOL Number End Of Line style
0 means "Windows" EOL style (\r\n or 0x0D, 0x0A)
1 means "UNIX" EOL style (\n or 0x0A)
PageBreak Number 1 - insert page break symbols (0xc) between pages; 0 - don't.
UnicodePrefix Number 1 - insert Unicode prefix (0xfeff) before Unicode content; 0 - don't.
REMFMargins Number Value of redirection margins enumeration: 0 - Auto-compensated, 1 - Auto-normal, 2 - Custom.
REMFTop Number Value of top custom margin.
REMFBottom Number Value of bottom custom margin.
REMFLeft Number Value of left custom margin.
REMFRight Number Value of right custom margin.
REMFCompatibility Number Turn on/off Save as Image mode for EMF redirection
REMFConstrain Number Turn on/off constrain proportions for EMF redirection
RTextFont String Name of font which will be used for text redirection
RTextSize Number Text size which will be used for text redirection
RTextWeight Number Font weight (100 - 900) which will be used for text redirection
RPrinterSettings ByteArray One-dimentional Safearray of bytes containing printer settings (DEVMODE).
To use default printer settings, set this value to the empty Safearray of bytes.

Miraplacid Text Driver Job Properties Reference


All these properties accessible via "JobProperty" property:
var job_status = obj.JobProperty("Status")

Property Type Description
JobID Number System print job ID for the current job.
0 if no active job.
Status Number Current job status. Binary flags (ORed):
  • 0 - No print jobs currently in progress.
  • 1 - Started - initial state just after StartJob event from driver.
  • 2 - Opened for rendering. This may happen just after the job will be created, if not other jobs are in Text Driver queue, or after it will be printed, when current job will be saved and cancelled.
  • 4 - Printed - printer driver completed all operations with current job. After that, the job may still not be available for save, it must be Opened and Rendered first.
  • 8 - Rendered - ready for save. All the job contents are processed by selected rendering plug-in.
Resolution Number Resolution for the current job, in DPI.
0 if no active job.
Printer String Printer name for the current job.
Empty string if no active job.
Document String Document name for the current job.
Empty string if no active job.
Format String Data format for the current job - TEXT / NT EMF 1.006 / NT EMF 1.007 / NT EMF 1.008.
Empty string if no active job.
SpoolFile String Spool file name with full path for the current job.
Empty string if no active job.
SepFile String Separator file name with full path for the current job.
Empty string if no active job or if no separator page applied to the job.

Miraplacid Text Driver Send To (Transport plug-ins) parameters


To query or modify Transport plug-in parameters, use TransportParam property of Miraplacid Text Driver object.
obj.TransportParam("File","filename")="textout_{{PAGE}}.txt"

File
Property Type Description
path String Destination File Path. Special tags supported.
filename String Destination File Name. Special tags supported.
open Number Opens resulting text file with post-processor.
hide Number 0 = show post-processor window. 1 = hide post-processor window. Ignored if open=0.
exec String Post-processor filename with full path. Special tags supported. Ignored if open=0.
param String additional parameters for post-processor. Special tags supported. Ignored if open=0.
append Number Set it to 0 if you wish to overwrite resulting file. Set it to 1 if you wish to append current result to a previous file.
wait Number Set it to 1 if you wish to wait application termination before continue. Ignored if open=0.
FTP
Property Type Description
url String Destination FTP directory URL. Special tags supported.
file String Destination File Name. Special tags supported.
passive Number 0 = FTP passive mode OFF. 1 = FTP passive mode ON.
user String FTP server username.
password String FTP server password.
HTTP
Property Type Description
url String Destination HTTP URL. Special tags supported.
file String Destination File Name. Special tags supported.
put Number 0 = use POST method. 1 = use PUT method.
user String username.
password String password.
Printer
Property Type Description
printer String Printer name. Can be a real printer name or "Default" string which means default printer.
settings ByteArray One-dimentional Safearray of bytes containing printer settings (DEVMODE).
To use default printer settings, set this value to the empty Safearray of bytes.
font String Font family name to use in print output or "Default" string to not to use any specific font when printing.
charset Number Numeric code of character set or DEFAULT_CHARSET value (equal to 1).
weight Number Weight of characters to be used in print output.
The following values will be accepted:

0 - DONTCARE
100 - THIN
200 - EXTRALIGHT
300 - LIGHT
400 - NORMAL
500 - MEDIUM
600 - SEMIBOLD
700 - BOLD
800 - EXTRABOLD
900 - BLACK
height Number Height of characters to be used in print output.
italic Number Specifies an italic font if set to 1.
strikeout Number Specifies an strikeout font if set to 1.
underline Number Specifies an underline font if set to 1.
Mail
Property Type Description
mail String A set of email addresses of mail recipients, separated by semicolon.
subject String Email subject. Special tags supported.
message String Email message body. This value will be used as a header before actual email content (printed pages).
Text Driver will place this message, separator line, then printed pages. Special tags supported.
attach Number Set it to 1 if you wish to send result as an attachment.
filename String Name of file which will be used as an attachment. Special tags supported.
Clipboard
Property Type Description
open Number Opens resulting text file with post-processor.
hide Number 0 = show post-processor window. 1 = hide post-processor window. Ignored if open=0.
exec String Post-processor filename with full path. Ignored if open=0. Special tags supported.
param String additional parameters for post-processor. Ignored if open=0. Special tags supported.
wait Number Set it to 1 if you wish to wait application termination before continue.

Miraplacid Text Driver Formatting Style (Rendering plug-ins) parameters


To query or modify Format plug-in parameters, use FormatParam property of Miraplacid Text Driver object.
obj.FormatParam("TWL","margins")=1
In the table below, plug-ins are provided in Description (Name) format. For FormatParam, use name values.

Plain Text (Plain)
Property Type Description
delim String Delimiter which will be used to separate text boxes during rendering. This value may include the following escaped special characters: \s (whitespace), \t, \r, \n, \f, \\ (backslash itself) and \xnnnn (nnnn is a hexadecimal code of Unicode symbol).
lheight Number Vertical rendering mode: 0 = automatic, 1 = fixed.
ilgap Number Value of inter-line gap, in tenths of percents, it lheight = 0.
heightval Number Ling height in pixels, it lheight = 1.
Formatted Text (Formatted)
Property Type Description
margins Number 1 - use printer margins in text rendering (at top and left side); 0 - don't.
usespaces Number 1 - use whitespace strings from document; 0 - don't.
right Number 1 - use right alignment rendering; 0 - don't.
char Number Character width calculation option: 0 - "Automatic, each page", 1 - "Automatic, first page", 2 - "Fixed value".
cwidth Number Manual character width if char option is set to 2.
lheight Number Vertical rendering mode: 0 = automatic, 1 = fixed.
ilgap Number Value of inter-line gap, in tenths of percents, it lheight = 0.
heightval Number Ling height in pixels, it lheight = 1.
Text with Layout (TWL)
Property Type Description
margins Number 1 - use printer margins in text rendering (at top and left side); 0 - don't.
usespaces Number 1 - use whitespace strings from document; 0 - don't.
lheight Number Vertical rendering mode: 0 = automatic, 1 = fixed.
ilgap Number Value of inter-line gap, in tenths of percents, it lheight = 0.
heightval Number Ling height in pixels, it lheight = 1.
XML (XML)
Property Type Description
optimize Number 1 - merge textboxes into whole words; 0 - don't.
space Number Value in percents of average symbol width (10 - 100).
RSS-Atom (RSS)
Property Type Description
author String Author attribute of RSS channel/Atom feed (document).
link String Link attribute of RSS channel/Atom feed (document).
description String Description attribute of RSS channel/Atom feed (document).
br Number 1 - add <BR> tag to the end of description lines; 0 - don't. HTML content type for Atom feed.

Miraplacid Text Driver Post-Processing System


You can setup Miraplacid Text Driver to launch an application to handle the results of text generation process.
Select Send To: File, check "Open with" checkbox and specify post-processor application.
For example, you can execute notepad.exe using the following settings:


path: "c:\"
filename: "textout.txt"
Open With: "notepad.exe"
Parameters: ""


Quotation marks are necessary when file name or path contains space characters.
Or, you can set up a viewer to open result text file for every printed page. You must add tag {{PAGE}} in filename textbox.

path: "c:\"
filename: "textout{{PAGE}}.txt"
Open With: "notepad.exe"
Parameters: ""


Notice that applications and files you use in post-processing should be specified with full path.

See also: