当前位置: 首页 > Web前端 > HTML

为什么PDF转WORD是一个历史问题

时间:2023-04-02 13:42:04 HTML

PDF转Word是一个非常非常普遍的需求,可以说大家都很害怕,为什么这么普遍的需求这么难,就看为什么会有这样的需求:PDF文档遵循iOS32000规范,是Adobe推出的一种文档格式。之所以应用如此广泛,是因为PDF准确定位了每个字符的坐标,并根据坐标绘制出各种形状。使用PDF格式传输和打印文件可以保证格式的一致性,而且很多PDF文件可以用于阅读、显示和打印,但编辑难度很大,如格式调整、文字修改、样式调整等,那么PDF转Word的历史需求就衍生出来了。但是,由于两者使用的编码标准和布局机制完全不一致,转换起来会非常复杂。通用工具要么格式乱,要么内容乱,很难满足客户最初的期望。难点在于建立从PDF的基于元素位置的格式到Word的基于内容的格式的映射。PDF文档实际上没有段落和表格的概念。PDF转Word需要做的就是将PDF文档中的“文字周围的横线和竖线”解析成Word的“表格”,将“文字和下方的横线”解析为“下划线文字”等等。两种工具和两套规则。自古以来,两种工具之间的兼容转换,除非是一家之主,否则都会保留共同的标准和接口,以达到良好的兼容性,但Adobe和微软都是科技巨头,软件功能都非常强大全面,很难完美匹配所有规则。对于报表用户,很多用户会将报表理解为报表,而报表自然会与Word相关联,因此希望能够将页面显示的内容转换成Word文件,实现存档、编辑等功能。ActiveReportsJS是一款不与后端关联的前端报表开发工具。因此,如果要将显示的HTML生成Word,研发团队经过一番研究后发现整个过程会非常复杂和困难。正如他们的反馈:“这不是一个冲刺就能解决的问题”,PDF.js背后有强大的Mozilla支持,更何况Word文档是依赖微软的Offic开发组件生成的。但在实际接触客户时,很多用户会过来询问相关内容,包括如何使用报表设计审批表、人事简历、测试报告等常见的Word报表。用户对结果很满意,唯一不满意的是报告结果只能生成pdf。这是传统,是核心需求,也是痛点。本葡萄有些着急,不相信这个邪灵。前端工具那么多,就没有这么好用的工具?我开始搜索,打开谷歌,把我需要的词汇全部挤出来,输入我需要的关键词,找到了如下结果。乍一看,第一项是完全一致的。Node.js虽然是服务器,但也不是不能接受,只要有解决方案即可。使用cloudmersive-convert-api-client转换任意文件格式https://cloudmersive.medium.c...看起来很有趣代码很简单:但是仔细看代码,**果然是上帝派我们来的时候something价格在背面标明:我想,如果可以的话,我会付钱的。毕竟我们也是专业做付费商业软件的er,版权意识还是要有的。JS库提供了近几十个处理和转换不同格式文件的API和Class:除了PDF转Word,还有其他文件格式的转换,使用起来也非常简单。转换结果评价:可以识别本地PDF文件,转换结果:可以保证90%的格式和风格符合要求。不能保留图片的底色,也不能将表格直接导入为Word表格。只能作为文本使用,不能直接导入页眉页脚信息。Word的页眉和页脚只作为文本的一部分来损失产品价格,因为整个转换API只是CloudMersive的一个API函数,整个产品还有安全检查等其他功能,所以产品是收费的每月并同时进行。大家可以自行搜索了解,不过他们的网站提供了几个非常好用的文件转换工具。无需登录,直接获取转换结果https://cloudmersive.com/tools。既然有直接暴力破解Word文档的PDF流,可不可以??通过查找,发现用JS直接将PDF对象流转为Word文件是非常困难的,而且已经验证ARJS导出的PDF文件可以用Word软件打开,所以突然想到是不是我可以找到一个中间件来直接将PDF流转换为doc或docx格式,但经过搜索和尝试,我只是在.pdf前面添加了document.docx.pdf。这个方法失败了。和技术大牛聊天后发现,pdf和word虽然本质上是二进制流,但是内部声明等是各自文件的独有属性,不能直接转换。要保存什么文件流。而且PDF和Word有两大科技公司背书,直接转换必须用专业工具,所以这条路走不通。CurvesaveCoder:HTMLtoPDF将是一个伟大的工作?所以,退而求其次就是HTML无所不能,HTML什么都可以转换,HTML转PDF,HTML转图片,HTML转Excel等等,那么ActiveReportsJS提供了导出报表为相同格式的HTML文件的能力,那么这里方法来了,我直接把HTML转成Word不是更方便吗?谷歌搜索结果发现这种信息比PDF转Word多一百倍,操作很简单看代码:只有3步:1.将报告导出为HTML`varpageReport=newARJS.PageReport();pageReport.load('./BandedReport.rdlx-json').then(function(){returnpageReport.run()}).then(function(pageDocument){returnHTMLExport.exportDocument(pageDocument)})`2。处理HTML代码,添加office标签3.创建标签,直接下载doc格式`varfileDownload=document.createElement("a");document.body.appendChild(fileDownload);fileDownload.href=sourceHTML;fileDownload.download='document.doc';fileDownload.click();document.body.removeChild(fileDownload);`看结果:效果很好转换结果评价:样式丢失,包括字体颜色、背景颜色、形状图像丢失表格可以直接导入为Word表格图标并保留4.总结二本次转换的结果总结如下:经过一些尝试,算是一种Workaround。考虑到报表报告一般都是文本形式,样式比较简单,使用html转Word是一种快速简洁的方法。另存为Word或进行二次编辑。这个葡萄也在努力想办法把HTML的样式保留到Word中。如果有新的进展,我们会更新第二篇文章。好迈comIT交易平台