Results 56 comments of dothinking

感谢提供测试文件。 > 我用C++程序打印的pdf , 导出的pdf 当文字粗体且带有下划线时,程序报错提示 : Ignore page 1 due to making page error: list index out of range 两个下划线与周围的边框被错误当成表格来解析,却又无法得到一个合理的表格结构,因此报错。将来会对表格解析这一块做一个系统改进。 > 另外当文字是一个 粗体的数字时 ,比如粗体 1 转成的 word 显示两个 1...

Analyzing document...这一步会提取PDF中的图片,并检查图片是否相邻、相接,以便将这些扫描过程中被分割的小图片(取决于扫描仪)重新拼接为人眼所见的大图。例如下图的每一个矩形框都是一张被分割的小图片。 ![图片](https://user-images.githubusercontent.com/13885442/173523509-f5ba88a6-8080-439d-a15b-32245448ae78.png)

耗时长的直接原因如 @ZHangZHengEric 所说,这一步用O(n^2)的算法检查两两相交情况。但目测之下,琐碎图片的数量远小于1000,经测试还不至于出现明显的等待时间。进一步发现,使用上游库`PyMuPDF`提取图片时出现问题,导致考虑了大量重复图片。针对这个问题,过滤重复图片即可,参考下面代码增加3行。 ```python # line ~100 from ImagesExtractor.py ic = Collection() unique_rects = set() # 增加行1:集合去重 for item in self._page.get_images(full=True): # image item: (xref, smask, width, height, bpc, colorspace,...

Could you please provide your pdf file for issue tracking? Thanks in advance.

> int' object has no attribute 'value 转换PDF报这个错误 page.parse(**kwargs) 这个方法 参考 #120 #111

@mjTree 从结果来看可能是把上面柱状图的一些边框线当作表格来解析了,目前对矢量图的处理确实还存在一些问题。 抱歉之前没有及时下载你提供的测试文件,现在网盘分享已经过期了,方便的话麻烦重新分享一下。谢谢。

不知是否方便上传样例pdf,以便于查找原因?感谢。

这是`pdf2docx`的一个长期目标。 OCR相对成熟,因此文本内容的获取和重建问题不大,但是格式重建相对困难。不同于普通PDF文件可以直接提取路径(矢量图,表格线,图形都可视为路径`path`),扫描版PDF需要从图片中识别这些元素,而这些元素的粒度又比版面分析的结果要精细,因此需要很多额外工作。 图片的识别和重建依赖于版面分析,我最近也在看一些版面分析的论文,基本都是机器学习的方法。如果说保存训练好的模型做本地识别,那么感觉只适合做服务端的工具,很难像现在作为python包分发使用:一个是模型文件太大不利于分发,另一个是需要用户安装机器学习工具链增加使用难度。 至于你提到的版面分析接口,听起来是个不错的方法,不知道有没有推荐?

这个报错截图看不出问题,请把报错记录中显示原始出错位置的部分截图看看。

问题的源头是倒数第四行:`get_texttrace()`,这是上游的一个处理PDF的库`PyMuPDF`的方法,已经超出我能控制的范围了。 https://pymupdf.readthedocs.io/en/latest/functions.html#Page.get_texttrace