使用java POI Apache打印doc文件

bmp9r5qi  于 2023-03-21  发布在  Java
关注(0)|答案(1)|浏览(166)

我的系统中有一个.doc文件,我想使用Java将该doc文件发送到打印机。
我正在使用POI Apache库。
如何将doc文件发送到打印机?
代码:

PrintRequestAttributeSet pras = new HashPrintRequestAttributeSet();
DocPrintJob job = PrintServiceLookup.lookupDefaultPrintService().createPrintJob(); 
String fileName = "C:/Users/pnadigar/Desktop/11.doc";
DocFlavor flavor = DocFlavor.INPUT_STREAM.AUTOSENSE;
InputStream fis = new BufferedInputStream(new FileInputStream(fileName));
POIFSFileSystem fs = new POIFSFileSystem(fis); 
HWPFDocument docc = new HWPFDocument(fs);
Doc doc = new SimpleDoc(new ByteArrayInputStream(docc.getDataStream()), flavor, null);
job.print(doc, pras);
fis.close();

当我使用此代码时,我可以在打印机后台打印程序中看到文档,但它没有打印。
我该如何解决这个问题?

hc8w905p

hc8w905p1#

您可以尝试下面的代码来打印doc文件

HWPFDocument document = new HWPFDocument(Files.newInputStream(path));
        Range range = document.getRange();
        for (int sectionI = range.numSections() - 1; sectionI >= 0; sectionI--) {
            Section section = range.getSection(sectionI);
            for (int parameterI = section.numParagraphs() - 1; parameterI >= 0; parameterI--) {
                Paragraph paragraph = section.getParagraph(parameterI);
                for (int characterRunI = paragraph.numCharacterRuns() - 1; characterRunI >= 0; characterRunI--) {
                    CharacterRun characterRun = paragraph.getCharacterRun(characterRunI);
                    String text = characterRun.text();
                    System.out.println(text);
                }
            }
        }

相关问题