📜  itext7 pdfwriter outputstream c# (1)

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

iText7 PDFWriter 和 OutputStream in C#

iText7 是一个用于生成 PDF 文件的流行的开源库,其能够实现一些高级特性,例如数字签名、表单设计等等。本文将介绍如何使用 iText7 的 PDFWriter 类和 OutputStream 来输出 PDF 文件。

1. PDFWriter 和 OutputStream 的概述

PDFWriter 类是 iText7 中的核心类之一,它用于将 PDF 文档的内容输出到指定的 OutputStream 中。OutputStream 是 java.io.OutputStream 类的子类,它将二进制数据输出到底层的设备或其他数据源。

2. 创建 PDFWriter 和 OutputStream 实例

在 C# 中创建 PDFWriter 实例的代码如下所示:

PdfDocument document = new PdfDocument(new PdfWriter("output.pdf"));

上述代码使用了 PdfWriter 类,它创建了一个输出流并将其与指定的文件名链接起来。我们还可以将 PDF 文件内容存储到内存流中,以便在内存中操作和处理 PDF 文件。创建内存流的代码如下:

MemoryStream memoryStream = new MemoryStream();
PdfDocument document = new PdfDocument(new PdfWriter(memoryStream));

在这种情况下,PDF Writer 类将 PDF 文件内容写入内存流中。

通过将 PDFWriter 对象的构造函数中传递 OutputStream 对象,我们可以将 PDF 文件输出到指定的数据源,如下所示:

//创建输出流
Stream outputStream = new FileStream("output.pdf", FileMode.Create);
//创建 PDFWriter 对象并将其绑定到 OutputStream 上
PdfWriter writer = new PdfWriter(outputStream);
PdfDocument document = new PdfDocument(writer);
3. 添加文档内容并关闭

在实例化 PDF Writer 和 OutputStream 对象后,我们可以向 PDF 文件中添加内容。例如,我们可以添加文本到 PDF 文件中,如下所示:

document.AddNewPage();
document.GetFirstPage().GetCanvas().BeginText();
document.GetFirstPage().GetCanvas().SetFontAndSize(PdfFontFactory.CreateFont(iText.IO.Font.Constants.StandardFonts.HELVETICA), 15);
document.GetFirstPage().GetCanvas().MoveText(250, 750);
document.GetFirstPage().GetCanvas().ShowText("Hello World!");
document.GetFirstPage().GetCanvas().EndText();

上述代码将在 PDF 文件中添加一行文本“Hello World!”。

在我们完成所有操作后,不要忘记关闭。如果不关闭流,可能会发生不可预测的错误。关闭流的代码如下所示:

document.Close();
outputStream.Close();
4. 总结

本文介绍了如何使用 iText7 的 PDFWriter 类和 OutputStream 来输出 PDF 文件。我们了解了如何创建 PDFWriter 和 OutputStream 实例、如何将 PDF 文件输出到指定的数据源,以及如何向 PDF 文件添加文档内容。最后,我们提到了必须关闭流的重要性。通过这些信息,我们可以开始使用 iText7 来创建高质量的 PDF 文件。