开发者

Populating PDF fields in .NET without a API, such as iTextSharp

class mineTest
    {
        string pdfTemplate = @"c:\us.pdf";
        public mineTest(Customer c, string output)
        {
            StreamReader sr = new StreamReader(pdfTemplate);
            StreamWriter sw = new StreamWriter(output);
            string content = sr.ReadToEnd();

            content.Replace("(Customer name)/DA(/Verdana 10 Tf 0 g)/FT/Tx/Type/Annot/MK<<>>/V()/AP<</N 13 0 R>>>>", "(Customer name)/DA(/Verdana 10 Tf 0 g)/FT/Tx/Type/Annot/MK<<>>/V(John Johnson)/AP<</N 13 0 R>>>>");
            sw.Write(content);
            sw.Close();
            sr.Close();
        }
    }

Why does the above code fail 开发者_如何学编程at producing a valid PDF?


PDF files are binary. You are reading it as text, then re-writing the text. As SLaks also points out, you're not even doing anything with the replaced text.

Use a PDF Library. Try PDFSharp.


Strings are immutable.

When you call content.Replace(...), the Replace function returns a new string with the replacements, which your code ignores.
The original content string is not modified.

You need to change it to

content = content.Replace(...);

By the way, you should call File.WriteAllText and File.ReadAllText.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜