贴一个 Excel 文件转换为 PDF 文件的代码,不知有没有人贴过
所需的 jar:itext2.0.4,jexcelapi 2.6.4,iTextAsian.jar, iTextAsianCmaps.jar
说明:
(1)不支持图表
(2)Excel文件中的图片只是简单的加入PDF文件,不做其他处理。因为PDF的 table 使用了百分比的宽度,如果要让PDF的图片的位置与 Excel 中的保持一致,要计算坐标。
(3)支持设置页头、页脚、显示页码。
(4)第一次运行时,装载字体需要 1-3秒的时间。
示例:
java 代码
- String source = "e:\\test2.xls";
- String dest = "e:\\b.pdf";
- Excel xls = new Excel(source);
- xls.setReportHeaderStartRow(0); // Report header 开始行:第一行
- xls.setReportHeaderEndRow(1); // Report header 结束行:第二行
- xls.setShowPageNumber(true); // 设置显示页码
- xls.setPageSize(PageSize.A4.rotate()); // 设置页大小
- // 可以自定义显示页码风格
- //xls.setPageNumberStyle("第 " + FooterText.SIGN_PAGE_NUMBER + " 页,共 " + FooterText.SIGN_TOTAL_NUMBER + " 页");
- xls.setPageNumberStyle(FooterText.STYLE_PAGE_NUMBER_N_OFTOTAL_CH);
- //xls.setPageNumberStyle("- " + FooterText.SIGN_PAGE_NUMBER + " / " + FooterText.SIGN_TOTAL_NUMBER + " -");
- //xls.setPageNumberFontSize(20);
- xls.setPageHeader(0, 2, 2); // 设置页头,第 1 个 sheet,第三行
- xls.setPageHeader(1, 0, 1); // 设置页头,第 2 个 sheet,第 1-2 行
- xls.setPageNumberAlign(FooterText.ALIGN_CENTER);
- FooterText text = new FooterText("(C)Some Corporation 2007 (GZ)");
- text.setAlign(FooterText.ALIGN_LEFT);
- text.setBold(true);
- //text.setFontSize(20);
- xls.addPageFooter(text);
- text = new FooterText("July 23, 2007");
- text.setAlign(FooterText.ALIGN_RIGHT);
- text.setBold(false);
- //text.setFontSize(20);
- xls.addPageFooter(text);
- Excel2PdfTransformer transformer = new Excel2PdfTransformer(xls);
- transformer.write(dest);