ネットワーク接続された PS プリンターに直接送信したい Postscript コード/データ (?) をメモリ (Java Tomcat webapp 内) に持っています。これを印刷する簡単な方法 (つまり、ポートを開いてテキストを送信するだけ) はありますか? これを行う方法を示すコード例へのリンク?
ありがとう、デイブ
ネットワーク接続された PS プリンターに直接送信したい Postscript コード/データ (?) をメモリ (Java Tomcat webapp 内) に持っています。これを印刷する簡単な方法 (つまり、ポートを開いてテキストを送信するだけ) はありますか? これを行う方法を示すコード例へのリンク?
ありがとう、デイブ
ターゲット プリンタの LPR ポートへの TCP ソケットを開きます。
あなたのデータを送信します。プリンターがそれを理解している限り、問題ありません。
完了したら改行を忘れないでください。
(その後、ポートを閉じます。)
ポート 9100 のネットワーク プリンターに直接送信できます。
http://frank.zinepal.com/printing-directly-to-a-network-printer
問題は、ほとんどのレーザー プリンターが PostScript をサポートしていないことです。通常、そのためのプリンターアドオンを取得する必要があります。
java.awt.printをチェックしてください。これは、Javaの汎用印刷APIです。
残念ながら、それはあなたがすでに持っているポストスクリプトコンテンツを扱うことを目的としていません。これは、Java2DグラフィックスAPIを使用して紙に「描画」できるように設計されています。
余分なライブラリなしでできるかどうかはわかりません。
この例では、ファイルをネットワーク プリンターに送信する方法を示しますが、adobe ライブラリが必要です (ただし、商用の J2EE Livecycle ESに基づいているため、一般的な「無料」ソリューションではありません...)。
import com.adobe.livecycle.output.client.*;
import java.util.*;
import java.io.File;
import java.io.FileInputStream;
import com.adobe.idp.Document;
import com.adobe.idp.dsc.clientsdk.ServiceClientFactory;
public class SendToPrinter {
public static void main(String[] args) {
try{
//Set LiveCycle ES service connection properties
Properties ConnectionProps = new Properties();
ConnectionProps.setProperty("DSC_DEFAULT_EJB_ENDPOINT", "jnp://localhost:1099");
ConnectionProps.setProperty("DSC_TRANSPORT_PROTOCOL","EJB");
ConnectionProps.setProperty("DSC_SERVER_TYPE", "JBoss");
ConnectionProps.setProperty("DSC_CREDENTIAL_USERNAME", "administrator");
ConnectionProps.setProperty("DSC_CREDENTIAL_PASSWORD", "password");
//Create a ServiceClientFactory object
ServiceClientFactory myFactory = ServiceClientFactory.createInstance(ConnectionProps);
//Create an OutputClient object
OutputClient outClient = new OutputClient(myFactory);
//Reference XML data that represents form data
FileInputStream fileInputStream = new FileInputStream("C:\\Adobe\\Loan_data.xml");
Document inputXML = new Document(fileInputStream);
//Set print run-time options
PrintedOutputOptionsSpec printOptions = new PrintedOutputOptionsSpec();
printOptions.setPrinterURI("\\\\Printer1\\Printer");
printOptions.setCopies(2);
//Send a PostScript print stream to printer
OutputResult outputDocument = outClient.generatePrintedOutput(
PrintFormat.PostScript,
"Loan.xdp",
"C:\\Adobe",
"C:\\Adobe",
printOptions,
inputXML);
//Write the results of the operation to OutputLog.xml
Document resultData = outputDocument.getStatusDoc();
File myFile = new File("C:\\Adobe\\OutputLog.xml");
resultData.copyToFile(myFile);
}
catch (Exception ee)
{
ee.printStackTrace();
}
}
}