whyclxw
2025-05-28 e16302f9d475c7cc4dd18c5abf1a23cb5502e362
src/main/java/com/whyc/util/Word2PdfJacobUtil.java
@@ -17,7 +17,7 @@
     */
    public static boolean word2PDF(String inputFile, String pdfFile) {
        ComThread.InitMTA(true);
        long start = System.currentTimeMillis();
        //long start = System.currentTimeMillis();
        ActiveXComponent app = null;
        Dispatch doc = null;
        try {
@@ -35,36 +35,26 @@
            // word保存为pdf格式宏,值为17
            Dispatch.call(doc, "SaveAs", pdfFile, wdFormatPDF);// word保存为pdf格式宏,值为17
            long end = System.currentTimeMillis();
            //long end = System.currentTimeMillis();
            System.out.println("用时:" + (end - start) + "ms.");
            //System.out.println("用时:" + (end - start) + "ms.");
            return true;
        } catch (Exception e) {
            e.printStackTrace();
            System.out.println("========Error:文档转换失败:" + e.getMessage());
            throw e;
        } finally {
            Dispatch.call(doc, "Close", false);
            System.out.println("关闭文档");
            if (app != null)
                app.invoke("Quit", new Variant[] {});
            if (app != null) {
                app.invoke("Quit", new Variant[]{});
            }
            // 如果没有这句话,winword.exe进程将不会关闭
            ComThread.Release();
            ComThread.quitMainSTA();
        }
        return false;
    }
    public static void main(String[] arg){
        //String docPath = "C:\\Users\\29550\\Desktop\\研发人员考核方案.docx";
        String docPath = "http://118.89.139.230/zentao/data/upload/1/202205/1721233604702196";
        //String pdfPath = "C:\\Users\\29550\\Desktop\\研发人员考核方案2.pdf";
        String pdfPath = "F:\\pdf\\研发人员考核方案2.pdf";
        for (int i = 0; i < 20; i++) {
            boolean res = Word2PdfJacobUtil.word2PDF(docPath, pdfPath);
            System.out.println(res);
        }
    }
}