C# 利用Aspose.Words.dll将 Word 转成PDF

下面是详细的攻略:

准备工作

  1. 在官网 Aspose.Words for .NET 下载最新版的 Aspose.Words for .NET。

  2. 创建一个 C# 控制台应用程序,导入 Aspose.Words.dll。

using Aspose.Words;

代码实现

  1. 使用 Aspose.Words 加载 Word 文件。在加载过程中,Aspose.Words会自动将Word文件转化为一个包含Word文档所有内容的基础文本结构。
Document doc = new Document("input.docx");
  1. 创建一个保存PDF文件的流对象。
MemoryStream outputStream = new MemoryStream();
  1. 使用 Aspose.Words 将 Word 文件转成 PDF。在转换过程中,Aspose.Words会自动创建 PDF 文档对象,将所有 Word 内容转化为 PDF。
doc.Save(outputStream, SaveFormat.Pdf);
  1. 将 PDF 文件保存到本地磁盘。
FileStream fileStream = new FileStream("output.pdf", FileMode.Create, FileAccess.Write);
outputStream.WriteTo(fileStream);
fileStream.Close();
outputStream.Close();

示例展示

示例1

我们有一个名为input.docx的Word文件,在C:\Docs文件夹下,我们希望将其转成PDF文件,并保存为output.pdf

将以下代码粘贴到项目中的 Program.cs 文件中:

using System;
using System.IO;
using Aspose.Words;

namespace WordToPdf
{
    class Program
    {
        static void Main(string[] args)
        {
            string inputPath = @"C:\Docs\input.docx";

            if (File.Exists(inputPath))
            {
                // 1. 加载 Word 文件
                Document doc = new Document(inputPath);

                // 2. 创建保存 PDF 的 Memory Stream
                MemoryStream outputStream = new MemoryStream();

                // 3. 将 Word 文件转换成 PDF
                doc.Save(outputStream, SaveFormat.Pdf);

                // 4. 将 PDF 文件保存到磁盘
                FileStream fileStream = new FileStream(@"C:\Docs\output.pdf", FileMode.Create, FileAccess.Write);
                outputStream.WriteTo(fileStream);
                fileStream.Close();
                outputStream.Close();

                Console.WriteLine("File converted successfully!");
            }
            else
            {
                Console.WriteLine("Input file does not exist.");
            }

            Console.ReadKey();
        }
    }
}

运行程序后会生成一个名为output.pdf的PDF文件,它实际上是输入的Word文件转换而来的。

示例2

我们有一个名为input.docx的Word文件,存储在内存中的字节数组docBytes中,我们希望将其转成PDF文件,并打印出转换时间。

将以下代码粘贴到项目中的 Program.cs 文件中:

using System;
using System.Diagnostics;
using System.IO;
using Aspose.Words;

namespace WordToPdf
{
    class Program
    {
        static void Main(string[] args)
        {
            // 1. 加载 Word 文件
            Document doc = null;
            using (MemoryStream stream = new MemoryStream(docBytes))
            {
                stream.Seek(0, SeekOrigin.Begin);
                doc = new Document(stream);
            }

            // 2. 创建保存 PDF 的 Memory Stream
            Stopwatch watch = Stopwatch.StartNew();
            MemoryStream outputStream = new MemoryStream();

            // 3. 将 Word 文件转换成 PDF
            doc.Save(outputStream, SaveFormat.Pdf);

            // 4. 将所需时间打印出来
            Console.WriteLine("Conversion finished in " + watch.Elapsed);

            watch.Stop();
            outputStream.Close();

        }
    }
}

运行程序后,它会打印出转换所需的时间。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:C# 利用Aspose.Words.dll将 Word 转成PDF - Python技术站

(0)
上一篇 2023年5月31日
下一篇 2023年5月31日

相关文章

  • BootstrapTable+KnockoutJS自定义T4模板快速生成增删改查页面

    一、BootstrapTable+KnockoutJS自定义T4模板快速生成增删改查页面攻略 背景简介 BootstrapTable是一款功能强大的jQuery表格插件,支持前端排序、分页、筛选等功能,使用方便,快捷。KnockoutJS是一个MVVM框架,可以自动更新页面中数据和DOM元素的状态。而自定义T4模板则是使用Visual Studio的代码生成…

    C# 2023年5月31日
    00
  • C#实现飞行棋源码

    下面我将详细讲解“C#实现飞行棋源码”的完整攻略。 1. 确定需求 首先需要了解飞行棋游戏的规则,确定具体需求。例如,游戏玩家人数、游戏板的大小、玩家与机器的互动方式等等。 2. 构建游戏界面 可以使用Windows Forms或WPF来构建游戏界面。主要需要设计游戏棋盘,玩家信息栏,游戏控制按钮等。 3. 实现游戏逻辑 游戏逻辑是整个游戏的灵魂。游戏逻辑主…

    C# 2023年6月7日
    00
  • C#使用StreamWriter写入文件的方法

    下面是详细讲解“C#使用StreamWriter写入文件的方法”的攻略: 1. StreamWriter概述 StreamWriter 是 C# 中的一个基于字符的文件写入类,它能够读取文本文件并将文本写入到文件中。 StreamWriter 类提供了各种重载的构造函数和写入函数来帮助我们实现文件写入操作。此外,该类还提供了语法简单并且易于使用的方法,这使得…

    C# 2023年6月1日
    00
  • C#多线程之线程绑定ThreadLocal类

    当我们在C#中使用多线程时,会涉及到一种问题:多个线程间如何共享数据。在这种情况下,我们可以使用ThreadLocal类。 ThreadLocal类的概述 ThreadLocal类是.NET框架提供的一种线程本地存储机制,它为每个线程提供了单独的存储空间。这意味着,每个线程都可以独立地操作自己的数据,而不会对其他线程的数据造成影响。 ThreadLocal类…

    C# 2023年6月6日
    00
  • C#二维数组基本用法实例

    下面是关于“C#二维数组基本用法实例”的完整攻略。 什么是二维数组 在C#中,数组是一个由相同类型的若干元素在连续的存储空间中所组成的集合。而二维数组则是由多个一维数组组合形成的。可以理解为一个数据表格,有行和列两个维度。 声明二维数组 声明二维数组需要指定行数和列数,并使用两个方括号“[]”来表示。语法如下: int[,] numbers = new in…

    C# 2023年6月7日
    00
  • C#实现顺序表(线性表)完整实例

    C#实现顺序表(线性表)完整实例攻略 什么是顺序表(线性表) 顺序表(线性表)是一种常见的数据结构,由一组连续的存储空间组成,用于实现对数据的快速访问和修改。顺序表(线性表)支持随机访问,可以在O(1)时间内访问任意位置的元素,因此在需要频繁操作数据的场合下被广泛使用。 C#实现顺序表(线性表)的步骤 1. 定义顺序表(线性表) 在C#中,可以使用数组实现顺…

    C# 2023年6月7日
    00
  • c# StringBuilder.Replace 方法 (Char, Char, Int32, Int32)

    让我来详细讲解一下C#中的StringBuilder.Replace方法。 方法概述 StringBuilder.Replace方法的作用是将指定位置处的字符或一段指定长度的字符替换为另一个字符。该方法的定义为: public StringBuilder Replace(char oldChar, char newChar, int startIndex, …

    C# 2023年5月15日
    00
  • Unity3D实现旋钮控制灯光效果

    下面是Unity3D实现旋钮控制灯光效果的完整攻略。 1. 前置条件 在实现旋钮控制灯光效果之前,需要确保你已经做好了以下准备: 安装了Unity3D开发环境; 创建好了项目,并打开了场景。 2. 创建旋钮和灯光 2.1 创建旋钮 首先,我们需要创建旋钮。可以在Hierarchy面板中添加一个Canvas对象,然后在Canvas中添加一个Image和一个Sl…

    C# 2023年6月3日
    00
合作推广
合作推广
分享本页
返回顶部