【问题标题】:copy contents from existing pdf to a new pdf using itextsharp使用 itextsharp 将现有 pdf 的内容复制到新的 pdf
【发布时间】:2017-08-01 19:34:17
【问题描述】:

我可以复制内容并进行编辑,但我没有得到与旧模板相同的模板,模板正在更改,并且我的旧文件上有一个图像,该图像也没有被复制到我的新文件,其他内容正在被复制,有人帮我将新的 pdf 文件模板制作为旧文件,下面是我的代码。

    public static void Main(string[] args)
    {
        var editedText = ExtractTextFromPdf(@"C:\backup_temp\Template.pdf");
        string outputfile =@"C:\backup_temp\Result.pdf";
        using (var fileStream = new FileStream(outputfile, FileMode.Create, 
        FileAccess.Write)) 
        {
            Document document = new Document(PageSize.A4, 25, 25, 30, 30);
            PdfWriter writer = PdfWriter.GetInstance(document, fileStream);
            document.Open();
            document.Open();
            document.Add(new Paragraph(editedText));
            document.Close();
            writer.Close();
            fileStream.Close();
        }
    }

    public static string ExtractTextFromPdf(string path)
    {
        using (PdfReader reader = new PdfReader(path))
        {
            StringBuilder text = new StringBuilder();
            for (int i = 1; i <= reader.NumberOfPages; i++)
            {
            text.Append(PdfTextExtractor.GetTextFromPage(reader, i));
            text.Replace("[DMxxxxxxx]", "[DM123456]");
            }
            return text.ToString();
        }
    }

【问题讨论】:

  • 请阅读我的 cmets 以回答问题 creating new pdf by copying data from another pdf。你正在努力实现一些不可能的事情。如果您与kulbans1991是同一个人,请注意,再次使用新身份发布相同的问题不会改变答案。
  • 那么是否有可能以其他方式满足我的要求,这意味着我应该编辑旧pdf中的内容并将其保存为新的pdf文档,我尝试使用了很多东西和方法但是它没有工作。
  • 不,如果您只能访问 PDF,则无法以任何其他方式满足您的要求。如果您可以访问原始格式(例如 Word 文件、原始数据和用于生成 PDF 的代码……),您应该更改原始格式并重新创建 PDF。
  • @ShaktiS 实际上它可能可能的。这取决于非常PDF。因此,如果您能够为程序应作为输入接收的 PDF 和数据制定要求,您可以创建一个实现。不幸的是,如今满足相关要求的 PDF 越来越少......

标签: itext


【解决方案1】:

正如布鲁诺所说,如果您的“模板”是另一个 pdf 文档,那么您无法以微不足道的方式实现此功能。 Pdf 文档不会自动重排其内容。据我所知,没有 pdf 库可以让您插入/替换/编辑内容并仍然生成漂亮的文档。

在您的情况下,最好的解决方案是:

  • 将模板文档存储为易于编辑的格式
  • 根据这个简单的模板生成pdf文档

示例用例:

  1. 我有一些 HTML 文档,其中包含精确的布局、图像和文本,以及一些我想要填写的内容的占位符。
  2. 我使用 JSoup(或其他一些库)来编辑我的模板的 DOM 结构,这很容易,因为我可以给元素 ID 并简单地通过 ID 更改内容。我不需要正则表达式。
  3. 我使用 pdfHTML(iText 插件)将我的 html 文档转换为 pdf

【讨论】:

    猜你喜欢
    • 2015-05-19
    • 1970-01-01
    • 2014-03-18
    • 1970-01-01
    • 2016-01-29
    • 2013-02-09
    • 2013-02-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多