PDF m l运算符

PDF m l运算符,pdf,Pdf,我正在使用PDF解析器从PDF文档中提取行。它在生成pdf的特定文档上失败。它失败的最小pdf有一个1单元格1行表,但流显示一个2单元格1行表。我有以下问题:- 为什么流显示2个单元格而不是1个单元格 由于没有矩形,那些re操作符是用来做什么的 是谁生成这些指令的,是Word女士吗?还是PDF打印应用程序(可爱的PDF编写器) 以下是pdf格式:- 以下是相关流程:- stream q 0.12 0 0 0.12 0 0 cm /R7 gs q 647 5996 m 700 5996 l 70

我正在使用PDF解析器从PDF文档中提取行。它在生成pdf的特定文档上失败。它失败的最小pdf有一个1单元格1行表,但流显示一个2单元格1行表。我有以下问题:-

  • 为什么流显示2个单元格而不是1个单元格
  • 由于没有矩形,那些
    re
    操作符是用来做什么的
  • 是谁生成这些指令的,是Word女士吗?还是PDF打印应用程序(可爱的PDF编写器)
  • 以下是pdf格式:-

    以下是相关流程:-

    stream
    q 0.12 0 0 0.12 0 0 cm
    /R7 gs
    q
    647 5996 m
    700 5996 l
    700 5885 l
    647 5885 l
    h
    W n
    0 0 0 rg
    q
    8.33333 0 0 8.33333 0 0 cm BT
    /R8 11.04 Tf
    0.998087 0 0 1 77.64 709.2 Tm
    ()Tj
    ET
    Q
    Q
    q
    700 5996 m
    746 5996 l
    746 5885 l
    700 5885 l
    h
    W n
    0 0 0 rg
    q
    8.33333 0 0 8.33333 0 0 cm BT
    /R8 11.04 Tf
    0.998087 0 0 1 84 709.2 Tm
    ()Tj
    ET
    Q
    Q
    0 0 0 rg
    600 5996 4 4 re
    f
    600 5996 4 4 re
    f
    604 5996 3892 4 re
    f
    4496 5996 4 4 re
    f
    4496 5996 4 4 re
    f
    600 5884 4 112 re
    f
    600 5880 4 4 re
    f
    600 5880 4 4 re
    f
    604 5880 3892 4 re
    f
    4496 5884 4 112 re
    f
    4496 5880 4 4 re
    f
    4496 5880 4 4 re
    f
    q
    8.33333 0 0 8.33333 0 0 cm BT
    /R8 11.04 Tf
    0.998087 0 0 1 72 695.28 Tm
    ()Tj
    ET
    Q
    Q
    
    endstream 
    
    下面是使用上面的
    m
    l
    说明绘制的图像:-
    可爱的PDF Writer(快速浏览网页)显然使用Windows打印系统。一般来说,在这种情况下,您可以从MS Word打印,MS Word将尝试使用Windows方法绘制线条和其他项目,然后打印机驱动程序(本例中为可爱的PDF编写器)将其转换为PDF命令。也可以进行中间阶段,首先渲染为PostScript,然后翻译为PDF

    因此,这意味着Word女士要为两个单元格的绘制负责

    我在你发布的PDF图片中只看到一个矩形,所以我不确定这里发生了什么。另外,我无法解释其他re命令。第二幅图像中的矩形看起来像是一个围绕着一页两合一打印页面的框架,但坐标看起来很奇怪,所以也可能是其他东西

  • 为什么流显示2个单元格而不是1个单元格
  • 该流根本不显示任何单元格。只有带标签的PDF可能对表格和表格单元格有一定的了解,但您的PDF看起来没有带标签

    你(考虑到你的问题标题)的意思似乎是序列

    647 5996 m
    700 5996 l
    700 5885 l
    647 5885 l
    h
    W n
    

    但它们所做的只是将当前剪辑路径与矩形相交。因此,以下绘制操作仅限于相应的矩形。在许多情况下,PDF中都存在这种限制,表格单元格只是其中之一,表格单元格甚至不需要更改剪辑路径

    此外,考虑到前面变换矩阵的变化

    0.12 0 0 0.12 0 0 cm
    
    上面的矩形相当小,每个都可能足够容纳一个字符

  • 因为没有矩形,这些重运算符是干什么的
  • 嗯,它们是长方形

    高度和/或宽度非常小,但矩形仍然存在

    它们是填充矩形,参见f操作符

    长话短说,我们视为表格单元格的区域周围的“线”实际上是填充的矩形:

    604 5996 3892 4 re
    600 5884 4 112 re
    604 5880 3892 4 re
    4496 5884 4 112 re
    
    此外,单元的角点绘制为小正方形(每个角点两次):

    因此,这些re说明为您提供了我们认为是表格单元格的边界边和角

  • 是谁生成这些指令的,是Word女士吗?还是PDF打印应用程序(可爱的PDF编写器)
  • 您看到的具体说明是PDF说明。因此,您的打印应用程序将创建它们


    当然,您的打印应用程序会创建它们,因为这就是它解释MS Word输出的方式…

    您使用哪个应用程序或打印机驱动程序将Word文件转换为PDF?我使用的是可爱的PDF Writer。已编辑带有此信息的问题。流副本中所有Tj运算符的字符串参数均为空。对吗?为什么在你的屏幕截图中有一个“A”可见?很抱歉,我只是粘贴了线条部分,假设文本会增加混乱,但我现在已经粘贴了它。顺便说一句:为了弄清楚什么是什么,您可以尝试将PDF导入Inkscape。也许这会显示正常查看PDF时看不到的矩形。谢谢,是的,文档只有一个矩形,但流清楚地显示了2个,甚至其他。第二个图像只是使用matplotlib手工绘制的图像,坐标来自m和l运算符的操作数。
    604 5996 3892 4 re
    600 5884 4 112 re
    604 5880 3892 4 re
    4496 5884 4 112 re
    
    600 5996 4 4 re
    600 5996 4 4 re
    4496 5996 4 4 re
    4496 5996 4 4 re
    600 5880 4 4 re
    600 5880 4 4 re
    4496 5880 4 4 re
    4496 5880 4 4 re