我真誠地不知道如何處理此問題。我是這個圖書館的新手(PDFBox),我設法實現了代碼(使用Java),可以打印任何選定的PDF。PDFBox:如何從PDF中打印一系列頁面
現在我需要允許用戶指定一系列要打印的頁面(如果需要)。 這裏是我的代碼,處理打印的部分...
try
{
// TODO add your handling code here:
PrintService myPrintService = findPrintService(printerCmb.getSelectedItem().toString());
PrinterJob job = PrinterJob.getPrinterJob();
job.setPageable(doc);
job.setPrintService(myPrintService);
job.print();
}
catch (PrinterException ex)
{
Logger.getLogger(PrintDialog.class.getName()).log(Level.SEVERE, null, ex);
}
我該怎麼辦下一步是什麼?
這就是我創建「doc」的方式。
public Pageable doc; JFileChooser getPDF = new JFileChooser();
FileFilter filter = new FileNameExtensionFilter("PDF File", "pdf");
getPDF.setFileFilter(filter);
getPDF.setDialogTitle("Select a PDF file");
getPDF.showOpenDialog(getPDF);
try
{
Connection conn = null;
conn = DriverManager.getConnection(urlDist);
//SQLiteConnection new2 = new SQLiteConnection(urlDist, filename);
File selPdf = getPDF.getSelectedFile();
doc = PDDocument.load(selPdf);
if (doc != null)
{
count = doc.getNumberOfPages();
noPagestxt.setText(String.valueOf(count));
filename = selPdf.getName();
fileNametxt.setText(filename);
pagesPrint.setEnabled(true);
}
// cleaning memory
// cleaning memory
}
catch (Exception ex)
{
Logger.getLogger(BioProject.class.getName()).log(Level.SEVERE, null, ex);
}
「doc」從哪裏來? –
'public Pageable doc;'''doc = PDDocument.load(selPdf);'不起作用。無論如何,在此期間,我發現了一些可能有用的東西,「PageRanges」類。這是一個打印作業屬性,所以使用'PrintRequestAttributeSet attr = new HashPrintRequestAttributeSet(); attr.add(new PageRanges(1,1)); job.print(attr);' –
@TilmanHausherr,我會嘗試一下。 –