Drucken eines Dokuments programmgesteuert oder mithilfe von Dialogen

In diesem Artikel wird beschrieben, wie Sie ein Textverarbeitungsdokument mit Aspose.Words API drucken. Es zeigt auch die Methoden zum Drucken eines Dokuments mit Einstellungen, Druckvorschau und Druckfortschrittsdialogen.

Drucken eines Dokuments mit Einstellungen und Druckvorschaudialogen

Bei der Arbeit mit Dokumenten ist es häufig erforderlich, diese auf einem ausgewählten Drucker zu drucken. Es ist hilfreich, einen Druckvorschaudialog zu verwenden, um visuell zu überprüfen, wie das gedruckte Dokument angezeigt wird, und relevante Druckoptionen auszuwählen.

Die Aspose.Words hat keine eingebauten Dialoge oder Formulare, sondern implementiert die AsposeWordsPrintDocument Klasse überschreibt beide Java.ahhh.Druck.Druckbar und Java.ahhh.Druck.Seitenfähig.

Das folgende Beispiel zeigt, wie Sie diese Klassen verwenden, um ein Dokument aus Aspose.Words über die Druckvorschau- und Einstellungsdialoge zu drucken:

// 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);

Drucken mehrerer Seiten auf einem Blatt

Aspose.Words implementiert die Klasse MultipagePrintDocument, um den Druckvorgang so zu optimieren, dass Ihre benutzerdefinierte Logik implementiert wird, indem definiert wird, wie das Dokument auf der gedruckten Seite angezeigt wird. Die Klasse MultipagePrintDocument bietet die Möglichkeit, mehrere Seiten auf ein Blatt Papier zu drucken.

// 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();

Sie können ein Beispiel für die Verwendung der Klasse MultipagePrintDocument von herunterladen Aspose.Words GitHub.

Das Ergebnis dieses Codebeispiels ist unten dargestellt:

print_several_pages_on_one_sheet_aspose_words_java/