

- <dependency>
- <groupId>com.jacobgroupId>
- <artifactId>jacobartifactId>
- <version>1.19version>
- <scope>systemscope>
-
- <systemPath>D:\jacob-1.17-M2\jacob.jarsystemPath>
- dependency>
示例代码:
- package com.ysb.zy.util.pdf;
-
- import com.jacob.activeX.ActiveXComponent;
- import com.jacob.com.ComThread;
- import com.jacob.com.Dispatch;
- import com.jacob.com.Variant;
-
- public class Utils {
- /**
- * 将excel到pdf文件
- * @param inputFilePath
- * @param outputFilePath
- */
- public static void jacobExcelToPDFs(String inputFilePath, String outputFilePath) {
- ActiveXComponent ax = null;
- Dispatch excel = null;
-
- try {
- ComThread.InitSTA();
- ax = new ActiveXComponent("Excel.Application");
- ax.setProperty("Visible", new Variant(false));
- //禁用宏
- ax.setProperty("AutomationSecurity", new Variant(3));
-
- Dispatch excels = ax.getProperty("Workbooks").toDispatch();
-
- Object[] obj = {
- inputFilePath,
- new Variant(false),
- new Variant(false)
- };
- excel = Dispatch.invoke(excels, "Open", Dispatch.Method, obj, new int[9]).toDispatch();
-
- //获取到sheets的集合对象
- Dispatch sheets = Dispatch.get(excel, "sheets").toDispatch();
- //获取到总表数
- int count = Dispatch.get(sheets, "count").changeType(Variant.VariantInt).getInt();
- for (int i = 1; i <= count; i++) {
- //获取到sheet页
- Dispatch sheet = Dispatch.invoke(sheets, "Item", Dispatch.Get, new Object[]{1}, new int[1]).toDispatch();
- Dispatch page = Dispatch.get(sheet, "PageSetup").toDispatch();
- //设置横向打印还是纵向打印
- Dispatch.put(page, "Orientation", 2);
- //设置缩放,值为100或false
- Dispatch.put(page, "Zoom", false);
- //所有行为一页
- Dispatch.put(page, "FitToPagesTall", false);
- //所有列为一页(1或false)
- Dispatch.put(page, "FitToPagesWide", 1);
- }
- //转换格式
- Object[] obj2 = {
- //PDF格式等于0
- new Variant(0),
- outputFilePath,
- //0=标准(生成的PDF图片不会模糊),1=最小的文件
- new Variant(0)
- };
- Dispatch.invoke(excel, "ExportAsFixedFormat", Dispatch.Method, obj2, new int[1]);
-
- } catch (Exception e) {
- e.printStackTrace();
- throw e;
- } finally {
- if (excel != null) {
- Dispatch.call(excel, "Close", new Variant(false));
- }
- if (ax != null) {
- ax.invoke("Quit", new Variant[]{});
- ax = null;
- }
- ComThread.Release();
- }
- }
- public static void main(String[] args) {
- // D:\test
- jacobExcelToPDFs("D:\\test\\test.xlsx","D:\\test\\test.pdf");
- }
- }