调用Word组件转pdf遇到的烦恼与解决方案

  在当前各种B/S结构信息化系统不可避免遇到需后台调用Office 办公软件的问题,常见的是调用word,excel,便于生成word文件或excel文件,或转pdf。

    此处便记录我在开发工程中遇到Word转pdf遇到的问题。

    由于我们系统需要把word文件转成pdf文件,所以进行了以下操作

1.在服务器端安装office办公软件,我安装的office 2007;由于office 2007并没有直接提供转换pdf功能,还需安装office 2007另存pdf插件

2.开发转换电子版工具;我们使用VS2010开发工具C#语言开发,在调用word组件(注意选择的版本为12.0)需进行如下图选择


3.使用 object SavePDFFormat = Microsoft.Office.Interop.Word.WdSaveFormat.wdFormatPDF;

4.另存即可

5.其中遇到

无法将类型为“Microsoft.Office.Interop.Word.ApplicationClass”的 COM 对象强制转换为接口类型“Microsoft.Office.Interop.Word._Application”。此操作失败的原因是对 IID 为“{00020970-0000-0000-C000-000000000046}”的接口的 COM 组件调用 QueryInterface 因以下错误而失败: 加载类型库/DLL 时出错。 (异常来自 HRESULT:0x80029C4A (TYPE_E_CANTLOADLIBRARY))。

6.错误原因:

         发现原来服务器安装过WPS2013,没有正常被卸载,重新安装WPS2013后,不再报错

         如果不想要WPS使用WPS自带的卸载工具直接卸载即可。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
你可以使用 Java 的 Runtime 类来执行 unoconv 命令,将 Word 文件换为 PDF 。以下是一个简单的示例代码: ```java import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; public class WordToPdfConverter { public static void main(String[] args) { String inputFilePath = "input.docx"; // Word 文件路径 String outputFilePath = "output.pdf"; // PDF 文件路径 String command = "unoconv -f pdf " + inputFilePath; // unoconv 命令 try { Process process = Runtime.getRuntime().exec(command); // 执行 unoconv 命令 BufferedReader reader = new BufferedReader(new InputStreamReader(process.getInputStream())); String line; while ((line = reader.readLine()) != null) { System.out.println(line); // 输出 unoconv 命令的输出信息 } process.waitFor(); // 等待 unoconv 命令执行完成 // 将生成PDF 文件重命名 String tempFilePath = inputFilePath.replaceFirst("[.][^.]+$", ".pdf"); if (tempFilePath.equals(outputFilePath)) { System.out.println("Convertion completed!"); } else { if (new File(tempFilePath).renameTo(new File(outputFilePath))) { System.out.println("Convertion completed!"); } else { System.out.println("Failed to rename the file!"); } } } catch (IOException | InterruptedException e) { e.printStackTrace(); } } } ``` 在执行 unoconv 命令时,需要确保系统已经安装了 LibreOffice 或 OpenOffice,这两个软件都包含了 unoconv 工具。在执行之前,你需要将 unoconv 命令添加到系统 PATH 环境变量中,或者将 unoconv 安装到你的项目目录下并在命令中指定完整路径。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值