Ambika KU
Ambika KU

Reputation: 89

how to search and replace the text in pdf file using itextsharp in asp.net

Am using itextsharp 4.1 version, i want find some text and replace the text in pdf file but the design of the pdf must remain same.

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();
    }

}

this is what i was trying it replace the text but in pdf file its not replacing

Upvotes: 0

Views: 1089

Answers (1)

ihisham
ihisham

Reputation: 248

You cannot do that with iTextSharp However with Aspose.Pdf You can, There is a free version in nugget

Upvotes: 1

Related Questions