首页 > 编程语言 >C#中关于Word或WPS转PDF的实现方案

C#中关于Word或WPS转PDF的实现方案

时间:2023-10-07 09:55:21浏览次数:34  
标签:KWPS Word Office C# WPS using PDF

使用微软的Word组件转PDF

在.NET中,你可以使用Microsoft.Office.Interop.Word库来进行Word到PDF的转换。这是一个示例代码,但请注意这需要在你的系统上安装Microsoft Office。

在开始前,你需要添加对Microsoft.Office.Interop.Word的引用,步骤如下:

  1. 在你的项目中右键选择"Add Reference"。
  2. 在弹出的窗口中选择"COM"选项卡。
  3. 在列表中找到并选择"Microsoft Word XX.X Object Library"(XX.X为版本号)。
复制代码
using System;
using Microsoft.Office.Interop.Word;

public class WordToPdfConverter
{
    public void ConvertWordToPdf(string wordFilePath, string pdfFilePath)
    {
        // 创建一个Word应用实例
        Application wordApp = new Application();

        // 创建一个Word文档对象,并打开Word文件
        Document wordDoc = wordApp.Documents.Open(wordFilePath);

        try
        {
            // 将Word文档保存为PDF文件
            wordDoc.SaveAs2(pdfFilePath, WdSaveFormat.wdFormatPDF);
        }
        catch (Exception ex)
        {
            Console.WriteLine("Error converting file: " + ex.Message);
        }
        finally
        {
            // 关闭Word文档
            wordDoc.Close();
            // 退出Word应用
            wordApp.Quit();
        }
    }
}
复制代码

可以这样使用这个类:

WordToPdfConverter converter = new WordToPdfConverter();
converter.ConvertWordToPdf(@"C:\path\to\input.docx", @"C:\path\to\output.pdf");

这段代码将会打开指定的Word文件,将其保存为PDF文件,然后关闭Word文档和应用。

注意:这种方法需要在运行代码的机器上安装Microsoft Word。

 

使用WPS组件转PDF

另外,可以使用WPS的COM组件来实现Word到PDF的转换,代码示例如下:

首先,需要在项目中添加对KWPS和KWPS.Application的引用。

复制代码
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using KWPSLib;

namespace WPSConvertToPDF
{
    class Program
    {
        static void Main(string[] args)
        {
            // 创建一个WPS Application对象
            KWPS.ApplicationClass wpsApp = new KWPS.ApplicationClass();

            // 打开WPS文档
            KWPS.Document wpsDoc = wpsApp.Documents.Open(@"D:\Test.docx", Type.Missing, Type.Missing);

            try
            {
                // 将WPS文档保存为PDF文件
                wpsDoc.ExportAsFixedFormat(@"D:\Test.pdf", WdExportFormat.wdExportFormatPDF);
                Console.WriteLine("转换成功!");
            }
            catch (Exception ex)
            {
                Console.WriteLine("Error converting file: " + ex.Message);
            }
            finally
            {
                // 关闭WPS文档
                wpsDoc.Close(Type.Missing, Type.Missing, Type.Missing);
                // 退出WPS应用
                wpsApp.Quit(Type.Missing, Type.Missing, Type.Missing);
            }
        }
    }
}
复制代码

注意:这种方法同样需要在运行代码的机器上安装WPS Office,并且需要在项目中添加对KWPS和KWPS.Application的引用。

要添加KWPS和KWPS.Application的引用,需要在项目中做以下步骤:

  1. 右键单击项目名称,然后选择"Add"->"Reference"。

  2. 在弹出的对话框中,选择"COM"选项卡。

  3. 在列表中找到并选择"Kingsoft Office"或者"WPS Office"(取决于你的系统安装了哪个版本)。

  4. 确保"Kingsoft Office"或"WPS Office"的复选框被选中,然后点击"OK"。

  5. 这将会在你的项目中添加对KWPS的引用。你现在应该能够在代码中使用KWPS和KWPS.Application了。

请注意,使用此方法需要在运行代码的机器上安装WPS Office,并且需要确保你的项目已经添加了对KWPS的引用。

如果在列表中找不到"Kingsoft Office"或"WPS Office",那可能是你没有安装WPS Office,或者你的WPS Office版本不支持COM组件。在这种情况下,你可能需要更新或重新安装WPS Office,或者考虑使用其他库或方法来实现Word到PDF的转换。

 

 

【出处】:https://www.cnblogs.com/tianqing/p/17745465.html

标签:KWPS,Word,Office,C#,WPS,using,PDF
From: https://www.cnblogs.com/mq0036/p/17745600.html

相关文章

  • vscode单步调试Android c++源码
    vscode单步调试Androidc++源码  目录步骤1.运行gdbclient.py脚本2.复制生成的launch.json并新建/home/jetson/android_aosp/aosp/.vscode/launch.json3.运行gdb即可,打断点参考 步骤注意:这个过程需要在Android源码环境中运行,可以使用adb端口转发工具,来......
  • 除了ChatGPT,跨境电商必备的7个AI工具
    要想做好一件事,就必须做好准备。目前,ChatGPT的火热程度相信大家有目共睹。此类人工智能类工具可以帮助跨境电商大幅提升效率和效果。那么,除了ChatGPT之外,跨境电商常用的必备工具还有哪些呢?1. MonicaMonica是一个基于GoogleChrome浏览器的扩展插件,是一个文案生成工具。它......
  • SpringMVC略解
    SpringMVC是Spring框架的重要模块,是基于Java实现的轻量级WebMVC框架。其主要设计原理和实现如下:1.基于MVC架构,将请求分发到不同的组件处理。2.通过DispatcherServlet作为前端控制器,映射请求并处理响应。3.支持注解配置Controller、绑定参数等,减少配置。4.通过Hand......
  • 深入浅出 Java 中的神锁:ReentrantLock,还有谁不会?
    来源:jiannan.blog.csdn.net/article/details/121331360一、引言话不多说,扶我起来,我还可以继续撸。在学习ReentrantLock源码之前,先来回顾一下链表、队列数据结构的基本概念~~二、数据结构2.1链表(LinkedList)小学一、二年级的时候,学校组织户外活动,老师们一般都要求同学之间小......
  • VS Code开发React-Native及Flutter 开启无线局域网安卓真机调试问题
    VSCode开发React-Native及Flutter开启无线局域网安卓真机调试问题发布于 2020-10-2015:48:471.7K0举报笔者前段时间在做react-native开发,一直是有线连接安卓真机进行调试的。有线调试确实带来诸多麻烦,因为在调试过程中需要频繁和手机进行交互,导致有时候......
  • 从GPU的内存访问视角对比NHWC和NCHW
    NHWC和NCHW是卷积神经网络(cnn)中广泛使用的数据格式。它们决定了多维数据,如图像、点云或特征图如何存储在内存中。NHWC(样本数,高度,宽度,通道):这种格式存储数据通道在最后,是TensorFlow的默认格式。NCHW(样本数,通道,高度,宽度):通道位于高度和宽度尺寸之前,经常与PyTorch一起使用。......
  • 以视频监控系统 EasyCVR 为例带您详解数字视频监控
    安防视频监控平台EasyCVR是一个具有强大拓展性、灵活的视频能力和轻便部署的平台。它支持多种主流标准协议,包括国标GB28181、RTSP/Onvif、RTMP等,还可以支持厂家的私有协议和SDK接入,例如海康Ehome、海大宇等设备的SDK。该平台不仅拥有传统安防视频监控的功能,还具备接入AI智能分析的......
  • 怎么安装视频监控 / 监控汇聚系统 EasyCVR
    安防视频监控平台EasyCVR是一个具有强大拓展性、灵活的视频能力和轻便部署的平台。它支持多种主流标准协议,包括国标GB28181、RTSP/Onvif、RTMP等,还可以支持厂家的私有协议和SDK接入,例如海康Ehome、海大宇等设备的SDK。该平台不仅拥有传统安防视频监控的功能,还具备接入AI智能分析的......
  • 以安防视频监控平台 EasyCVR 举例视频监控系统具有哪些优势?
    安防视频监控平台EasyCVR是一个具有强大拓展性、灵活的视频能力和轻便部署的平台。它支持多种主流标准协议,包括国标GB28181、RTSP/Onvif、RTMP等,还可以支持厂家的私有协议和SDK接入,例如海康Ehome、海大宇等设备的SDK。该平台不仅拥有传统安防视频监控的功能,还具备接入AI智能分析的......
  • 梯度下降、Mini-Batch梯度下降、动量梯度下降、Adam
    梯度下降、Mini-Batch梯度下降、动量梯度下降以及Adam都是用于训练机器学习模型的优化算法。梯度下降(GradientDescent):梯度下降是一种优化算法,用于调整模型参数以最小化损失函数。想象一下你站在山上,想要找到山底的最低点。你每一步都沿着最陡峭的下坡方向走,直到到达最低点......