Java アプリケーションを使用して PDF ファイルを印刷する必要があります。私はそのようなアプローチを試みました:
FileInputStream psStream = new FileInputStream("<path to file>");
PrintService service = getPrinterByName("some printer name");
if (service != null) {
DocPrintJob printJob = service.createPrintJob();
Doc document = new SimpleDoc(psStream, DocFlavor.INPUT_STREAM.AUTOSENSE, null);
try {
printJob.print(document, null);
} catch (PrintException e) {
e.printStackTrace();
}
}
private PrintService[] getPrintersList() {
DocFlavor flavor = DocFlavor.INPUT_STREAM.AUTOSENSE;
PrintService[] services = PrintServiceLookup.lookupPrintServices(flavor, null);
return services;
}
private PrintService getPrinterByName(String name) {
PrintService[] list = getPrintersList();
if (list.length > 0) {
for (PrintService service : list) {
if (service.getName().contains(name)) {
return service;
}
}
}
return null;
}
これを偽のプリンター (プリンターとして PDFCreator を使用) でテストしたところ、すべて問題ありませんでしたが、実際のプリンターで印刷しようとしても何も起こりませんでした。
次に、PDFBoxを使用しました。ドキュメントが印刷されましたが、単語と単語の間に奇妙な点があり、あるべきではない場所にありました。
では、Java アプリケーションから PDF を印刷した経験があり、この情報を共有できる人がいるでしょうか?