Je ne sais vraiment pas comment aborder cela. Je suis nouveau dans cette bibliothèque (PDFBox) et j'ai réussi à mettre en œuvre du code (en utilisant Java), qui imprime tout fichier PDF sélectionné.PDFBox: Comment imprimer une série de pages à partir d'un PDF
Maintenant, je dois permettre aux utilisateurs de spécifier une plage de pages à imprimer, si nécessaire. Voici la partie de mon code qui gère l'impression ...
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);
}
Que dois-je faire?
Voici comment j'ai créé "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);
}
D'où vient "doc"? –
'public Pageable doc;' et 'doc = PDDocument.load (selPdf);' ne fonctionneraient pas. En attendant, j'ai trouvé quelque chose qui pourrait marcher, la classe 'PageRanges'. C'est un attribut de travail d'impression, donc utilisez 'PrintRequestAttributeSet attr = new HashPrintRequestAttributeSet(); attr.add (nouveau PageRanges (1, 1)); job.print (attr); ' –
@TilmanHausherr, je vais essayer ça maintenant. –