Imprimir um documento programaticamente ou utilizar caixas de diálogo
Este artigo descreve como imprimir um documento de processamento de texto utilizando Aspose.Words API. Ele também demonstra os métodos de impressão de um documento com configurações, visualização de impressão e diálogos de progresso de Impressão.
Imprimir um documento com definições e caixas de diálogo de Pré-Visualização de Impressão
Ao trabalhar com documentos, muitas vezes é necessário imprimi-los em uma impressora selecionada. É útil utilizar uma caixa de diálogo de pré-visualização de impressão para inspecionar visualmente como o documento impresso aparecerá e escolher as opções de impressão relevantes.
O Aspose.Words não tem diálogos ou formulários integrados, mas implementa a classe AsposeWordsPrintDocument que substitui ambos os java.awt.imprimir.Impressão e java.awt.imprimir.Paginável.
O exemplo a seguir mostra como usar essas classes para imprimir um documento de Aspose.Words por meio das Caixas de diálogo Visualização de impressão e configurações:
// 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); |
Imprimir várias páginas numa folha
Aspose.Words implementa a classe MultipagePrintDocument, para ajustar a operação de impressão para implementar sua lógica personalizada, definindo a maneira como o documento aparecerá na página impressa. A classe MultipagePrintDocument permite imprimir várias páginas numa folha 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(); |
Você pode baixar um exemplo de uso da classe MultipagePrintDocument de Aspose.Words GitHub.
O resultado deste exemplo de código é mostrado abaixo:
/