【问题标题】:PDF : How a PDF table made by Latex is represented using PDF operators?PDF : Latex 制作的 PDF 表格如何使用 PDF 运算符表示?
【发布时间】:2013-12-23 10:52:25
【问题描述】:

我有一个由 Latex 制作的 PDF 文档,其中包含一个表格。

代表此表的 pdf 运算符是什么?我认为乳胶画了桌子。对吧?

因为我想使用 PDFBOX 库来提取它

当我解码 PDF 表时,我发现这些行与图形对象和文本相关。 q 和 Q 之间的线画一条线还是 对于表

stream
q
1 0 0 1 139.746 715.892 cm
[]0 d 0 J 0.398 w 0 0 m 100.9 0 l S
Q
q
1 0 0 1 139.746 703.738 cm
[]0 d 0 J 0.398 w 0 0 m 0 11.955 l S
Q
BT
/F8 9.9626 Tf 148.795 707.324 Td [(aaaa)]TJ
ET
q
1 0 0 1 186.626 703.738 cm
[]0 d 0 J 0.398 w 0 0 m 0 11.955 l S
Q
BT
/F8 9.9626 Tf 198.277 707.324 Td [(bbbb)]TJ
ET

【问题讨论】:

  • 不,我想从 PDF 中提取表格。这就是为什么我想知道它是如何表示的
  • 与 HTML 不同,例如,PDF 文本格式化语法中没有“table”命令。在特定坐标处都是“一些文本”。 -- PDFbox不是Java库吗?
  • 是的,它可以获取操作符,我可以处理它们。我只需要知道绘制这张表的运算符
  • 你添加的sn-p 这些操作符。我可以看到矩阵变换、线条和文本位置。这就是您将获得的全部内容 - 没有像 <table><tr><td>aa.. 这样的东西。
  • 太棒了。你知道如何理解画线的线吗?例如:[]0 d 0 J 0.398 w 0 0 m 0 11.955 l S 这可能是我的问题的答案

标签: pdf pdfbox


【解决方案1】:

命令的解释可以在Adobe's PDF Reference 1.7中轻松找到。

一次一个命令,记住PDF有postfix notation,我们可以在第4章“图形”中找到:

q                                   % save graphics state  (§4.2.1)
1 0 0 1 139.746 715.892 cm          % set transform matrix (§4.2.3)
                                    % --this is a simple 'translate' to (139.746,715.892)
[]0 d                               % set dash pattern to solid (§4.3.3)
0 J                                 % set line cap to Butt
0.398 w                             % set line width to 0.398 units
0 0 m                               % move "current point" (§4.4.1)
100.9 0 l                           % append straight line
S                                   % stroke the path (§4.4.2)
Q                                   % restore the graphics state

【讨论】:

  • 我们可以更新宽度(线)并保存在新文件中吗?(使现有pdf文件的线宽统一)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2022-09-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-12-13
相关资源
最近更新 更多