Aspose.Words for .NET 教程(四):文档保存与格式转换全解析

作者:微信公众号:【架构师老卢】
9-22 16:30
8

Aspose.Words for .NET 下载地址 https://soft51.cc/software/175811283999782847

第四章 文档保存与格式转换详解

在 Aspose.Words for .NET 中,文档保存与格式转换是最常用的功能之一。无论是将文档导出为 PDF、HTML,还是批量进行格式转换,都需要熟悉 Save 方法SaveOptions 配置


4.1 保存为不同格式(DOC/DOCX/PDF/HTML 等)

Aspose.Words 支持将文档保存为 30+ 种格式,常见包括:

  • DOC / DOCX
  • PDF
  • HTML / MHTML
  • TXT / RTF / ODT
  • 图片格式(JPEG/PNG/BMP/SVG)

📌 示例:保存为多种格式

using Aspose.Words;

// 加载文档
Document doc = new Document("input.docx");

// 保存为不同格式
doc.Save("output.docx");              // Word
doc.Save("output.pdf");               // PDF
doc.Save("output.html");              // HTML
doc.Save("output.txt");               // TXT
doc.Save("output.odt");               // OpenDocument

4.2 保存选项详细配置

在保存文档时,可以通过 SaveOptions 设置更细粒度的控制。

常见的 SaveOptions:

  • PdfSaveOptions:控制 PDF 压缩、嵌入字体等
  • HtmlSaveOptions:控制是否导出 CSS、图片嵌入方式
  • ImageSaveOptions:控制图片分辨率、质量、颜色模式

📌 示例:将文档保存为压缩 PDF

using Aspose.Words;
using Aspose.Words.Saving;

Document doc = new Document("input.docx");

PdfSaveOptions options = new PdfSaveOptions
{
    Compliance = PdfCompliance.PdfA1b,    // 符合 PDF/A-1b 标准
    EmbedFullFonts = false,               // 不嵌入完整字体
    ImageCompression = PdfImageCompression.Jpeg,
    JpegQuality = 80                      // JPEG 压缩质量
};

doc.Save("output.pdf", options);

4.3 保存到流与字节数组

在 Web API 或云应用中,通常需要 直接输出字节流 而不是文件。

📌 示例:保存到内存流并转换为字节数组

using System.IO;
using Aspose.Words;

Document doc = new Document("input.docx");

using (MemoryStream ms = new MemoryStream())
{
    doc.Save(ms, SaveFormat.Pdf);
    byte[] pdfBytes = ms.ToArray();

    // 可以直接返回给前端,或存入数据库
    File.WriteAllBytes("FromMemory.pdf", pdfBytes);
}

4.4 批量格式转换实现

批量格式转换可以方便地将多个文档统一转为指定格式。

📌 示例:批量将 DOCX 转换为 PDF

using Aspose.Words;

string[] files = Directory.GetFiles("docs", "*.docx");

foreach (string file in files)
{
    Document doc = new Document(file);
    string output = Path.ChangeExtension(file, ".pdf");
    doc.Save(output);
    Console.WriteLine($"已转换: {file} → {output}");
}

4.5 保存进度监控

Aspose.Words 提供 IPageSavingCallbackSaveOptions.ProgressCallback 来监控保存进度,适合处理大文档或批量任务。

📌 示例:保存 PDF 时监控进度

using Aspose.Words;
using Aspose.Words.Saving;
using System;

class ProgressHandler : IProgressCallback
{
    public void Notify(ProgressEventArgs args)
    {
        Console.WriteLine($"进度: {args.PercentComplete}% - {args.EventType}");
    }
}

Document doc = new Document("input.docx");

PdfSaveOptions options = new PdfSaveOptions
{
    ProgressCallback = new ProgressHandler()
};

doc.Save("progress.pdf", options);

4.6 压缩与优化设置

在导出 PDF/HTML 等格式时,可以通过优化选项减少文件大小。

📌 示例:PDF 压缩与优化

using Aspose.Words;
using Aspose.Words.Saving;

Document doc = new Document("input.docx");

PdfSaveOptions options = new PdfSaveOptions
{
    ImageCompression = PdfImageCompression.Jpeg,  // 图片压缩
    JpegQuality = 60,                             // JPEG 质量
    EmbedFullFonts = false,                       // 不嵌入完整字体
    OptimizeOutput = true                         // 优化输出
};

doc.Save("optimized.pdf", options);

  • Save 方法 支持多种格式(DOCX、PDF、HTML、TXT、ODT、图片等)。
  • SaveOptions 提供灵活配置,例如 PDF 压缩、HTML 内联资源、图片质量。
  • 流保存 适合 Web 应用和 API 场景。
  • 批量转换 可以自动处理多个文件。
  • 进度监控 适合大文件处理。
  • 压缩优化 能有效减少文件大小。

Aspose.Words for .NET 下载地址 https://soft51.cc/software/175811283999782847

相关留言评论
昵称:
邮箱:
阅读排行