The following C# code example sends a PostScript print
stream to a network printer named \\Printer1\Printer. Two
copies are sent to the printer. (See Sending Print Streams to Printers .)
???/**
* Ensure that you create a .NET project that uses
* MS Visual Studio 2008 and version 3.5 of the .NET
* framework. This is required to invoke a
* LiveCycle service using MTOM.
*
* For information, see "Invoking LiveCycle using MTOM" in Programming with LiveCycle
*/
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.ServiceModel;
using System.IO;
//A reference to the Output service
using SendToPrinter.ServiceReference1;
namespace SendToPrinter
{
class Program
{
static void Main(string[] args)
{
try
{
//Create an OutputServiceClient object
OutputServiceClient outputClient = new OutputServiceClient();
outputClient.Endpoint.Address = new System.ServiceModel.EndpointAddress("http://hiro-xp:8080/soap/services/OutputService?blob=mtom");
//Enable BASIC HTTP authentication
BasicHttpBinding b = (BasicHttpBinding)outputClient.Endpoint.Binding;
b.MessageEncoding = WSMessageEncoding.Mtom;
outputClient.ClientCredentials.UserName.UserName = "administrator";
outputClient.ClientCredentials.UserName.Password = "password";
b.Security.Transport.ClientCredentialType = HttpClientCredentialType.Basic;
b.Security.Mode = BasicHttpSecurityMode.TransportCredentialOnly;
b.MaxReceivedMessageSize = 2000000;
b.MaxBufferSize = 2000000;
b.ReaderQuotas.MaxArrayLength = 2000000;
//Create a BLOB object that stores form data
BLOB inData = new BLOB();
//Reference XML data to merge with the form design
string inputFileName = "C:\\Adobe\Loan.xml";
FileStream fs = new FileStream(inputFileName, FileMode.Open);
//Get the length of the file stream and create a byte array
int len = (int)fs.Length;
byte[] byteArray = new byte[len];
//Populate the byte array with the contents of the file stream
fs.Read(byteArray, 0, len);
//Populate the BLOB object
inData.MTOM = byteArray;
//Set print run-time options
PrintedOutputOptionsSpec printOptions = new PrintedOutputOptionsSpec();
printOptions.copies = 2;
printOptions.lookAhead = 300;
printOptions.recordLevel = 1;
//Create empty objects to pass as arguments
//to the generatePDFOutput method
//These objects are populated by the method
BLOB generatePDFOutputMetaDataDoc = new BLOB();
BLOB generatePDFOutputResultDoc = new BLOB();
OutputResult outResult = new OutputResult();
//Generate a PostScript print stream
outputClient.generatePrintedOutput(
PrintFormat.PostScript,
"Loan.xdp",
"C:\\Adobe",
"C:\\Adobe",
printOptions,
inData,
out generatePDFOutputMetaDataDoc,
out generatePDFOutputResultDoc,
out outResult);
//Get the PostScript print stream to send to the printer
BLOB psPrintStream = outResult.generatedDoc;
//Specify the print server and the printer name
String printServer = "\\\Printer1";
String printerName = "\\\Printer1\Printer";
//Send the PostScript print stream to the printer
outputClient.sendToPrinter(
psPrintStream,
PrinterProtocol.SharedPrinter,
printServer,
printerName);
}
catch (Exception ee)
{
Console.WriteLine(ee.Message);
}
}
}
}
|
|
|