Печать документа программным способом или с помощью диалоговых окон
В этой статье описывается, как напечатать документ в текстовом редакторе с помощью Aspose.Words API. Также демонстрируются методы печати документа с диалоговыми окнами настроек, предварительного просмотра и выполнения печати.
Печать документа с диалоговыми окнами настроек и предварительного просмотра
При работе с документами часто требуется распечатать их на выбранном принтере. Полезно использовать диалог предварительного просмотра, чтобы визуально оценить, как будет выглядеть напечатанный документ, и выбрать соответствующие параметры печати.
Класс Aspose.Words не имеет встроенных диалоговых окон или форм, но реализует класс AsposeWordsPrintDocument, который переопределяет как java.awt.print.Доступный для печати, так и java.awt.print.Доступный для просмотра страницами.
В следующем примере показано, как использовать эти классы для печати документа из Aspose.Words с помощью диалоговых окон предварительного просмотра и настроек:
// 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); |
Печать нескольких страниц на одном листе
Aspose.Words реализует класс MultipagePrintDocument, позволяющий точно настроить операцию печати для реализации пользовательской логики путем определения способа отображения документа на печатаемой странице. Класс MultipagePrintDocument предоставляет возможность печатать несколько страниц на одном листе бумаги.
// 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(); |
Вы можете скачать пример использования класса MultipagePrintDocument с сайта Aspose.Words GitHub.
Результат выполнения этого примера кода показан ниже:
/