Special File Handling

*VIEWER*

Print Preview

Formats

1.

Open for Preview:

OPEN (chan)"*VIEWER* [ ;options ]"

2.

Via WindX:

CALL "*WindX.utl;SPAWN","*VIEWER* -XT=1 -ARG filename[DELETE]"

3.

Via Command Line:

path\PVX\PXPLUS.EXE"*VIEWER* -XT=1 -ARG filename[DELETE]"

Where:

chan

Channel or logical file number (e.g. open (1)"*viewer*").

DELETE

Optional keyword. Use the DELETE to tell PxPlus to erase the file when the viewer closes.

filename$

Name of the file that the print job is stored in or being spooled to. The file must be a serial file and not locked. See SERIAL directive. To override the normal requirement that a serial file be locked, use 'LU' system parameter.

PVX | PXPLUS.EXE

Command to launch PxPlus. See Launching PxPlus.

*VIEWER*

Keyword, not case-sensitive. Special interface, enclosed in quotation marks within OPEN directive. (Include * asterisks in syntax)

options

A series of semi-colon separated options that can be used to set the Margins, Orientation, Paper size, etc. of the printer that the viewer is to emulate. Specific properties are listed under WINPRT_SETUP Properties.

*WINDX.UTL;SPAWN

PxPlus utility;function. See Format 10: [WDX] and *WindX.utl.

Description

Note:
*VIEWER* is supported for use in WindX or Windows only.

The *VIEWER* is a special device file for previewing reports. The *VIEWER* is able to:

Note:
If the global variable %PDF_DEFAULT$ contains the option VIEWER, the system built-in PDF driver and external PDF viewer will be used whenever the application opens *VIEWER*.

An OPEN may specify a number of semi-colon separated options for invoking the VIEWER interface. These may be included as part of the path or within the OPT= clause:

OPEN(chan,OPT="option;option;…")"*VIEWER*"

Two special options (INLINE and ONCLOSE) can be used to control how the preview is created at run time. These and other options are described below.

*VIEWER* Output Parameters

The options that can be used to define PDF output are:

Option

Description

COLLATE=YES | NO

(Printer Output Only) Collate paper.

COLOR=YES | NO

or COLOUR=YES | NO

(Printer Output Only) Colored print.

COLUMNS=num

(Text-based Reports Only) Minimum number of columns.

COPIES=num

(Printer Output Only) Set number of copies.

CREATED

Used to document the output file when it is saved.

DPI

Resolution in dots per inch.

FONT=fontspec

Default font for reports. Defaults to "Courier New, -10".

FONTSIZE=num

Default font size for reports.

INLINE

See *PDF* Output Parameters.

MARGINS=top :left:right:bottom

or MARGIN=top:left:right:bottom

Defines margin settings in 1/1000ths of an inch.

ONCLOSE

Invokes a new instance of the viewer interface when the printer channel is closed.

ORIENTATION=LANDSCAPE | PORTRAIT

Swap output width for length, and vice versa.

PAGINATIONAT=num

Auto form feed at row.

PAPERSIZE=num

Define paper size.

PRINTER=string

Associated printer name.

QUALITY=num

(Printer Output Only) Specifies DPI, 0 (or unspecified) = printer default.

RANGE=num | from:to

Select only specific page number or range to print.

ROWS=num

(Text-based Reports Only) Minimum number of rows.

SCALETOFIT

(Text-based Reports Only) Resize report to fit paper size.

SOURCE=num

Set specific paper source.

SUPPRESSALLBLANKPAGES

Suppress all blank pages.

SUPPRESSFIRSTBLANKPAGE

Suppress first blank page.

SUPPRESSWATERMARKS

Suppress watermark display.

TITLE=string

Add Title tag to preview. Can also be used to complete the information in the Windows Print Job window.

USER

Used to document the output file when it is saved.

WATERMARKIMAGE=string

Image name, assumes 100 pixels to the inch.

WATERMARKIMAGELOCATION=num

0 = Centered
1 = Tiled
2 = Top Left
3 = Top Right
4 = Bottom Left
5 = Bottom Right

WATERMARKTEXT=string

Watermark text.

WATERMARKTEXTFONT=fontspec

Font for watermark text.

WATERMARKTEXTLOCATION=num

0 = Centered
1 = Tiled
2 = Top Left
3 = Top Right
4 = Bottom Left
5 = Bottom Right

WATERMARKTEXTROTATION=num

Text rotation, angle in degrees.

The following six options are used only if the 'CP', 'EP' and 'SP' mnemonics are encountered in the report. If not set, then the viewer will attempt to set correct values for each. It is not necessary to set all of these items. Simply setting SPCols is enough. The values for 'CP' and 'EP' are calculated, and the Rows= will all default to the same value.

Option

Description

CPCOLS=num

0 to 255, number of columns when in 'CP'.

CPROWS=num

0 to 255, number of rows when in 'CP'.

EPCOLS=num

0 to 255, number of columns when in 'EP'.

EPROWS=num

0 to 255, number of rows when in 'EP'.

SPCOLS=num

0 to 255, number of columns when in 'SP'.

SPROWS=num

0 to 255, number of rows when in 'SP'.

Example

The following example illustrates how to open and use the *VIEWER* for print preview:

CHAN=unt;
open (CHAN)"*VIEWER*"
print (CHAN)'font'("Courier New",-10),'DF',
print (CHAN)'font'("Arial",2),'text'(@x(2),@y(2),"Fonted Text"),
print (CHAN)'picture'(@x(3),@y(5),@x(43),@y(30),"*win/nomads2"),

Note:
Set the 'BM' mnemonic to On to have the *VIEWER* send all data directly to the print file without interpretation. This allows you to send print jobs to any Windows printer that is available on the client PC. The *VIEWER* filters out the first and/or last page if either is blank.

The *VIEWER* does not return values for maximum column/line; i.e. in MXC( ) / MXL( ) functions.

The following example illustrates how to approximate the number of columns:

     CHAN=unt;
     open (CHAN)"*WINPRT* POINTSZ=-10"
LOOP:
     print (CHAN)'font'("Courier New",POINTSZ),'DF',
     if mxc(CHAN)<132 \
          then POINTSZ+=2;
                  goto LOOP
     LINES=mxl(CHAN),COLS=mxc(CHAN)
     print (CHAN)'AB', ! <--- aborts print job
     close (CHAN)
     open (CHAN)"*VIEWER*"
     print 'font'("Courier New",POINTSZ),'DF',mn/line