📜  c# itext 7 PdfDocument 来自字节数组 - C# (1)

📅  最后修改于: 2023-12-03 15:29:45.812000             🧑  作者: Mango

C# itext 7 PdfDocument 来自字节数组

iText 7是一个用于创建和处理PDF文档的开源库。 PdfDocument类是iText 7中用于操作PDF文档的主要类之一。在本篇文章中,我们将介绍如何使用C#以字节数组的形式操作PdfDocument类,以便进行PDF文档的读取和写入。

读取PDF文档

要从字节数组中读取PDF文档,我们需要使用PdfReader类。以下代码段展示了如何使用PdfReader从字节数组中读取PDF文档:

byte[] pdfBytes = GetPdfBytes(); // 获取PDF文档的字节数组
using (MemoryStream pdfMemStream = new MemoryStream(pdfBytes))
{
    PdfReader pdfReader = new PdfReader(pdfMemStream);
    using (PdfDocument pdfDoc = new PdfDocument(pdfReader))
    {
        // 在此处进行PDF文档的读取操作
    }
}

首先,我们通过调用GetPdfBytes()函数获取PDF文档的字节数组。然后,我们使用MemoryStream类将字节数组装入内存流。接下来,我们创建一个PdfReader对象并将内存流传递给它。最后,我们使用PdfDocument类将PdfReader对象转换为PdfDocument对象。

现在,我们可以在PdfDocument对象中执行所需的读取操作。例如,我们可以遍历文档中的页面:

for (int i = 1; i <= pdfDoc.GetNumberOfPages(); i++)
{
    PdfPage page = pdfDoc.GetPage(i);
    // 在此处执行页面处理操作
}
写入PDF文档

要将PDF文档写入字节数组,我们需要使用PdfWriter类。以下代码段展示了如何使用PdfWriter将PDF文档写入字节数组:

using (MemoryStream pdfMemStream = new MemoryStream())
{
    PdfWriter pdfWriter = new PdfWriter(pdfMemStream);
    using (PdfDocument pdfDoc = new PdfDocument(pdfWriter))
    {
        // 在此处进行PDF文档的写入操作
    }
    byte[] pdfBytes = pdfMemStream.ToArray();
    // 在此处使用字节数组
}

首先,我们创建一个空的内存流。然后,我们使用PdfWriter类将内存流转换为PdfWriter对象。接下来,我们创建一个PdfDocument对象,并将PdfWriter对象传递给它。最后,在PdfDocument对象中执行所需的写入操作后,我们可以使用内存流的ToArray()方法将结果转换为字节数组。

现在,我们可以在字节数组中使用PDF文档了。例如,我们可以将字节数组写入磁盘文件:

File.WriteAllBytes("output.pdf", pdfBytes);

以上就是使用C# itext 7 PdfDocument从字节数组中读取或写入PDF文档的完整教程。通过此教程,您现在可以在自己的C#应用程序中使用iText 7来处理PDF文档。