Java 用の Apache POI ライブラリを使用していくつかの xlsx ファイルを作成しようとしていますが、ファイルを作成するためのすべてが正常に機能しています。
問題は、物理プリンターを使用してこれらのファイルを印刷したいときに発生します。ワークブックの各シートを 1 ページに収めたいと考えています。ドキュメントを調べたところ、次のコードが機能するはずです。
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();
しかし、そうではありません...印刷しようとすると、3枚のシートに印刷されます(PrintSetupパーツを使用しなかった場合に実際に印刷されるはずのシート)。したがって、コードはまったく何もしません。
そのコードの何が問題なのか誰か教えてもらえますか?
また、xlsx ファイルの印刷について別の質問があります。実際にファイルを開いて印刷をクリックせずに、Java プログラムから xlsx ファイルを印刷する方法があるかどうか知りたいですか? wb.printAllSheetsInWorkbook (); のように またはそのようなもの。