Imprimir un Documento mediante Programación o mediante Diálogos

En este artículo se describe cómo imprimir un documento de procesamiento de texto con Aspose.Words API. También muestra los métodos para imprimir un documento con los cuadros de diálogo Configuración, Vista previa de impresión y progreso de impresión.

Imprimir un documento con los diálogos de Configuración y Vista Previa de Impresión

Cuando se trabaja con documentos, a menudo es necesario imprimirlos en una impresora seleccionada. Es útil utilizar un cuadro de diálogo de vista previa de impresión para inspeccionar visualmente cómo aparecerá el documento impreso y elegir las opciones de impresión relevantes.

El Aspose.Words no tiene diálogos ni formularios integrados, pero implementa la clase AsposeWordsPrintDocument anula ambos java.awt.imprimir.Imprimible y java.awt.imprimir.Pagable.

El siguiente ejemplo muestra cómo usar estas clases para imprimir un documento desde Aspose.Words a través de los cuadros de diálogo Vista previa de impresión y Configuración:

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

Impresión de Varias Páginas en Una Hoja

Aspose.Words implementa la clase MultipagePrintDocument, para ajustar la operación de impresión para implementar su lógica personalizada definiendo la forma en que aparecerá el documento en la página impresa. La clase MultipagePrintDocument proporciona la capacidad de imprimir varias páginas en una hoja de papel.

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

Puede descargar un ejemplo del uso de la clase MultipagePrintDocument en Aspose.Words GitHub.

El resultado de este ejemplo de código se muestra a continuación:

print_several_pages_on_one_sheet_aspose_words_java/