从PDFStamper itextsharp返回PDFDocument对象

时间:2014-12-07 08:40:10

标签: pdf itextsharp itext

我想从下面的代码返回Document对象。 目前我得到的文件没有页面例外。

private static Document GeneratePdfAcroFields(PdfReader reader, Document docReturn)
    {

         if (File.Exists(System.Configuration.ConfigurationSettings.AppSettings["TEMP_PDF"]))
            File.Delete(System.Configuration.ConfigurationSettings.AppSettings["TEMP_PDF"]);


        PdfStamper stamper = new PdfStamper(reader, new FileStream(System.Configuration.ConfigurationSettings.AppSettings["TEMP_PDF"],FileMode.Create));
        AcroFields form = stamper.AcroFields;

        ///INSERTING TEXT DYNAMICALLY JUST FOR EXAMPLE.
        form.SetField("topmostSubform[0].Page16[0].topmostSubform_0_\\.Page78_0_\\.TextField3_9_[0]", "This value was dynamically added.");
        stamper.FormFlattening = false;

        stamper.Close();

        FileStream fsRead = new FileStream(System.Configuration.ConfigurationSettings.AppSettings["TEMP_PDF"], FileMode.Open);

        Document docret = new Document(reader.GetPageSizeWithRotation(1));

        return docret;
    }

1 个答案:

答案 0 :(得分:0)

谢谢Chris。

  

重申@BrunoLowagie所说的内容,传递Document对象几乎永远不会让人感觉到。尽管名称可能听起来像,但文档并不以任何方式表示PDF。调用> ToString()或GetBytes()(如果该方法实际存在)将无法获得PDF。文档只是一个单向漏斗,用于将人性化的命令传递给实际写入原始PDF>令牌的引擎。然而,引擎甚至也不是PDF。唯一真正的PDF是正在写入的流的原始>字节。 - 克里斯哈斯