Impression d'un Document par programmation ou à l'aide de Boîtes de dialogue

Cet article décrit comment imprimer un document de traitement de texte à l’aide de Aspose.Words API. Il montre également les méthodes d’impression d’un document avec les paramètres, l’aperçu avant impression et les boîtes de dialogue de progression d’impression.

Impression d’un document avec des paramètres et des boîtes de dialogue d’aperçu avant impression

Lorsque vous travaillez avec des documents, il est souvent nécessaire de les imprimer sur une imprimante sélectionnée. Il est utile d’utiliser une boîte de dialogue d’aperçu avant impression pour inspecter visuellement l’apparence du document imprimé et choisir les options d’impression appropriées.

Le Aspose.Words n’a pas de boîtes de dialogue ou de formulaires intégrés mais implémente la classe AsposeWordsPrintDocument remplace les deux java.tta.imprimer.Imprimable et java.tta.imprimer.Pageable.

L’exemple suivant montre comment utiliser ces classes pour imprimer un document à partir de Aspose.Words via les boîtes de dialogue Aperçu avant impression et Paramètres:

// For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-Java
// Open the document.
Document doc = new Document(dataDir + "TestFile.doc");
PrinterJob pj = PrinterJob.getPrinterJob();
// Initialize the Print Dialog with the number of pages in the document.
PrintRequestAttributeSet attributes = new HashPrintRequestAttributeSet();
attributes.add(new PageRanges(1, doc.getPageCount()));
if (!pj.printDialog(attributes)) {
return;
}
// This object is responsible for rendering our document for use with the Java
// Print API.
AsposeWordsPrintDocument awPrintDoc = new AsposeWordsPrintDocument(doc);
// Pass our document as pageable to the printer job.
pj.setPageable(awPrintDoc);
// Create an instance of the print preview dialog and pass the print dialog and
// our document.
// Note that AsposeWordsPrintDocument implements both the Pageable and Printable
// interfaces. If the pageable constructor for PrintPreviewDialog
// is used then the formatting of each page is taken from the document. If the
// printable constructor is used then Page Setup dialog becomes enabled
// and the desired page setting for all pages can be chosen there instead.
PrintPreviewDialog previewDlg = new PrintPreviewDialog(awPrintDoc);
// Pass the desired page range attributes to the print preview dialog.
previewDlg.setPrinterAttributes(attributes);
// Proceed with printing if the user accepts the print preview.
if (previewDlg.display())
pj.print(attributes);

Impression de Plusieurs Pages sur Une Seule feuille

Aspose.Words implémente la classe MultipagePrintDocument, pour affiner l’opération d’impression afin d’implémenter votre logique personnalisée en définissant la façon dont le document apparaîtra sur la page imprimée. La classe MultipagePrintDocument offre la possibilité d’imprimer plusieurs pages sur une seule feuille de papier.

// For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-Java
// Open the document.
Document doc = new Document(dataDir + "TestFile.doc");
// Create a print job to print our document with.
PrinterJob pj = PrinterJob.getPrinterJob();
// Initialize an attribute set with the number of pages in the document.
PrintRequestAttributeSet attributes = new HashPrintRequestAttributeSet();
attributes.add(new PageRanges(1, doc.getPageCount()));
// Pass the printer settings along with the other parameters to the print document.
MultipagePrintDocument awPrintDoc = new MultipagePrintDocument(doc, 4, true, attributes);
// Pass the document to be printed using the print job.
pj.setPrintable(awPrintDoc);
pj.print();

Vous pouvez télécharger un exemple d’utilisation de la classe MultipagePrintDocument à partir de Aspose.Words GitHub.

Le résultat de cet exemple de code est illustré ci-dessous:

print_several_pages_on_one_sheet_aspose_words_java/