我正在尝试使用适用于 Java 的 Apache POI 库创建一些 xlsx 文件,并且创建文件的一切工作正常。
当我想使用物理打印机打印这些文件时,问题就来了。我想让我的工作簿中的每张纸都适合单页。我查看了文档,下面的代码应该可以工作:
XSSFWorkbook wb = new XSSFWorkbook();
XSSFSheet sheet = wb.createSheet("format sheet");
PrintSetup ps = sheet.getPrintSetup();
sheet.setAutobreaks(true);
ps.setFitHeight((short)1);
ps.setFitWidth((short)1);
for(int i = 0; i < 100; ++i){
sheet.createRow(i);
sheet.getRow(i).createCell(0).setCellValue("Test " + i);
}
FileOutputStream output = new FileOutputStream("Test.xlsx");
wb.write(output);
output.close();
但它没有......当我尝试打印它时,它会打印到三张纸上(如果我不使用 PrintSetup 部分,它实际上应该打印的内容)。所以代码根本不做任何事情。
谁能告诉我该代码有什么问题?
另外,我还有一个关于打印 xlsx 文件的问题:我想知道是否有一种方法可以从我的 Java 程序中打印 xlsx 文件,而无需实际打开文件并单击打印?像wb.printAllSheetsInWorkbook(); 或类似的东西。