关于Word转PDF的几种实现方案

关于,word,pdf,几种,实现,方案 · 浏览次数 : 162

小编点评

**.NET 中的 Word 到 PDF 转化** 可以使用 Microsoft.Office.Interop.Word 库在 .NET 中进行 Word 到 PDF 的转换。该库允许您将 Word 文档转换为 PDF 文件。 **步骤:** 1. **添加 Microsoft.Office.Interop.Word 引用**到您的项目中。 2. **打开 Word 文档**并将其保存为 PDF 文件。 3. **关闭 Word 文档和应用程序**。 **示例代码:** ```csharp 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(); wordApp.Quit(); } } } ``` **注意:** * 该代码需要在运行代码的机器上安装 Microsoft Word。 * 您可能需要根据您的系统安装的版本选择正确的库名称。 * 该方法仅支持 Windows 系统。

正文

在.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的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的转换。

 

与关于Word转PDF的几种实现方案相似的内容:

关于Word转PDF的几种实现方案

在.NET中,你可以使用Microsoft.Office.Interop.Word库来进行Word到PDF的转换。这是一个示例代码,但请注意这需要在你的系统上安装Microsoft Office。 在开始前,你需要添加对Microsoft.Office.Interop.Word的引用,步骤如下: 在

[转帖]word 字号 与 px pt 对应关系

零一 ​关注他 3 人赞同了该文章 字号word pointpixel (96dpi)毫米 初号 42pt 56px 14.82mm 小初 36pt 48px 12.70mm 一号 26pt 34.7px 9.17mm 小一 24pt 32px 8.47mm 二号 22pt 29.3px 7.76m

关于面向对象的方法并行执行的问题

LabVIEW的从同一个类实例化的多个对象如何执行各自的方法呢? 这几天跟同事讨论到LabVIEW的面向对象编程中,如果我设计的一个类有一个方法比较耗时,那么当我实例化多个对象时,那么这个耗时的方法是怎么执行的呢?是各自并行执行还是,必须等某一个对象的方法调用完,接下来调用第二个对象的该方法呢? 接

关于ComfyUI的一些Tips

关于ComfyUI的一些Tips 前言: 最近发的ComfyUI相关文章节奏不知道会不会很快,在创作的时候没有考虑很多,想着把自己的知识分享出去。后台也看到很多私信,有各种各样的问题,这是我欠缺考虑了,今天这篇文章呢,根据私信的问题我大致整理了一下,给大家一些小tips。 目录 一、将 ComfyU

关于领域驱动设计,大家都理解错了

翻遍整个互联网,我发现,关于领域驱动设计,大家都**理解错了**。 今天,我们尝试通过一篇文章的篇幅,给大家展示一个完全不同的视角,把“领域驱动设计”这六个字解释清楚。 ## 领域驱动设计学习资料现状 领域驱动设计的概念提出已经有20年的时间了,整个互联网充斥着大量书籍、文章和视频教程,这里我列举几

关于docker-compose up -d 出现超时情况处理

由于要搭建一个ctf平台,用docker一键搭建是出现超时情况 用了很多办法,换源,等之类的一样没办法,似乎它就是只能用官方那个一样很怪。 只能用一种笨办法来处理了,一个个pull。 打个比如: 打开相对应docker-compose.yml文件 可以看到image就是需要去下载的。那么此时你就可以

关于 KL 散度和变分推断的 ELBO

ELBO 用于最小化 q(z|s) 和 p(z|s) 的 KL 散度,变成最大化 p(x|z) 的 log likelihood + 最小化 q(z|s) 和先验 p(z) 的 KL 散度。

关于面试被面试官暴怼:“几年研究生白读” 的前因后果

中午一个网友来信说自己和面试官干起来了,看完他的描述真是苦笑不得,这年头是怎么了,最近互联网CS消息满天飞,怎么连面试官都SB起来了呢? 大概是这样的:这位网友面试时被问及了Serializable接口的底层实现原理,因为这是一个标识性的空接口,大部分同学在学习时都秉持着会用就行(说实话,Build

关于vue中image控件,onload事件里,event.target 为null的奇怪问题探讨

废话不多说(主要文笔比较差),直接上代码 一个简单的demo,如下 vue代码 imgLoaded(e) { deb

漏洞复现之CVE-2012-1823(PHP-CGI远程代码执行)

关于CGI知识点 CGI模式下的参数: -c 指定php.ini文件的位置 -n 不要加载php.ini文件 -d 指定配置项 -b 启动fastcgi进程 -s 显示文件源码 -T 执行指定次该文件 -h和-? 显示帮助 题目如下图,没有什么发现 目录扫描一下 dirsearch -u http: