如何创建包含文本的PDF?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何创建包含文本的PDF?相关的知识,希望对你有一定的参考价值。

我想创建一个PDF文档,其中包含一些字符串形式的文本。这是我到目前为止:

iTextSharp.text.Document d = new iTextSharp.text.Document();
string dosya = (@"C:Deneme.pdf");
PdfWriter.GetInstance(d, new System.IO.FileStream(dosya, System.IO.FileMode.Create));
d.AddSubject(text);
答案

您的问题不明确,因为您没有提及是否要从头开始创建PDF(可能是您希望根据代码示例执行的操作),或者是否要将文本添加到现有PDF(这就是你问题的主题建议)。

在这两种情况下,您都应该查看官方文档。

如果要从头开始创建PDF,请查看Hello World示例:

public void CreatePdf(Stream stream) {
    // step 1
    using (Document document = new Document()) {
        // step 2
        PdfWriter.GetInstance(document, stream);
        // step 3
        document.Open();
        // step 4
        document.Add(new Paragraph("Hello World!")); 
    }          
}

stream的值可以是任何输出流(一个写入内存,一个写入文件,...)。

如果要将string添加到现有PDF,请查看PdfStamper示例。

public static byte[] Stamp(byte[] resource) {
  PdfReader reader = new PdfReader(resource);
  using (var ms = new MemoryStream()) {
    using (PdfStamper stamper = new PdfStamper(reader, ms)) {
      PdfContentByte canvas = stamper.GetOverContent(1);
      ColumnText.ShowTextAligned(
        canvas,
        Element.ALIGN_LEFT, 
        new Phrase("Hello people!"), 
        36, 540, 0
      );
    }
    return ms.ToArray();
  }
}

这些例子来自我曾经写过的一本书。您可以通过以下链接找到示例:http://developers.itextpdf.com/examples/itext-action-second-edition

此答案假定您使用的是iText 5(基于您的代码段的假设)。最新版本是iText 7.这需要完全不同的代码。

以上是关于如何创建包含文本的PDF?的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 iText 7 使下划线文本可访问

BottomNavigationView - 如何避免重新创建片段并重用它们

如何使 PDF 中的下拉表单自动填充文本框 [Bluebeam]

带有可填写表单域的 PDF +“另存为”=带有固定文本的 PDF - 如何?

如何创建和填写 PDF 表单

如何创建pdf的buffer,让pdf.js实现预览pdf文件