无法更改/注释内容

2024-01-03

我正在尝试使用 iTextSharp 更改某些 PDF 注释中的文本。这是我的代码:

    void changeAnnotations(string inputPath, string outputPath)
    {
        PdfReader pdfReader = new PdfReader(inputPath);
        PdfStamper pdfStamper = new PdfStamper(pdfReader, new FileStream(outputPath, FileMode.Create));

        //get the PdfDictionary of the 1st page
        PdfDictionary pageDict = pdfReader.GetPageN(1);

        //get annotation array
        PdfArray annotArray = pageDict.GetAsArray(PdfName.ANNOTS);

        //iterate through annotation array
        int size = annotArray.Size;
        for (int i = 0; i < size; i++)
        {

            //get value of /Contents
            PdfDictionary dict = annotArray.GetAsDict(i);
            PdfString contents = dict.GetAsString(PdfName.CONTENTS);

            //check if /Contents key exists
            if (contents != null)
            {

                //set new value
                dict.Put(PdfName.CONTENTS, new PdfString("value has been changed"));
            }
        }
        pdfStamper.Close();
    }

当我在 Adob​​e Reader 中打开输出文件时,任何注释中的文本都没有更改。我应该如何在注释中设置新值?

更新:我发现当我单击注释时出现的弹出框中的值正在更改。在某些情况下,当我在弹出框中修改此值时,更改将应用​​于注释。


正如OP在评论中澄清的那样:

这个注释是一个FreeText,如何查找并更改此文本框中显示的文本?

自由文本注释允许通过多种机制来设置显示的文本:

  • 预格式化的外观流,由N条目在AP字典
  • 带有默认样式字符串的富文本字符串RC and DS分别
  • 应用于给定内容的默认外观字符串DA and Contents分别

(详细信息请参见 PDF 规范ISO 32000-1 http://www.adobe.com/content/dam/Adobe/en/devnet/acrobat/pdfs/PDF32000_2008.pdf第12.5.6.6节自由文本注释)

如果您想使用其中一种机制更改文本,请确保删除或调整其他机制的条目内容;否则,您的更改可能不可见,甚至对某些查看者可见,但对其他查看者不可见。

我不知道如何确定是否存在外观流。那是不是/AP财产?我检查了其中一个注释,它是一本带有单个条目的字典,其值为28 0 R.

So that 注释之一确实带有外观流。这其值为的单个条目28 0 R大概有N名称来表示normal外貌。28 0 R是对具有对象编号的间接对象的引用28和一代0.

如果您想更改文本内容但不想处理格式细节,则应删除AP entry.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

无法更改/注释内容 的相关文章

随机推荐

  • 如何添加新的 xib 文件

    我必须开发一个具有多个屏幕的应用程序 我已经自动生成了 xib 文件 但对于我的另一个屏幕 我需要另一个 xib 文件 如何创建另一个 xib 文件 假设 XCode 4 在 文件 gt 新建文件 菜单对话框中 有一个名为 用户界面 的小节
  • JSF 组件中立即=true VS 立即=false

    我正在阅读 Core JavaServer Faces 并且正在研究事件处理 它表示 如果某个组件 比如说按钮 的immediate true 那么当我们单击该按钮时 JSF 生命周期的流程验证和调用应用程序面将提前完成 这是什么意思 任何
  • bash:睡眠进程没有被杀死[重复]

    这个问题在这里已经有答案了 我写了一个简单的 bash 脚本 它除了休眠之外什么也不做 bin bash echo Sleeping sleep 180s 运行脚本后 我看到系统上正在运行两个进程 user 22880 0 0 0 0 12
  • 是否可以通过在页面上获取三个点来校正页面尺寸?

    我正在研究纠正页面 图像 的宽度 高度和角度的逻辑 点r1 r2 r3在正确图像上 点d1 d2 d3是当前图像上的对应点 我尝试了多种方法并最终解决了这个问题 public System Drawing Bitmap CorrectFil
  • Angular.js 内存泄漏,我什么时候应该开始担心

    所以我有一个相当大的应用程序构建在角度上 有很多嵌套状态 很多指令 数据表和东西 我们最近决定切换到完整的单页 而不是只有几个小的单一应用程序部分 比如文章 人员 仪表板以前都是一个小的单页应用程序 所以我开始更多地处理性能 在 Chrom
  • Android 中的模式锁定

    我想在我的应用程序中实现模式锁定 以便用户必须在使用应用程序之前绘制模式 谁能建议我该怎么做 参考这个链接 http haibison github io android lockpattern 我测试了它 这是一个非常好的例子
  • Python-将数据拆分为csv文件中的列

    我的 csv 文件中有数据 看起来像这样导入的 import csv with open Half life csv r as f data list csv reader f 数据将如下所示打印出行 例如data 0 10 2 2 等等
  • Gnuplot 中复数参数的 Bessel J 函数

    我在用gnuplot questions tagged gnuplot用于绘制我的大部分数据和函数 现在 我想绘制带有复数参数的第零类和第一类 Bessel J 函数 功能besj0 and besj1在 gnuplot 中实现 但是 根据
  • 使用 std::deque::iterator (在 C++ STL 中)搜索和删除某些元素

    我在调用以下代码时遇到问题 include
  • 如何剪辑具有平滑边缘的 BackdropFilter?

    我想申请一个背景滤镜在 Flutter 中的图像上 因此 我使用以下方法来应用过滤器 如颤振文档 https api flutter dev flutter widgets BackdropFilter class html import
  • WPF如何优化布局/渲染周期?

    WPF 如何在高度不稳定的应用程序中优化布局 渲染周期 例如 假设我快速连续两次使自定义控件无效 它会渲染两次吗 当数据 属性更新速率快于主渲染速率时是否存在性能问题 根据我的经验 我可以说不 如果速度足够快 它不会渲染两次 我不是 100
  • 如何找出matlab中匹配两条曲线的比例因子?

    I have two data sets obtained at different days The results I got from two different data sets have similar shape but di
  • 读取单词序列并将其添加到向量中

    我最近买了一个C 入门 https rads stackoverflow com amzn click com 0321714113并遇到了一个问题 我必须使用以下方式读取单词序列cin并将值存储在vector 在遇到不寻常的问题后 我发现
  • PowerShell Invoke-Sqlcmd 切换到 sqlps 会话

    我正在 PowerShell ISE 中编写脚本 并使用 Invoke Sqlcmd 执行命令后 Powershell 会话切换到 sqlps 会话 PS SQLSERVER gt 我无法第二次执行脚本 我必须退出 PowerShell I
  • 使用变量初始化数组时出现分段错误

    这是我发布的第一个问题 如果我有任何失礼 很抱歉 Using C 在我的程序中我创建了一个全局变量指针 double correlationData 在 main 中 我创建了这个局部变量 int arrayLength 0 在 main
  • C 中的数学常数 PI 值

    计算 PI 值是复杂的问题之一 维基百科讨论了近似值 http en wikipedia org wiki Approximations of CF 80完成了它并表示很难准确计算 PI C如何计算PI 它是每次都计算它还是使用不太准确的固
  • R/ RStudio - 安装开发工具失败?

    我正在尝试安装devtools在我的 RStudio 中 但我收到很多错误 installing source package curl package curl successfully unpacked and MD5 sums che
  • Docker for windows 在尝试查看设置时挂起[关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我已经安装了适用于 Windows 的 Docker 桌面 Windows 10 上的 docker 19 0 3 当我进入设置时 它会因
  • 如何从 Microsoft Azure 移动服务中的表读取数据并将其放入我的应用程序中?

    我正在使用 Xamarin Studio 和 Microsoft Azure 移动服务 我正在尝试读取放入 Microsoft Azure 移动服务表中的数据并将其显示在我的应用程序中 我遵循了 Azure 网站上的所有教程 但我似乎无法找
  • 无法更改/注释内容

    我正在尝试使用 iTextSharp 更改某些 PDF 注释中的文本 这是我的代码 void changeAnnotations string inputPath string outputPath PdfReader pdfReader