我想从下面的代码返回文档对象。目前我得到一个文档没有页面例外。
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;
}
谢谢克里斯。
只是为了重申@BrunoLowagie所说的,传递文档对象几乎从来没有>意义。无论名称听起来像什么,文档并不以任何方式表示 PDF。调用>ToString()或GetBytes()(如果该方法确实存在)不会得到PDF。文档只是一个>单向漏斗,用于将人类友好的命令传递给实际写入原始 PDF>令牌的引擎。然而,引擎甚至也不是PDF。唯一真正是 PDF 的是正在写入的流的原始>字节。– 克里斯·哈斯