【问题标题】:how to search and replace the text in pdf file using itextsharp in asp.net如何在asp.net中使用itextsharp搜索和替换pdf文件中的文本
【发布时间】:2017-05-22 11:21:25
【问题描述】:

我正在使用 itextsharp 4.1 版本,我想查找一些文本并替换 pdf 文件中的文本,但 pdf 的设计必须保持不变。

protected void Button_Click(object sender, EventArgs e)
{       
    string filename =@"D:\DocumentTemplates\SanctionLetter_English.pdf";
    string filename2 = @"D:\DocumentTemplates\changed4.pdf";
    ExtractTextFromPdf(filename.ToString());
    InsertTextToPdf(filename, filename2);
}
 public static string ExtractTextFromPdf(string path)
{
    using (Stream pdfStream = new FileStream(path, FileMode.Open))
    {
        PdfReader reader = new PdfReader(pdfStream);
        // var reader = new PdfReader(path);

        StringBuilder sb = new StringBuilder();

        try
        {
            for (int page = 1; page <= reader.NumberOfPages; page++)
            {
                var cpage = reader.GetPageN(page);
                var content = cpage.Get(PdfName.CONTENTS);

                var ir = (PRIndirectReference)content;

                var value = reader.GetPdfObject(ir.Number);

                if (value.IsStream())
                {
                    PRStream stream = (PRStream)value;

                    var streamBytes = PdfReader.GetStreamBytes(stream);

                    var tokenizer = new PRTokeniser(new RandomAccessFileOrArray(streamBytes));

                    try
                    {
                        while (tokenizer.NextToken())
                        {
                            if (tokenizer.TokenType == PRTokeniser.TK_STRING)
                            {
                                string str = tokenizer.StringValue;
                                sb.Append(str);
                            }
                        }
                    }
                    finally
                    {
                        tokenizer.Close();
                    }
                }
            }
        }
        finally
        {
            reader.Close();
        }
         sb.Replace("LOAN PURPOSE", "Mumbai");
        return sb.ToString();
    }

}

这是我尝试用它替换文本,但在 pdf 文件中它没有替换

【问题讨论】:

标签: c# asp.net


【解决方案1】:

你不能用 iTextSharp 做到这一点 但是使用 Aspose.Pdf 可以,nugget 中有免费版本

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2010-09-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-06-13
    • 2023-04-07
    相关资源
    最近更新 更多