在 C# 中将 Excel XLS 和 XLSX 转换为 PDF

Excel转PDF C#

本文演示了如何使用C#Excel(XLS、XLSX)文件转换PDF格式Adobe 开发可移植文档格式 ( PDF ) 格式被许多组织用作共享和存储文档的标准。将文档导出为 PDF 是许多应用程序的常见场景。

用于 Excel 到 PDF 转换的 C# API

Aspose.Cells for .NET API 使将 Excel 电子表格转换为 PDF 变得轻而易举。您可以下载API 的 DLL 或使用 NuGet 安装它。

PM> Install-Package Aspose.Cells

在 C# 中将 Excel XLS 或 XLSX 转换为 PDF

Aspose.Cells for .NET提供易于使用的 API,您可以通过这些简单的步骤将 Excel 文件转换为 PDF。

  1. 使用要转换的 Excel 文档实例化Workbook类。
  2. 通过使用SaveFormat枚举指定保存格式为 PDF 以 PDF 格式保存文档

以下代码片段演示了如何在 C# 中将 Excel XLS 转换为 PDF。

// Instantiate the Workbook object with the Excel file
Workbook workbook = new Workbook("SampleExcel.xls");

// Save the document in PDF format
workbook.Save("outputPDF.pdf", SaveFormat.Pdf);

使用 C# 将 Excel 转换为符合 PDF/A 标准的 PDF

PDF/A 是 PDF 的 ISO 标准化版本,它禁止不适合长期存档的功能。像这样保存 PDF 可确保从长远来看不会破坏任何内容。

以下代码片段通过创建新工作簿并将其转换为符合 PDF/A 的 PDF 格式来演示此功能:

// Instantiate new workbook
Workbook workbook = new Workbook();

// Insert a value into the cell A1
workbook.Worksheets[0].Cells[0, 0].PutValue("Testing PDF/A");

// Define PdfSaveOptions
PdfSaveOptions pdfSaveOptions = new PdfSaveOptions();

// Set the compliance type
pdfSaveOptions.Compliance = PdfCompliance.PdfA1b;

// Save the file
workbook.Save(dataDir + "output.pdf", pdfSaveOptions);

在 C# 中跟踪 Excel 到 PDF 的转换

Aspose.Cells for .NET 通过提供IPageSavingCallback接口提供跟踪转换进度的能力您可以创建一个实现此接口的自定义类并将其实例分配给PdfSaveOptions.PageSavingCallback属性。

以下代码片段演示了如何使用 C# 跟踪 Excel 到 PDF 的转换进度。

//load the workbook
Workbook workbook = new Workbook("PagesBook1.xlsx");

PdfSaveOptions pdfSaveOptions = new PdfSaveOptions();

//assign the custom class that implements IPageSavingCallback interface
pdfSaveOptions.PageSavingCallback = new TestPageSavingCallback();

workbook.Save("DocumentConversionProgress.pdf", pdfSaveOptions);

下面是实现了用于跟踪转换过程IPageSavingCallback接口的自定义类

public class TestPageSavingCallback : IPageSavingCallback
{
    public void PageStartSaving(PageStartSavingArgs args)
    {
        Console.WriteLine("Start saving page index {0} of pages {1}", args.PageIndex, args.PageCount);

        //pages before page index 2 are not rendered.
        if (args.PageIndex < 2)
        {
            args.IsToOutput = false;
        }
    }

    public void PageEndSaving(PageEndSavingArgs args)
    {
        Console.WriteLine("End saving page index {0} of pages {1}", args.PageIndex, args.PageCount);

        //pages after page index 8 are not rendered.
        if (args.PageIndex >= 8)
        {
            args.HasMorePages = false;
        }
    }
}

结论

在本文中,您学习了如何使用 C# 将 Excel XLSX 或 XLS 文件转换为 PDF。有关将 Excel 文件转换为 PDF 的更多信息,请转到我们的文档,将 Excel 工作簿转换为 PDF如果您有任何疑问,请随时通过我们的论坛告诉我们

也可以看看