jacob Excel转PDF问题,列显示不全

利用jacob将Excel转换为PDF时,Excel中的列在PDF中显示不全如下图,加班费合计右面应该还有列,但是没有显示。另外,各列的数据数据显示不全,如身份证号图片说明

下面是我的代码

    public boolean excelTopdf(String inputFile, String pdfFile){

         ComThread.InitSTA();
         ActiveXComponent app = new ActiveXComponent("Excel.Application");
         app.setProperty("Visible", new Variant(false));
         Object excels = app.getProperty("Workbooks").toDispatch();
         Object excel = Dispatch.invoke(
                 (Dispatch) excels,
                 "Open",
                 Dispatch.Method,
                 new Object[] { inputFile, new Variant(false),
                         new Variant(true) }, new int[9]).toDispatch();

         Dispatch currentSheet = Dispatch.get((Dispatch) excel,
                 "ActiveSheet").toDispatch();
         Dispatch pageSetup = Dispatch.get(currentSheet, "PageSetup")
                 .toDispatch();
         Dispatch.put(pageSetup, "Orientation", new Variant(2));

         Dispatch.call(currentSheet, "SaveAs", pdfFile,
                     new Variant(57));
             if (app != null) {
                 app.invoke("Quit", new Variant[] {});
                 app = null;
             }
             ComThread.Release();

        return true;

    }

加上如下代码:
Dispatch.put(pageSetup, "Zoom", false); // 值为100或false
Dispatch.put(pageSetup, "FitToPagesWide", 1); // 所有列为一页(1或false)

楼主可以试下Spire.XLS for Java控件来实现Excel转PDF,转换效果不错。如果excel含有多个sheet的话,它既支持转换整个文档为PDF,也能转换指定某个sheet为PDF。参考代码如下:

将整个工作簿转为PDF


```java
import com.spire.xls.*;

public class ExcelToPDF {
    public static void main(String[] args) {
        //加载Excel文档
        Workbook wb = new Workbook();
        wb.loadFromFile("test.xlsx");

        //调用方法保存为PDF格式
        wb.saveToFile("ToPDF.pdf",FileFormat.PDF);
    }
}

将指定工作表转为PDF


```java
import com.spire.xls.*;

public class ExcelToPDF {
    public static void main(String[] args) {
        //加载Excel文档
        Workbook wb = new Workbook();
        wb.loadFromFile("test.xlsx");

        //获取第2个工作表
        Worksheet sheet = wb.getWorksheets().get(1);

        //调用方法保存为PDF格式
        sheet.saveToPdf("ToPDF2.pdf");
    }
}

spire.xls for java产品包下载链接:https://www.e-iceblue.cn/Downloads/Spire-XLS-JAVA.html