【问题标题】:Increase table row height in existing pdf增加现有 pdf 中的表格行高
【发布时间】:2018-01-09 20:57:05
【问题描述】:

我想修改现有 pdf 文档中表格行的高度。当行高增加时,我希望表格下方的内容自动向下移动。我尝试过使用hummuspdf,但似乎没有明确的方法来做到这一点。有没有办法以编程方式完成我的要求?

【问题讨论】:

  • 您使用的是哪个版本的 iText。在 iText 5 和 iText 7 中更改行高非常简单,但执行此操作的代码会因您使用的版本而有很大不同。显示您的一些代码。展示你的尝试。 (除非您正在谈论编辑现有的 PDF。无论您使用哪种软件,这当然是不可能的。)
  • “除非你是在谈论编辑现有的 PDF” - 我觉得情况就是这样......
  • 没错。我正在尝试编辑现有的 pdf。更新我的问题。谢谢!

标签: pdf itext hummus.js


【解决方案1】:

我想修改现有 PDF 文档中表格行的高度。

你不会喜欢这个答案:这在技术上是可行的,但比你想象的要困难得多。

这里有两个主要障碍:1) PDF 并非设计为可编辑格式。 2) PDF 文档没有表格的概念。

为了扩展 2),PDF 本质上包含一系列引用绝对位置的绘图和文本指令。表格只不过是一组文本指令和线条绘制指令,恰好在视觉上代表了一个表格。

这些说明在文件中甚至不必彼此靠近。完全有可能在文件顶部找到边框的线条笔划,在文件末尾附近找到除一条文本指令外的所有文本指令,最后一条指令在中间某处闲逛。

除非在创建过程中明确添加了结构(请参阅标记的 PDF),否则无法保证您以编程方式识别在视觉上类似于表格的指令集。

现在,假设您很幸运并且已经成功地做到了这一点,并且您现在想要增加表格高度,并且可能让其余的内容适应新的高度。现在 1) 开始发挥作用。由于 PDF 指令引用绝对坐标,因此您必须重新计算会受到影响的所有内容:构成边框的线条、表格内的文本、表格下方的所有内容等。

请记住,文档中表格下方的所有内容不一定都在文件中表格说明下方。

如果你真的成功了,我想很多人都会对你的解决方案非常感兴趣。

tl;博士:

这种看似微不足道的功能在常用的 PDF 库中不存在是有原因的,因为 PDF 格式使它成为一个难题。

【讨论】:

  • 别忘了,可能有一些页脚线显然不想向下移动,相反,您可能希望将移到页脚区域的前一行转到下一页.或者到可能在同一页面上的下一列。关于这些(以及更多)细节的机器可读信息不一定嵌入在 PDF 中,并且实现识别这些结构的例程也不是很简单......
猜你喜欢
  • 2018-06-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-04-18
  • 1970-01-01
  • 1970-01-01
  • 2017-03-16
  • 2011-12-23
相关资源
最近更新 更多