繁体   English   中英

如何动态地在itext PdfPTable中添加一行?

[英]How to add a row in a itext PdfPTable dynamically?

我必须使用itext创建一个pdf文件,其中将包含一个按钮,单击时应在现有PdfPTable添加一行。 我写了一些代码来创建PushbuttonField 在尝试设置操作时,我只能找到PdfAction.javaScript 我无法弄清楚如何在表中添加一行。 我尝试在线搜索,但我只能找到PdfAction.javaScript

任何帮助将不胜感激。 谢谢。

创建PDF文件时,可以在画布上绘制文本,线条和形状。 当您向Document添加PdfPTable时,也会发生这种情况。 如果您查看PDF页面的语法,将无法识别表格。 您会找到文本(单元格的内容),线条(边框)和形状(背景),但找不到表格。 如果表分布在不同的页面上,则一页上的“表”将不知道它与另一页上的“表”相关。

当然,您可以通过引入标记的内容并通过创建结构树来向文档添加语义结构,但是我们不能使用称为标签PDF的机制来使PDF具有“可编辑性”,就像Word文档可编辑性一样。 。 带有标记的PDF(除其他外)用于允许辅助技术向视障人士显示内容(例如,在PDF / UA中)。 结构的存在并不会改变所有文本,所有线条和所有形状都添加在绝对位置的事实。

这与HTML截然不同,HTML的<table><tr><th><td>在页面呈现时即被计算。 在HTML中,当您调整浏览器窗口的大小时,此位置甚至可以更改。

PDF中没有这样的东西(除非您使用XFA(*),这是从ISO 32000-2开始不推荐使用的技术)。 页面上的所有内容都有固定的位置,硬编码到页面的内容流中。 更改PDF查看器窗口的大小不会更改页面内容的位置。

因此,您的问题无效。 无法在PDF中创建向表中添加一行的按钮,因为:

  1. 在许多情况下,都没有表格:绝对位置上只有一堆文字,线条和形状,
  2. 即使有一个表(使用标记PDF)的概念:该表的视觉represenation固定在创建时 ,它不能在消费时代的改变。

您希望像使用PDF编辑 一样使用普通的PDF查看 由于上述所有原因,这是不可能的。

(*)XFA因各种原因而被弃用。 最重要的原因之一是缺乏对XFA的支持。 支持XFA的查看器并不多。 如果您要提出一个后续问题,询问*“如何创建XFA文档?”,答案将是: “不要这样做!” 创建XFA非常复杂,一旦成功创建XFA表单,您会发现许多客户将无法使用该文件,因为他们的查看器不支持该格式。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM