《开源精选》是我们分享Github、Gitee等开源社区中优质项目的栏目,包括技术、学习、实用与各种有趣的内容。本期推荐的是一个可将PDF转为Word的Python库pdf2docx。 基于PyMuPDF提取文本、图片、矢量等原始数据基于规则解析章节、段落、表格、图片、文本等布局及样式基于pythondocx创建Word文档 主要功能 解析和创建页面布局页边距章节和分栏(目前最多支持两栏布局)页眉和页脚〔TODO〕 解析和创建段落OCR文本〔TODO〕水平(从左到右)或竖直(自底向上)方向文本字体样式例如字体、字号、粗斜体、颜色文本样式例如高亮、下划线和删除线列表样式〔TODO〕外部超链接段落水平对齐方式(左右居中分散对齐)及前后间距 解析和创建图片内联图片灰度RGBCMYK等颜色空间图片带有透明通道图片浮动图片(衬于文字下方) 解析和创建表格边框样式例如宽度和颜色单元格背景色合并单元格单元格垂直文本隐藏部分边框线的表格嵌套表格 支持多进程转换 pdf2docx同时解析出了表格内容和样式,因此也可以作为一个表格内容提取工具。 限制目前暂不支持扫描PDF文字识别仅支持从左向右书写的语言(因此不支持阿拉伯语)不支持旋转的文字基于规则的解析无法保证100还原PDF样式 示例 安装pipinstallpdf2docx 更新pipinstallupgradepdf2docx 我们可以使用Converter类或包装方法parse()将所有指定的pdf页面转换为docx。如果pdf文件包含大量页面,则支持批量处理。转换所有页面frompdf2docximportConverterpdffilepathtosample。pdfdocxfilepathtosample。docxconvertpdftodocxcvConverter(pdffile)cv。convert(docxfile)allpagesbydefaultcv。close() 另一种使用parse()的方法:frompdf2docximportparsepdffilepathtosample。pdfdocxfilepathtosample。docxconvertpdftodocxparse(pdffile,docxfile)转换指定页面 指定页面范围start(如果省略则从第一页开始)和end(如果省略则到最后一页):convertfromthesecondpagetotheend(bydefault)cv。convert(docxfile,start1)convertfromthefirstpage(bydefault)tothethird(end3,excluded)cv。convert(docxfile,end3)convertfromthesecondpageandthethirdcv。convert(docxfile,start1,end3) 或者,通过以下方式设置单独的页面pages:convertthefirst,thirdand5thpagescv。convert(docxfile,pages〔0,2,4〕) END 开源协议:GPL3。0 开源地址:https:github。comdothinkingpdf2docx