| **Navigation:**  [[introduction.htm|Language Reference]] > 7 - Reports > Report Structures >====== Printer Control Properties ====== | [[header page or group header structure .htm|{{btn_prev_n.gif|Previous page}}]][[introduction.htm|{{btn_home_n.gif|Return to chapter overview}}]][[controls.htm|{{btn_next_n.gif|Next page}}]] | | || These properties control report and printer behavior. All of these properties can be used with either the PRINTER built-in variable or the label of the report as the //target//, however they may not all make sense with both. These properties are contained in the PRNPROP.CLW file, which you must explicitly INCLUDE in your code in order to use them. **PROPPRINT:DevMode** The entire device mode (devmode) structure as defined in the Windows Software Development Kit. This provides direct API access to all printer properties. Consult a Windows API manual before using this. The devmode structure is different in 32-bit (consult a Windows API manual). However, the following properties are the most common and useful: | **DM_ORIENTATION** | **DM_PAPERSIZE** | **DM_PAPERLENGTH** | | **DM_PAPERWIDTH** | **DM_SCALE** | **DM_COPIES** | | **DM_DEFAULTSOURCE** | **DM_PRINTQUALITY** | **DM_POSITION** | | **DM_DISPLAYORIENTATION** | **DM_DISPLAYFIXEDOUTPUT** | **DM_COLOR** | | **DM_DUPLEX** | **DM_YRESOLUTION** | **DM_TTOPTION** | | **DM_COLLATE** | **DM_FORMNAME** | **DM_LOGPIXELS** | | **DM_BITSPERPEL** | **DM_PELSWIDTH** | **DM_PELSHEIGHT** | | **DM_DISPLAYFLAGS** | **DM_NUP** | **DM_DISPLAYFREQUENCY** | | **DM_ICMMETHOD** | **DM_ICMINTENT** | **DM_MEDIATYPE** | | **DM_DITHERTYPE** | **DM_PANNINGWIDTH** | **DM_PANNINGHEIGHT** | **PROPPRINT:Collate** Specify the printer should collate the output: 0=off, 1=on (not supported by all printers). **PROPPRINT:Color** Color or monochrome print flag:1=mono, 2=color (not supported by all printers). **PROPPRINT:Context** Returns the handle to the printer's device context after the first PRINT statement for the report, or an information context before the first PRINT statement. This may not be set for the built-in Global PRINTER variable and is normally only read (not set). **PROPPRINT:Copies** The number of copies to print (not supported by all printers). **PROPPRINT:Device** The name of the Printer as it appears in the Windows Printer Dialog. If multiple printer names start with the same characters, the first encountered is used (not case sensitive). May be set for the PRINTER built-in variable only before the report is open. **PROPPRINT:Driver** The printer driver's filename (without the .DLL extension). **PROPPRINT:Duplex** The duplex printing mode (not supported by all printers). Equates(DUPLEX::xxx) for the standard choices are listed in the PRNPROP.CLW file. **PROPPRINT:Extend** PROPPRINT:Extend can be set to TRUE or FALSE at runtime, and references the REPORT target. This determines whether or not the runtime library generates extra information inside the WMF files, which is being used to generate the new report output formats (XML, HTML, PDF etc.). Set this property to FALSE (0) if you do not want alternate output formats and prefer smaller, compact WMF files (this is default behavior). PROP:Extend is the runtime property that can be used to set the information for the [[comment set document formatting .htm|EXTEND]] attribute. **PROPPRINT:FontMode** The TrueType font mode. Equates (FONTMODE:xxx) for the modes are listed in the PRNPROP.CLW file. **PROPPRINT:FromMin** When set for the built-in PRINTER variable, this forces the value into the "From:" page number in the PRINTERDIALOG. Specify -1 to disable ranges **PROPPRINT:FromPage** The page number on which to start printing. Specify -1 to print from the start. **PROPPRINT:Paper** Standard paper size. Equates (PAPER:xxx) for the standard sizes are listed in the PRNPROP.CLW file. This defines the dimensions of the .WMF files that are created by the Clarion runtime library's "print engine." **PROPPRINT:PaperBin** The paper source. Equates (PAPERBIN:xxx) for the standard locations are listed in the PRNPROP.CLW file. **PROPPRINT:PaperHeight** The paper height in tenths of millimeters (mm/10). There are 25.4 mm per inch. Used when setting PROPPRINT:Paper to PAPER:Custom (not normally used for laser printers). **PROPPRINT:PaperWidth** The paper width in tenths of millimeters (mm/10).There are 25.4 mm per inch. Used when setting PROPPRINT:Paper to PAPER:Custom (not normally used for laser printers). **PROPPRINT:Percent** The scaling factor used to enlarge or reduce the printed output, in percent (not supported by all printers). This defaults to 100 percent. Set this value to print at the desired percentage (if your printer and driver support scaling). For example, set to 200 to print at double size, or 50 to print at half size. **PROPPRINT:Port** Output port name (LPT1, COM1, etc.). **PROPPRINT:PrintToFile** The Print to File flag: 0=off, 1=on. **PROPPRINT:PrintToName** The output filename when printing to a file. **PROPPRINT:Resolution** The print resolution in Dots Per Inch (DPI). Equates (RESOLUTION:xxx)for the standard resolutions are listed in the PRNPROP.CLW file. Must be issued before the report is open. **PROPPRINT:** **SupportCopies** A READ-ONLY property that returns TRUE if the current printer supports output of multiple copies. **PROPPRINT:SupportCollate** A READ-ONLY property that returns TRUE if the current printer supports collating of copies. [[propprint supportcopies propprint supportcollate example.htm|Click here for an example]] that demonstrates the usage of PROP:SupportCopies and PROPPRINT:SupportCollate. **PROPPRINT:ToMax** When set for the built-in PRINTER variable, this forces the value into the "To:" page number in the PRINTERDIALOG. Specify -1 to disable ranges **PROPPRINT:ToPage** The page number on which to end printing. Specify -1 to print to end. **PROPPRINT:Yresolution** Vertical print resolution in Dots Per Inch (DPI). Equates (RESOLUTION:xxx)for the standard resolutions are listed in the PRNPROP.CLW file. **Example:** **SomeReport  REPORT** **            END** ** CODE** ** PRINTER{PROPPRINT:Device} = 'Epson'            !Pick 1st Epson in the list** ** PRINTER{PROPPRINT:Port} = 'LPT2:'              !Send report to LPT2** ** ** ** PRINTER{PROPPRINT:Percent} = 250               !page printed 2.5 times normal ** ** PRINTER{PROPPRINT:Copies} = 3                  !print 3 copies of each page ** ** PRINTER{PROPPRINT:Collate} = False             !print 1,1,1,2,2,2,3,3,3,... ** ** PRINTER{PROPPRINT:Collate} = True              !print 1,2,3..., 1,2,3..., ** ** PRINTER{PROPPRINT:PrintToFile} = True          !print to a file** ** PRINTER{PROPPRINT:PrintToName} = 'OUTPUT.RPT'  !filename to print to** ** OPEN(SomeReport)                               !Open report after setting PRINTER properties** ** SomeReport{PROPPRINT:Paper} = PAPER:User       !Custom paper size** ** SomeReport{PROPPRINT:PAPERHeight} = 6 * 254    !6" form height ** ** SomeReport{PROPPRINT:PAPERWidth} = 3.5 * 254   !3.5" form width**