从itextsharp注释中弹出一个窗口来显示图像和文本

2023-12-06

我想在 C# 项目中添加并弹出窗口,通过单击 itextsharp 注释来显示图像和文本。

iTextSharp.text.pdf.PdfAnnotation annot = iTextSharp.text.pdf.PdfAnnotation.CreateLink(stamper.Writer, c.rect, PdfAnnotation.HIGHLIGHT_INVERT, PdfAction.JavaScript("app.alert('action!')", stamper.Writer));

上面的代码用于显示警报,我想根据我的需要对其进行自定义,有人可以给我一个选项吗?我不熟悉javascript。或者我可以使用任何其他选项吗?


您需要一些注释来实现您想要的。

让我从一个简单的文本注释开始:

假设:

  • writer是你的PdfWriter实例,
  • rect1 and rect2是定义坐标的矩形,
  • title and contents are string具有您想要在文本注释中显示的内容的对象,

然后您需要此代码片段来添加弹出注释:

// Create the text annotation
PdfAnnotation text = PdfAnnotation.CreateText(writer, rect1, title, contents, false, "Comment");
text.Name = "text";
text.Flags = PdfAnnotation.FLAGS_READONLY | PdfAnnotation.FLAGS_NOVIEW;
// Create the popup annotation
PdfAnnotation popup = PdfAnnotation.CreatePopup(writer, rect2, null, false);
// Add the text annotation to the popup
popup.Put(PdfName.PARENT, text.IndirectReference);
// Declare the popup annotation as popup for the text
text.Put(PdfName.POPUP, popup.IndirectReference);
// Add both annotations
writer.AddAnnotation(text);
writer.AddAnnotation(popup);
// Create a button field
PushbuttonField field = new PushbuttonField(wWriter, rect1, "button");
PdfAnnotation widget = field.Field;
// Show the popup onMouseEnter
PdfAction enter = PdfAction.JavaScript(JS1, writer);
widget.SetAdditionalActions(PdfName.E, enter);
// Hide the popup onMouseExit
PdfAction exit = PdfAction.JavaScript(JS2, writer);
widget.SetAdditionalActions(PdfName.X, exit);
// Add the button annotation
writer.AddAnnotation(widget);

两个常量尚未解释:

JS1:

"var t = this.getAnnot(this.pageNum, 'text'); t.popupOpen = true; var w = this.getField('button'); w.setFocus();"

JS2:

"var t = this.getAnnot(this.pageNum, 'text'); t.popupOpen = false;"

当然,这在我的书中进行了解释,更具体地说是在第 7 章中。您可以找到完整的示例here。如果您需要C#示例,请查找相应的示例here.

如果您还想要图像,请看一下这个示例:广告.pdf

这里有一个广告,当您单击“关闭此广告”时,该广告就会关闭。这也是使用 JavaScript 完成的。您需要将前面的代码片段与广告例子。

您需要的关键 JavaScript 方法是:getField() and getAnnot()。您必须更改属性才能显示或隐藏内容。

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

从itextsharp注释中弹出一个窗口来显示图像和文本 的相关文章

  • C# 中值类型和引用类型有什么区别? [复制]

    这个问题在这里已经有答案了 我知道一些差异 值类型存储在堆栈上 而引用类型存储在托管堆上 值类型变量直接包含它们的值 而引用变量仅包含对托管堆上创建的对象位置的引用 我错过了任何其他区别吗 如果是的话 它们是什么 请阅读 堆栈是一个实现细节
  • 从 html 页面和 javascript 调用 java webservice

    我正在尝试从 javascript 调用 java 实现的 Web 服务 使用 NetBeans IDE 我读过很多关于 jQuery 和 AJAX 的内容 但我似乎无法掌握它 假设我的 Web 服务 WSDL 位于 http localh
  • React TypeError:x 不是函数

    我在子组件中从父组件调用函数 booksRefresh 但出现错误 类型错误 booksRefresh 不是函数 我不知道为什么 因为 booksRefresh 是一个函数 有人可以帮我解释为什么会出现这个错误吗 这是我的代码 import
  • 跨多个控件共享事件处理程序

    在我用 C 编写的 Windows 窗体应用程序中 我有一堆按钮 当用户的鼠标悬停在按钮上时 我希望按钮的边框发生变化 目前我有以下多个实例 每个按钮一个副本 private void btnStopServer MouseEnter ob
  • C# 中可空类型是什么?

    当我们必须使用nullable输入 C net 任何人都可以举例说明 可空类型 何时使用可空类型 https web archive org web http broadcast oreilly com 2010 11 understand
  • 需要根据用户选择有条件地渲染具有 X 行数的部分

    我有一个反应组件 其中包含一个下拉列表 其中的选项包括none 1 5 and 13 根据用户选择的数字 我需要渲染一个部分 其中包括许多行 每个行都有字段名称和下拉列表 如果用户不选择任何一个 我需要整个附加配置部分消失 新部分中的每个下
  • 当 Cortex-M3 出现硬故障时如何保留堆栈跟踪?

    使用以下设置 基于 Cortex M3 的 C gcc arm 交叉工具链 https launchpad net gcc arm embedded 使用 C 和 C FreeRtos 7 5 3 日食月神 Segger Jlink 与 J
  • 在 ASP.Net Core 2.0 中导出到 Excel

    我曾经使用下面的代码在 ASP NET MVC 中将数据导出到 Excel Response AppendHeader content disposition attachment filename ExportedHtml xls Res
  • 如何在 Team Foundation 上强制发表有意义的签入评论?

    我有一个开发团队有一个坏习惯 他们写道poor签入评论 当我们必须在团队基础上查看文件的历史记录时 这使得它成为一场噩梦 我已经启用了变更集评论政策 这样他们甚至可以在签到时留下评论 否则他们不会 我们就团队的工作质量进行了一些讨论 他们很
  • 初始化变量的不同方式

    在 C 中初始化变量有多种方法 int z 3 与 int 相同z 3 Is int z z 3 same as int z z 3 您可以使用 int z z 3 Or just int z 3 Or int z 3 Or int z i
  • 如何在 JSP 编辑器中激活 javascript 的语法着色 - Eclipse

    在某些情况下 javascript 确实必须位于 JSP 页面中 而不是位于单独的文件中 有些框架还使用Javascript做一些事情 以便用户将其包含到JSP标签中 这样JS就不会出现在
  • 网络参考共享类

    我用 Java 编写了一些 SOAP Web 服务 在 JBoss 5 1 上运行 其中两个共享一个类 AddressTO Web 服务在我的 ApplycationServer 上正确部署 一切都很顺利 直到我尝试在我的 C 客户端中使用
  • 在 Javascript 中创建数组

    我对 javascript 不太熟悉 并且在用 javascript 制作 2d 或者也许我可能需要 3d 数组时遇到了一些麻烦 我目前需要收集 2 条信息 一个 ID 和一个值 因此我创建了以下内容 var myArray var id
  • AccessViolationException 未处理

    我正在尝试使用史蒂夫 桑德森的博客文章 http blog stevensanderson com 2010 01 28 editing a variable length list aspnet mvc 2 style 为了在我的 ASP
  • 在 URL 中发送之前对特殊字符进行百分比编码

    我需要传递特殊字符 如 等 Facebook Twitter 和此类社交网站的 URL 为此 我将这些字符替换为 URL 转义码 return valToEncode Replace 21 Replace 23 Replace 24 Rep
  • 如何设置javascript对象数组中所有对象的特定属性值(lodash)

    我有以下对象数组 var arr id a1 guid sdfsfd value abc status active id a2 guid sdfsfd value def status inactive id a2 guid sdfsfd
  • 将日期参数传递给对 MVC 操作的 ajax 调用的安全方法

    我有一个 MVC 操作 它的参数之一是DateTime如果我通过 17 07 2012 它会抛出一个异常 指出参数为空但不能有空值 但如果我通过01 07 2012它被解析为Jan 07 2012 我将日期传递给 ajax 调用DD MM
  • 方法参数内的变量赋值

    我刚刚发现 通过发现错误 你可以这样做 string s 3 int i int TryParse s hello out i returns false 使用赋值的返回值是否合法 Obviously i is but is this th
  • Bing 地图运行时错误 Windows 8.1

    当我运行带有 Bing Map 集成的 Windows 8 1 应用程序时 出现以下错误 Windows UI Xaml Markup XamlParseException 类型的异常 发生在 DistanceApp exe 中 但未在用户
  • 将变量分配给另一个变量,并将一个变量的更改反映到另一个变量中

    是否可以将一个变量分配给另一个变量 并且当您更改第二个变量时 更改会瀑布式下降到第一个变量 像这样 int a 0 int b a b 1 现在 b 和 a 都 1 我问这个问题的原因是因为我有 4 个要跟踪的对象 并且我使用名为 curr

随机推荐

  • 具有前瞻模式的 grep 命令不会选择任何内容

    我试图使用以下 grep 命令 grep png html jpg js css s png html jpg js css s file 文件包含以下内容 http manage bostonglobe com GiftTheGlobe
  • 虚函数关键字

    在子类中声明继承的虚函数有什么区别with 虚拟 关键字or not 考虑到我想调用适合我的对象类型的 fun 看看评论 include
  • PHP 反序列化因非编码字符而失败?

    ser a 2 i 0 s 5 h ll i 1 s 5 w rld fails ser2 a 2 i 0 s 5 hello i 1 s 5 world works out unserialize ser out2 unserialize
  • 检测哪个选定项目(在 ListView 中)生成了 ContextMenu (Android)

    我有一个ListView这将允许用户长按某个项目以获得上下文菜单 我遇到的问题是确定哪个ListItem他们长按 我尝试这样做 myListView setOnCreateContextMenuListener new OnCreateCo
  • Pandas 随机用 NaN 替换值

    我正在测试机器学习算法的性能 特别是它如何处理丢失的数据以及当变量丢失时会经历什么样的性能下降 例如 当变量 x 缺失 20 时 模型的准确性会下降一定的百分比 为了做到这一点 我想通过替换数据帧列中 20 的行来模拟丢失的数据 有现有的方
  • 为什么reducer函数只返回代理?还原/工具包

    我的状态参数 有效负载 中的减速器函数返回唯一的代理 Proxy i 0 A P false I false D Handler null Target null IsRevoked true 我的切片是状态代理 import create
  • 是什么导致 android 异常“您需要在此活动中使用 Theme.AppCompat 主题(或后代)。”

    我正在尝试在 Android 中尝试新的 Material 主题 我目前陷入了这个异常 03 06 09 35 50 177 D AndroidRuntime 30607 Shutting down VM 03 06 09 35 50 17
  • JavaScript 只影响一个元素

    我不明白 边框仅在第一个项目上可见 为什么 HTML div div Content 1 div div Content 2 div div JavaScript document getElementById item style bor
  • SVN:通过比较文件或文件内容来确定版本的方式

    我有一个场景 我有一个文件 我需要知道该文件的源版本是什么 我可能对某个特定文件有数百个修订 并且有一个文件与其中一个或多个修订相匹配 有没有办法在 Tortoise Cornerstone 或通过命令行来做到这一点 如果问题不是最清楚 我
  • 如果 div 高度为奇数,则将其舍入为最接近的偶数

    基本上我想使用transformY 但子像素模糊非常烦人 并且仅在div为奇数高度时才会发生 由于高度取决于文本视口等 因此需要灵活 因此实际上需要它来获取 div 的高度 将其除以 2 四舍五入到最接近的数字 然后 x 2 这样它总是会产
  • Groovy 脚本读取 xml 文件并使用文件内容更新下一步请求

    要求 从文件夹中读取xml文件并将文件内容传递给Soap请求 Issue我试图使用groovy脚本读取保存在文件夹中的文件 但无法读取文件的内容 我在尝试打印 xml 文件的内容时遇到空指针异常 def fileList new File
  • 创建计算列并舍入

    我有 3 个numeric 18 2 我的表中的列 我想创建一个fourth column那是computed 我在 SSMS 中创建了计算列numeric 18 2 就像其他 3 列一样 当我运行SELECT针对我的新列 它计算得很好 但
  • 在 Nuxt 中设置输出文件夹的路径

    在 Windows 中工作 我可以使用 nuxt 项目生成静态站点 npx nuxt generate 我有兴趣为生成的静态文件设置输出文件夹 我正在通读https nuxtjs org api configuration generate
  • DBRefs(Mongo 文档引用)未立即获取

    我正在以最简单的方式使用 Mongo 与 Spring Data 结合使用 我有两个 第一类 实体 Documents A 和 B 其中 A 中有 B 的引用 DBRef 创建 A 和 B 时一切正常 但是 当读取对象 A 通过 Id 时
  • Javascript中是否有“0b”或类似的东西来表示二进制数

    我知道0x是 Javascript 中十六进制数字的前缀 例如 0xFF代表数字255 二进制数有类似的东西吗 我希望0b1111来表示数字15 但这对我不起作用 Update 较新版本的 JavaScript 特别是 ECMAScript
  • oracle中的条件选择语句

    我有两个表 分别称为订单和公共假期 如下所示 订单表 OrderId OrderDate 1 10 Mar 2017 2 12 Mar 2017 3 30 Mar 2017 公众假期表 HoliId HolidayDate 1 10 Mar
  • 如何设置 View.setVisibility(GONE) 动画

    我想做一个Animation当一个View将其可见性设置为GONE 不但没有消失 View应该 崩溃 我尝试过这个ScaleAnimation但随后View是折叠的 但布局只会在折叠之后 或之前 调整其空间大小Animation停止 或开始
  • 颜色不被子元素继承?

    我已尝试尽可能简化下面的 HTML 为什么CSS属性 color 01FFDD 被嵌套表的所有元素忽略 嵌套 CSS 使用 div 一般对我有用 但在这里不行 难道我做错了什么 div
  • 一系列承诺[重复]

    这个问题在这里已经有答案了 我正在写一篇文章 我必须从不同城市的 API 获取 json 数据并构建 DOM 到目前为止 我已经能够做到这两点了 唯一的问题是不同城市的API响应时间不同 因此 当我构建 DOM 时 它们的顺序与我调用函数的
  • 从itextsharp注释中弹出一个窗口来显示图像和文本

    我想在 C 项目中添加并弹出窗口 通过单击 itextsharp 注释来显示图像和文本 iTextSharp text pdf PdfAnnotation annot iTextSharp text pdf PdfAnnotation Cr