如何从生成的pdf表中复制文本?

高的

我使用了itext7,用于创建表的代码非常简单:

    float[] tableWidth = {75, 75, 75};

    Table table1 = new Table(tableWidth);
    table1.addHeaderCell("head \n1");
    table1.addHeaderCell("head \n2");
    table1.addHeaderCell("head \n3");
    table1.addCell("column 1");
    table1.addCell("column 2");
    table1.addCell("column 3");

    Table table2 = new Table(tableWidth);
    table2.addHeaderCell("head 1");
    table2.addHeaderCell("head 2");
    table2.addHeaderCell("head 3");
    table2.addCell("column 1");
    table2.addCell("column 2");
    table2.addCell("column 3");

    document.add(table1);
    document.add(new Paragraph("\n"));
    document.add(table2);

我创建了两个表,唯一的区别是:table1中的头是换行“ \ n”:

到这里为止没有任何问题。但是我的问题是,当我尝试从生成的PDF文件中选择表格并将其复制并粘贴到MS-Word时,我得到了不同的结果:table1的头以垂直顺序复制:

就像在我的实际代码中一样,我必须在表头中使用“ \ n”,因此无法正确复制粘贴该表,有什么线索吗?

mkl

就像在我的实际代码中一样,我必须在表头中使用“ \ n”,因此无法正确复制粘贴该表,有什么线索吗?

您认为通常可以按照尊重表结构的方式从PDF复制和粘贴表内容的假设是错误的。

在PDF中,绘制表1的说明为:

  • 在38.5,790.83处绘制“头”
  • 在38.5,772.85处绘制“ 1”
  • 在113.5,790.83绘制“头”
  • 在113.5,772.85处绘制“ 2”
  • 在188.5,790.83绘制“头”
  • 在188.5,772.85处绘制“ 3”
  • 画线从35.75,806到261.25,806
  • 画线从35.75,765.04到261.25,765.04
  • 画线从36,806到36,765.04
  • 画线从111,806到111,765.04
  • 画线从186,806到186,765.04
  • 画线从261,806到261,765.04
  • 在38.5,749.87绘制“第1列”
  • 在113.5,749.87绘制“第2列”
  • 在188.5,749.87绘制“第3列”
  • 画线从35.75,765.04到261.25,765.04
  • 画线从35.75,742.05到261.25,742.05
  • 画线从36,765.04到36,742.05
  • 画线从111,765.04到111,742.05
  • 画线从186,765.04到186,742.05
  • 画线从261,765.04到261,742.05

因此,不再有立即显示存在表的指示。因此,一种简单的文本提取机制可以在绘制字符串时继续提取字符串,每当y坐标发生变化时都插入换行符,而不用区分是向上还是向下。结果就是您所观察到的。


不过,PDF可以选择用HTML'ish指示符标记绘图指令。使用iText 7,您可以在PdfDocument实例中激活标记机制

PdfDocument pdfDocument = new PdfDocument(pdfWriter);
pdfDocument.setTagged();
Document document = new Document(pdfDocument);
...

(摘自TablesToCopyAndPasteFrom.java

现在,您的表1像这样复制并粘贴到Word

 head1      head2       head3
column 1    column 2    column 3

作为实际的Word表。


不幸的是,仍然存在一些小故障,例如“头部”和数字之间的间隔消失了。我不确定应该归咎于谁,iText,Adobe Reader或Word。


PS: 1月27日,在签入的iText开发版本7.0.2-SNAPSHOT中似乎修复了“头”和数字之间消失的小故障

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何从生成的pdf表中复制文本?

来自分类Dev

如何自动复制网站中随机生成的文本

来自分类Dev

如何以编程方式更改/保护PDF中的文本内容,使其不再可复制文本?

来自分类Dev

如何从输入中复制文本

来自分类Dev

Puppeteer 生成的 PDF 复制/粘贴文本会产生奇怪的字符

来自分类Dev

如何使用扫描中的可复制文本创建高保真PDF?

来自分类Dev

如何在数据表中启用“复制”,“ PDF”,“ Excel”按钮

来自分类Dev

如何从PDF复制文本并将其粘贴到其他保留文本格式的应用程序中?

来自分类Dev

如何将Excel工作表中的文本和图表复制到Outlook正文?

来自分类Dev

修复 weasyprint 生成的 PDF 中的引导表

来自分类Dev

如何自动在PDF文件中复制页面?

来自分类Dev

PDF中的文本在复制时变成乱码,但显示正常

来自分类Dev

如何从JavaScript的段落元素中复制文本?

来自分类Dev

如何自动在pandas.to_latex()生成的LaTeX表中包装文本?

来自分类Dev

VBA - 如何从表中复制内容

来自分类Dev

如何将SQL表结构生成为文本表?

来自分类Dev

无法从pdf文件复制文本

来自分类Dev

从IE复制随机生成的文本

来自分类Dev

如何从多个表中复制到表中?雪花

来自分类Dev

javascript pdf表生成

来自分类Dev

如何根据活动工作表中的特定行和列号将文本从活动工作表的列复制并粘贴到另一工作表

来自分类Dev

如何获取Selenium中JS生成的文本?

来自分类Dev

如何少复制文本

来自分类Dev

如何少复制文本

来自分类Dev

如何从PowerShell复制文本

来自分类Dev

在 JLabel 中复制的文本

来自分类Dev

生成的 PDF 文件中未显示数据库表

来自分类Dev

如何OCR PDF文件并获取文本存储在PDF中?

来自分类Dev

如何使用PHP中的代码复制网页的文本

Related 相关文章

  1. 1

    如何从生成的pdf表中复制文本?

  2. 2

    如何自动复制网站中随机生成的文本

  3. 3

    如何以编程方式更改/保护PDF中的文本内容,使其不再可复制文本?

  4. 4

    如何从输入中复制文本

  5. 5

    Puppeteer 生成的 PDF 复制/粘贴文本会产生奇怪的字符

  6. 6

    如何使用扫描中的可复制文本创建高保真PDF?

  7. 7

    如何在数据表中启用“复制”,“ PDF”,“ Excel”按钮

  8. 8

    如何从PDF复制文本并将其粘贴到其他保留文本格式的应用程序中?

  9. 9

    如何将Excel工作表中的文本和图表复制到Outlook正文?

  10. 10

    修复 weasyprint 生成的 PDF 中的引导表

  11. 11

    如何自动在PDF文件中复制页面?

  12. 12

    PDF中的文本在复制时变成乱码,但显示正常

  13. 13

    如何从JavaScript的段落元素中复制文本?

  14. 14

    如何自动在pandas.to_latex()生成的LaTeX表中包装文本?

  15. 15

    VBA - 如何从表中复制内容

  16. 16

    如何将SQL表结构生成为文本表?

  17. 17

    无法从pdf文件复制文本

  18. 18

    从IE复制随机生成的文本

  19. 19

    如何从多个表中复制到表中?雪花

  20. 20

    javascript pdf表生成

  21. 21

    如何根据活动工作表中的特定行和列号将文本从活动工作表的列复制并粘贴到另一工作表

  22. 22

    如何获取Selenium中JS生成的文本?

  23. 23

    如何少复制文本

  24. 24

    如何少复制文本

  25. 25

    如何从PowerShell复制文本

  26. 26

    在 JLabel 中复制的文本

  27. 27

    生成的 PDF 文件中未显示数据库表

  28. 28

    如何OCR PDF文件并获取文本存储在PDF中?

  29. 29

    如何使用PHP中的代码复制网页的文本

热门标签

归档