You
can use the Output service to send print streams such as PostScript,
Printer Control Language (PCL), or the following label formats to
network printers:
-
Zebra - ZPL
-
Intermec - IPL
-
Datamax - DPL
-
TecToshiba - TPCL
Using the Output service, you can merge XML data with a form
design and output the form as a print stream. For example, you can
create a PostScript print stream and send it to a network printer.
The following illustration shows the Output service sending print
streams to network printers.
Note:
To demonstrate how to send a print stream to
a network printer, this section sends a PostScript print stream
to a network printer by using the SharedPrinter printer protocol.
Summary of steps
To send a
print stream to a network printer, perform the following steps:
-
Include project files.
-
Create an Output Client object.
-
Reference an XML data source.
-
Set print run-time options
-
Retrieve a document to print.
-
Send the document to a network printer.
Include project files
Include necessary files in your development
project. If you are creating a client application by using Java,
include the necessary JAR files. If you are using web services,
make sure that you include the proxy files.
The following
JAR files must be added to your project’s class path:
-
adobe-livecycle-client.jar
-
adobe-usermanager-client.jar
-
adobe-output-client.jar
-
adobe-utilities.jar (Required if LiveCycle is deployed
on JBoss)
-
jbossall-client.jar (Required if LiveCycle is deployed
on JBoss)
if LiveCycle is deployed on a
supported J2EE application server that is not JBoss, you will need
to replace the adobe-utilities.jar and jbossall-client.jar files
with JAR files that are specific to the J2EE application server
on which LiveCycle is deployed.
Create an Output Client object
Before you can programmatically
perform an Output service operation, create an Output service client
object. If you are using the Java API, create an
OutputClient
object.
If you are using the Output web service API, create an
OutputServiceClient
object.
Reference an XML data source
To print a document that contains data,
you must reference an XML data source that contains XML elements
for every form field that you want to populate with data. The XML
element name must match the field name. An XML element is ignored
if it does not correspond to a form field or if the XML element
name does not match the field name. It is not necessary to match
the order in which the XML elements are displayed if all XML elements
are specified.
Set print run-time options
You can set the run-time options
when sending a print stream to a printer, including the following
options:
-
Copies
: Specifies the number of copies
to send to the printer. The default value is 1.
-
Staple
: An XCI option is set when a stapler is used.
This option can be specified in the configuration model by the staple
element and is used for PS and PCL printers only.
-
OutputJog
: An XCI option is set when output pages
should be jogged (physically shifted in the output tray). This option
is for PS and PCL printers only.
-
OutputBin
: XCI value that is used to enable the print
driver to select the appropriate output bin.
Note:
For information about all run-time options that
you can set, see the
PrintedOutputOptionsSpec
class reference.
Retrieve a document to print
Retrieve a print stream to send to
a printer. For example, you can retrieve a PostScript file and send
it to a printer.
You can choose to send a PDF file if your
printer supports PDF. However, an issue with sending a PDF document
to a printer is that each printer manufacturer has a different implementation
of the PDF interpreter. That is, some print manufacturers use Adobe
PDF interpretation, but it depends on the printer. Other printers
have their own PDF interpreter. As a result, printing results may vary.
Another
limitation of sending a PDF document to a printer is that it just prints;
it cannot access duplex, paper tray selection, and stapling, except
through settings on the printer.
To retrieve a document to
print, you use the
generatePrintedOutput
method.
The following table specifies content types that are set for a given
print stream when using the
generatePrintedOutput
method.
Print format
|
Description
|
DPL
|
Creates a dpl203.xdc by default or custom
xdc output stream.
|
DPL300DPI
|
Creates a DPL 300 DPI output stream.
|
DPL406DPI
|
Creates a DPL 400 DPI output stream.
|
DPL600DPI
|
Creates a DPL 600 DPI output stream.
|
GenericColorPCL
|
Creates a Generic Color PCL (5c) output
stream.
|
GenericPSLevel3
|
Creates a Generic PostScript Level 3 output
stream.
|
IPL
|
Creates a Custom IPL output stream.
|
IPL300DPI
|
Creates a IPL 300 DPI output stream.
|
IPL400DPI
|
Creates a IPL 400 DPI output stream.
|
PCL
|
Creates a Generic Monochrome PCL (5e) output
stream.
|
PostScript
|
Creates a Generic PostScript Level 2 output
stream.
|
TPCL
|
Creates a Custom TPCL output stream.
|
TPCL305DPI
|
Creates a TPCL 305 DPI output stream.
|
TPCL600DPI
|
Creates a TPCL 600 DPI output stream.
|
ZPL
|
Creates a ZPL 203 DPI output stream.
|
ZPL300DPI
|
Creates a ZPL 300 DPI output stream.
|
Note:
You can also send a print
stream to a printer by using the
generatePrintedOutput2
method.
However the quick starts associated with the Sending Print Streams
to Printers section use the
generatePrintedOutput
method.
Send the print stream to a network printer
After you retrieve
a document to print, you can invoke the Output service, which causes
it to send a print stream to a network printer. For the Output service to
successfully locate the printer, you have to specify both the print
server and the printer name. In addition, you must also specify
the printing protocol.
Note:
If PDFG is installed
on the forms server and the server runs on Windows Server 2008,
you cannot use the SharedPrinter property. In this situation, use
a different printer protocol.
Note:
If you are
using a network printer and the access mechanism is SharedPrinter,
you need to specify the complete network path of printer.Send a
print stream to a network printer using the Java API
Send
a print stream to a network printer by using the Output API (Java):
-
Include project files.
Include client JAR files, such
as the adobe-output-client.jar, in your Java project’s class path.
-
Create an Output Client object
-
Reference an XML data source
-
Create a
java.io.FileInputStream
object
that represents the XML data source that is used to populate the
document by using its constructor and passing a string value that
specifies the location of the XML file.
-
Create a
com.adobe.idp.Document
object by
using its constructor and passing the
java.io.FileInputStream
object.
-
Set print run-time options
Create a
PrintedOutputOptionsSpec
object that
represents print run-time options. For example, you can specify
the number of copies to print by invoking the
PrintedOutputOptionsSpec
object’s
setCopies
method.
Note:
You cannot set the pagination value by using the
PrintedOutputOptionsSpec
object’s
setPagination
method
if you are generating a ZPL print stream. Likewise, you cannot set
the following options for a ZPL print stream: OutputJog, PageOffset,
and Staple. The
setPagination
method is not valid for PostScript generation. It is valid only for PCL generation.
-
Retrieve a document to print
-
Retrieve a document
to print by invoking the
OutputClient
object’s
generatePrintedOutput
method
and passing the following values:
-
A
PrintFormat
enumeration value
that specifies the print stream. For example, to create a PostScript print
stream, pass
PrintFormat.PostScript
.
-
A string value that specifies the name of the form design.
-
A string value that specifies the location of related collateral files,
such as image files.
-
A string value that specifies the location of the XDC file
to use.
-
The
PrintedOutputOptionsSpec
object that
contains run-time options that are required to print to a file.
-
The
com.adobe.idp.Document
object that represents
the XML data source that contains form data to merge with the form
design.
This method returns an
OutputResult
object that
contains the results of the operation.
-
Create a
com.adobe.idp.Document
object to
send to the printer by invoking the
OutputResult
object
‘s
getGeneratedDoc
method. This method returns a
com.adobe.idp.Document
object.
-
Send the print stream to a network printer
Send the
print stream to a network printer by invoking the
OutputClient
object’s
sendToPrinter
method
and passing the following values:
-
A
com.adobe.idp.Document
object
that represents the print stream to send to the printer.
-
A
PrinterProtocol
enumeration value that
specifies the printer protocol to use. For example, to specify the SharedPrinter
protocol, pass
PrinterProtocol.SharedPrinter
.
-
A string value that specifies the name of the print server.
For example, assuming the name of the print server is PrintSever1, pass
\\\PrintSever1
.
-
A string value that specifies the name of the printer. For
example, assuming the name of the printer is Printer1, pass
\\\PrintSever1\Printer1
.
Note:
The
sendToPrinter
method was
added to the LiveCycle API in version 8.2.1.
Send a print stream to a printer using the web service API
Send a print stream to a network printer by using the Output
API (web service):
-
Include project files.
Create a Microsoft .NET
project that uses MTOM. Ensure that you use the following WSDL definition:
http://localhost:8080/soap/services/OutputService?WSDL&lc_version=9.0.1
.
Note:
Replace
localhost
with the IP address of the server hosting LiveCycle.
-
Create an Output Client object.
-
Create an
OutputServiceClient
object
by using its default constructor.
-
Create an
OutputServiceClient.Endpoint.Address
object
by using the
System.ServiceModel.EndpointAddress
constructor.
Pass a string value that specifies the WSDL to the LiveCycle service (for example,
http://localhost:8080/soap/services/OutputService?blob=mtom
.)
You do not need to use the
lc_version
attribute.
This attribute is used when you create a service reference. However,
specify
?blob=mtom
to use MTOM.
-
Create a
System.ServiceModel.BasicHttpBinding
object
by getting the value of the
OutputServiceClient.Endpoint.Binding
field.
Cast the return value to
BasicHttpBinding
.
-
Set the
System.ServiceModel.BasicHttpBinding
object’s
MessageEncoding
field
to
WSMessageEncoding.Mtom
. This value ensures that
MTOM is used.
-
Enable basic HTTP authentication by performing the following tasks:
-
Assign the AEM forms user name to the field
OutputServiceClient.ClientCredentials.UserName.UserName
.
-
Assign the corresponding password value to the field
OutputServiceClient.ClientCredentials.UserName.Password
.
-
Assign the constant value
HttpClientCredentialType.Basic
to
the field
BasicHttpBindingSecurity.Transport.ClientCredentialType
.
-
Assign the constant value
BasicHttpSecurityMode.TransportCredentialOnly
to
the field
BasicHttpBindingSecurity.Security.Mode
.
-
Reference an XML data source.
-
Create a
BLOB
object
by using its constructor. The
BLOB
object is used
to store form data.
-
Create a
System.IO.FileStream
object by
invoking its constructor. Pass a string value that specifies the location
of the XML file that contains form data.
-
Create a byte array that stores the content of the
System.IO.FileStream
object.
Determine the byte array length by getting the
System.IO.FileStream
object’s
Length
property.
-
Populate the byte array with stream data by invoking the
System.IO.FileStream
object’s
Read
method
and passing the byte array, the starting position, and the stream
length to read.
-
Populate the
BLOB
object by assigning its
MTOM
field
with the contents of the byte array.
-
Set print run-time options.
Create a
PrintedOutputOptionsSpec
object by
using its constructor. For example, you can specify the number of
copies to print by assigning an integer value that represents the
number of copies to the
PrintedOutputOptionsSpec
object’s
copies
data
member.
Note:
You cannot set the pagination value
by using the
PrintedOutputOptionsSpec
object’s
pagination
data
member if you are generating a ZPL print stream. Likewise, you cannot
set the following options for a ZPL print stream: OutputJog, PageOffset
and Staple. The
pagination
data member is not valid for PostScript generation. It is valid only for PCL generation.
-
Retrieve a document to print.
-
Retrieve a document
to print by invoking the
OutputServiceService
object’s
generatePrintedOutput
method
and passing the following values:
-
A
PrintFormat
enumeration value
that specifies the print stream. For example, to create a PostScript print
stream, pass
PrintFormat.PostScript
.
-
A string value that specifies the name of the form design.
-
A string value that specifies the location of related collateral files,
such as image files.
-
A string value that specifies the location of the XDC file
to use.
-
The
PrintedOutputOptionsSpec
object that
contains print run-time options that are used when sending a print
stream to a network printer.
-
The
BLOB
object that contains the XML data
source that contains form data.
-
A
BLOB
object that is populated by the
generatePrintedOutput
method.
The
generatePrintedOutput
method populates this
object with generated metadata that describes the document. (This parameter
value is required for web service invocation only.)
-
A
BLOB
object that is populated by the
generatePrintedOutput
method.
The
generatePrintedOutput
method populates this
object with result data. (This parameter value is required for web service
invocation only.)
-
An
OutputResult
object that contains the
results of the operation. (This parameter value is required for
web service invocation only.)
-
Create a
BLOB
object to send to the printer by
getting the value of the
OutputResult
object ‘s
generatedDoc
method.
This method returns a
BLOB
object that contains
PostScript data returned by the
generatePrintedOutput
method.
-
Send the print stream to a network printer.
Send the
print stream to a network printer by invoking the
OutputClient
object’s
sendToPrinter
method
and passing the following values:
-
A
BLOB
object
that represents the print stream to send to the printer.
-
A
PrinterProtocol
enumeration value that
specifies the printer protocol to use. For example, to specify the SharedPrinter
protocol, pass
PrinterProtocol.SharedPrinter
.
-
A
bool
value that specifies whether to user the
previous parameter value. Pass the value
true
. (This
parameter value is required for web service invocation only.)
-
A string value that specifies the name of the print server.
For example, assuming that the name of the print server is PrintSever1,
pass
\\\PrintSever1
.
-
A string value that specifies the name of the printer. For
example, assuming that the name of the printer is Printer1, pass
\\\PrintSever1\Printer1
.
Note:
The
sendToPrinter
method was
added to the LiveCycle API in version 8.2.1.
|
|
|