Prints
specified pages from a PDF file. Use this tag to perform automated
batch print jobs. Use the cfprint tag to print
any PDF document, including the ones generated by the cfdocument, cfpdf, and cfpdfform tag. Also, you
use this tag to print Report Builder reports exported in PDF format.
ColdFusion 8: Added this tag.
Data output tags
<cfprint
source = "absolute or relative pathname to a PDF file|PDF document variable"
attributeStruct = "ColdFusion structure that contains standard print request
key-value pairs"
color = "yes|no"
copies = "number of copies"
fidelity = "yes|no"
pages = "page or pages to print"
password = "PDF source file owner or user password"
paper = "letter|legal|A4|A5|B4|B5|B4-JIS|B5-JIS|any media supported by the printer"
printer = "string that specifies the printer name"
type = "PDF">
attributeCollection attribute
whose value is a structure. Specify the structure name in the attributeCollection attribute
and use the tag’s attribute names as structure keys.cfdocument, cfpdf, cfpdfform, cfpdfformparam,cfpdfparam,cfpdfsubform, GetPrinterInfo, IsPDFFile, IsPDFObject
Attribute |
Req/Opt |
Default |
Description |
|---|---|---|---|
|
Optional |
ColdFusion structure used to specify additional print instructions. Individually named attributes take precedence over the key-value pairs in the attribute structure. For information about key-value pairs, see the table in the section attributeStruct. |
|
|
Optional |
Color or monochrome printing:
|
|
|
Optional |
Number of copies to print. The value must be greater than or equal to 1. |
|
|
Optional |
|
Whether to print a job based on the print requirements specified. Valid values are:
|
|
Optional |
|
Pages in the source file to print. Duplicate
pages and pages beyond the total count of pages in the document
are ignored as long as there is at least one page between 1 and
the total number of pages in the document. You can combine individual
page numbers and page ranges, for example, 1–3,6,10–20. If you do not
specify a value for the |
|
Optional |
Paper used for the print job. The value
can be any returned by the
For more information, see the section Supported paper types. |
|
|
Optional |
The owner or user password for the PDF source file. If the PDF file is password-protected, specify this attribute for the file to print. |
|
|
Optional |
The name of a printer. An example in Windows is \\s1001prn02\NTN-2W-HP_BW02. The default name is the default printer for the account where the ColdFusion server is running. Printer names are case sensitive and must be entered exactly as they appear in the System Information page of the ColdFusion Administrator. For more information, see Usage. |
|
|
Required |
Source document to print. Specify one of the following:
|
|
|
Optional |
|
The file type of the document being printed. The only valid value is PDF. |
Use the cfprint tag
for automated batch printing of PDF documents. For example, you
can run a batch job each evening that generates a report in PDF format
and then prints either the entire report or selected pages for review
the next morning without user intervention.
Most of the cfprint tag
attributes are printer-dependent. If a printer does not support
a specified attribute, it ignores the instruction. The default settings
for the attributes also are printer-dependent. If you set a default
printer, only specify the PDF file source and the password, if the
file is password-protected.
cfprint tag is
dependent on the Java Print Service (JPS). Many printers support
attributes that are not accessible from JPS. For example, the JPS
for a Macintosh OSX running JDK 1.5 supports the fewest printer
attributes. Upgrading to JDK 1.6 adds some functionality, but finishing
attributes are still not supported.If the fidelity attribute
is set to yes, the job does not print if any of
the specified attributes are not supported by the printer. If the fidelity attribute is
set to no, the printer accepts the print job and
either ignores any attribute it does not support or substitutes
a reasonable alternative for the attribute.
To determine which
attributes are supported on a specified printer, use the GetPrinterInfo function.
You can use the equivalent page types supported
by the cfdocument tag, but they
are not returned by the GetPrinterInfo function:
cfdocument |
cfprint |
|---|---|
|
|
Log on to the ColdFusion Administrator.
Click the System Information icon located at the top right of the Administrator Console window. (The icon has an “i” on it.)
Scroll to the bottom of the System Information page. Under Printer Details is the Default Printer. Below the default printer is Printers, which lists the configured printers available to ColdFusion, including the default printer.
Printer configuration is operating system-dependent. Configure printers outside of ColdFusion.
Log on to the ColdFusion Administrator.
Expand the Debugging and Logging topic.
Click the Log Files link. The print.log file appears in the list of log files.
If the PDF file is encrypted, the permissions
for the file must be set to AllowPrinting, or specify
the owner password to print the file. Use the protect action
of the cfpdf tag to set permissions and passwords
on PDF files. For more information, see Permissions for PDF documents
in cfpdf.
If a Security Manager is installed, the following permission is required in the coldfusion.policy file to initiate a print job request:
grant { permission java.lang.RuntimePermission "queuePrintJob"; };
In
Windows systems, the account running the ColdFusion server must
have PRINTER_ACCESS_USE access rights for each
printer it uses. Even if the printer is configured locally on the
system, the printer is not available if the account in which ColdFusion
is running does not have the proper permissions.
The
following table lists the optional attributeStruct key-value
pairs that you use to specify print requests:
Element |
Description |
|---|---|
|
Adjusts the document's orientation to match the orientation specified in the printer attributes and centers the page in the imaging area:
|
|
Specifies whether the sheets of each copy
of each printed document in a job are in sequence when multiple copies
of the document are specified by the
|
|
Specifies color or monochrome printing. Monochrome printing displays colors in shades of gray:
|
|
Number of copies of the source document to print. Valid values are integers greater than or equal to 1. |
|
Specifies which job start and end sheets, if any, are printed with a job:
|
|
Specifies whether to print a job based on the print requirements specified. The following values are valid values:
|
|
Finishing operation to perform after each copy of a document is printed:
|
|
Date-time attribute for the exact date and time at which the job is available for printing. Valid values are ColdFusion date and time variables. |
|
The name of a print job. |
|
Integer value that represents a print job's priority. Among those jobs that are ready to print, a printer must print all jobs with a priority value of n before printing those with a priority value of n-1 for all n. Valid values are integers from 1 (lowest priority) through 100 (highest priority). |
|
Number of pages to print on a single side of paper. The value must be a number greater than or equal to 1. |
|
Orientation of the page to be printed. The
only valid value for PDF documents is |
|
Pages in the source file to print. Duplicate
pages and pages beyond the total count of pages in the document are
ignored as long as there is at least one page between 1 and the
total number of pages in the document. You can combine individual
page numbers and page ranges, for example, 1–3,6,10–20. If you do
not specify a value for the |
|
Specifies how pages are scaled on the paper:
|
|
Prints a subset of pages in specified by the pages attribute:
|
|
Paper used for the print job. The value
can be any returned by the
|
|
Used in conjunction with the |
|
The name of a printer. An example in Windows is \\s1001prn02\NTN-2W-HP_BW02. The default name is the default printer for the account where the ColdFusion server is running. Printer names are case sensitive and you must enter the names exactly as they appear in the System Information page of the ColdFusion Administrator. For more information on viewing print logs, see Usage. |
|
Print quality for the print job:
|
|
A string that specifies the name of the end user that submitted the print job. |
|
Prints pages in reverse order. If page ranges are entered, the pages print opposite of the order in which they were entered. For example, if the Pages box shows 3-5, 7-10, selecting Reverse Pages prints pages 10-7, and then 5-3.
|
|
Sides of the paper on which the pages are printed:
|
|
Uses the PDF page size to determine the area of the paper printed rather than the paper size. This is useful for printing PDF documents that contain multiple page sizes:
|
The
following example shows how to use the attributeStruct attribute
and the cfprint tag to print five, double-sided
copies of a letter-sized PDF document, which are stapled on the
top-left corner and collated:
<cfset aset=StructNew()>
<cfset aset["sides"] = "duplex">
<cfprint type="pdf" source="myfile.pdf"
printer="\\s1001prn02\NTN-2W-HP_BW02" copies="5" paper="letter"
attributeStruct="#aset#">
The following example
shows how to specify all of the print attributes with the attributeStruct attribute:
<cfset aset=StructNew()> <cfset aset["paper"] = "letter"> <cfset aset["sides"] = "duplex"> <cfset aset["copies"] = "5"> <cfset aset["printer"] = "\\s1001prn02\NTN-2W-HP_BW02"> <cfprint type="pdf" source="myfile.pdf" attributeStruct="#aset#">
Printers
have a setting called autoRotateAndCenter, which
is set to yes by default. The following example
shows how to override the default autoRotatateAndCenter setting
and use the orientation setting instead:
<cfset aset=StructNew()>
<cfset aset["autoRotateAndCenter"] = "no">
<cfset aset["orientation"] = "portrait">
<cfprint printer="myprinter" source="_mydoc.pdf" attributeStruct="#aset#">
To
run a print job asynchronously, start a print job in a thread. Do
not wait for the print job to be sent to the printer before proceeding.
To start a print job in a thread, enclose the cfprint tag
within cfthread start and end tags, as the following
example shows:
<cfthread name="mythread" action="run">
<cfprint type="pdf" source="myfile.pdf" printer="\\s1001prn02\NTN-2W-HP_BW02">
</cfthread>
....
For more information, see cfthread.