aspose excel2pdf
使用ASpose Cells for java,将excel 转成pdf,会出现一个sheet分页成多页,而且规律奇怪
可以设置
PdfSaveOptions pdfSaveOptions = new PdfSaveOptions();
pdfSaveOptions.setOnePagePerSheet(true);
import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.InputStream; import java.io.OutputStream; import java.text.SimpleDateFormat; import java.util.Date; import com.aspose.cells.PdfSaveOptions; import com.aspose.cells.Workbook; import com.aspose.cells.Worksheet; import com.bi.wms.kory.status.ConvertStatus; import com.bi.wms.kory.util.AsposeLicenseUtil; public class AsposeTest { SimpleDateFormat sdf=new SimpleDateFormat("MMddHHmm"); public static void main(String[] args) throws Exception { AsposeTest asposeTest=new AsposeTest(); asposeTest.excel2pdf(); } public ConvertStatus excel2pdf() throws Exception { String time=sdf.format(new Date()); String excelpath="C://111.xls"; String pdfpath="C://Users//"+time+".pdf"; if (AsposeLicenseUtil.setCellsLicense()) { long start = System.currentTimeMillis(); InputStream inputStream = new FileInputStream(new File(excelpath)); OutputStream outputStream = new FileOutputStream(new File(pdfpath)); Workbook workbook = new Workbook(inputStream); //workbook.Worksheets[0].VerticalPageBreaks Worksheet ws = workbook.getWorksheets().get(0); //ws.setPageBreakPreview(false); System.out.println("getHorizontalPageBreaks:"+ws.getHorizontalPageBreaks().getCount()); System.out.println("vertical:"+ws.getVerticalPageBreaks().getCount()); PdfSaveOptions pdfSaveOptions = new PdfSaveOptions(); pdfSaveOptions.setOnePagePerSheet(true); ws.getHorizontalPageBreaks().clear(); ws.getVerticalPageBreaks().clear(); //workbook.save(outputStream, SaveFormat.PDF); workbook.save(outputStream, pdfSaveOptions); outputStream.flush(); outputStream.close(); // TODO 当excel宽度太大时,在PDF中会拆断并分页。此处如何等比缩放。 // 将不同的sheet单独保存为pdf //Get the count of the worksheets in the workbook int sheetCount = workbook.getWorksheets().getCount(); //Make all sheets invisible except first worksheet /*for (int i = 1; i < workbook.getWorksheets().getCount(); i++) { workbook.getWorksheets().get(i).setVisible(false); }*/ // workbook.save(outputStream, SaveFormat.PDF); //Take Pdfs of each sheet /*for (int j = 0; j < workbook.getWorksheets().getCount(); j++) { Worksheet ws = workbook.getWorksheets().get(j); workbook.save("D:/Kory" + ws.getName() + ".pdf"); if (j < workbook.getWorksheets().getCount() - 1) { workbook.getWorksheets().get(j + 1).setVisible(true); workbook.getWorksheets().get(j).setVisible(false); } }*/ long end = System.currentTimeMillis(); System.out.println("excel to pdf success"); return ConvertStatus.SUCCESS; } else { System.out.println("excel to pdf error"); return ConvertStatus.LICENSE_ERROR; } } }
参考Aspose官网文档:convert excel to pdf
*
*
备注:公众号清汤袭人能找到我,那是随笔的地方
备注:公众号清汤袭人能找到我,那是随笔的地方
【推荐】还在用 ECharts 开发大屏?试试这款永久免费的开源 BI 工具!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步