当前位置: 首页 > 知识库问答 >
问题:

正在从PDF篡改itextsharp返回PDFDocument对象

唐彬炳
2023-03-14

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

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个答案

西门良才
2023-03-14

谢谢克里斯。

只是为了重申@BrunoLowagie所说的话,传递文档对象几乎永远不会使

 类似资料:
  • 我正在使用iText(Sharp)生成PDF文档。我正在使用Visual Studio 2017开发该应用程序。我已经使用NuGet添加了iTestSharp,并用VB和C进行了实验# 对于“高级”内容来说,一切都很好(jumpstart教程的第1章)。现在,我想使用“page”、“canvas”和“low-level”绘图命令进行更低级的绘图:jumpstart教程的第2章 http://dev

  • JavaScript 共享的本质一直是开发人员心头的痛。因为任何对象都可以被在同一环境中运行的代码修改。开发人员很可能会意外地修改别人的代码,甚至更糟糕地,用不兼容的功能重写原生对象。ECMAScript 5 致力于解决这个问题,可以让开发人员定义防篡改对象(tamper-proof object)。第6章讨论了对象属性的问题,也讨论了如何手工设置每个属性的[[Configurable]]、[[W

  • 我遇到了一个关于Pact-js和POST主体的奇怪问题。 背景: 使用者端 -我有一个我正在尝试测试的NodeJs应用程序 -我配置了Pact并设置了适当的框架 -所有测试运行成功并生成了合同 提供者端: -同样,我有一个我正在尝试测试的NodeJs应用程序 -Pact已经设置好并框架就位 -当我运行测试时,所有GET请求都运行成功,但是所有POST都报告失败。 问题: -当我回显从Pact(ve

  • 是否可以使用iTextSharp从PDF文档中删除不可见(或至少不显示)的对象? 更多详情: 这种解决方案有2个大缺点: 文档的大小是[原始大小]*[裁剪框的数量],因为整个页面都在那里,盖了很多次戳!(看不见,但它在那里) 仍然可以通过在Reader中选择all(Ctrl+A)并粘贴来访问不可见文本。 所以,我想我需要迭代PDF对象,检测它是否可见,并删除它。在撰写本文时,我正在尝试使用pdfr

  • 我一直在研究猫鼬文档,但我找不到一种方法来实现我想要做的事情。考虑一个MangGDB用户集合。还可以考虑一个包含DB集合中所有字段的蒙古人用户模式。 现在,我想登录到控制台,所有用户,但属性已更改。有点像: 用户。图例(): 给定的异步类型。find()函数我不确定这是否可以实现。我来自C#和PHP背景,只处理关系数据库,这可以通过在用户类中使用只返回所需值的函数轻松实现。 能做到吗?!

  • 在实际开发中,有时会无意地修改了别人的代码,或者用不兼容的功能重写原生对象,这样会给整个开发带来困扰。使用防篡改方式可以防止别人篡改对象代码。 注:一旦对象定义为防篡改,就无法撤销了。也就是说无法改回来了。 不可扩展对象 在默认情况下,所有对象都是可以扩展的,也就是说,无论什么时候都可以向对象中添加属性和方法。 例如以下,先定义一个对象,再向其添加一个新属性: var obj = { na