当前位置: 首页 > news >正文

代码处理doc文档

需求

对一份doc文档进行操作,读取内容、把内容存储起来、修改内容,再把内容放回原文档输出新的word文档;内容主要涉及:文本、文本样式、表格

难点

  1. doc文档属于老旧文档(本身格式属于二级制) 开源工具如poi对doc支持有限
    • 能实现简单的需求如,手工处理一份文档在文档中用占位符号标明要修改的地方,再用新的内容去替换掉文档中的符号(需要用到poi中一个replacexx的方法)
  2. 开源工具如poi对doc支持有限,想要插入一个新的表格,这个表格是无法设置表格属性的
    • 官方文档也没有找到设置表格的属性方法,调用insert表格的一个方法,结果:(1)一个丑陋的缩在一起的表格,你的内容不好插入表格,同时内容就算插进去了,你会得到一个更丑陋的表格(样式无法设置,文本撑大了表格)(2)插入了表格,文档其他地方格式损坏如页脚、页眉
  3. doc属于二级制文件,它对于各个区域的界定相当于是用一个游标界定某些区域是什么(标题、页脚、页眉等),随意插入文本,但是poi工具不会帮你去移动游标,不可比避免损坏文档(内容跑去了其他区域)

解决方法

  1. 有实力,可以使用付费库Aspose处理doc文档,这个库是商业库(免费用时文档有水印)很好的支持doc老旧二进制的一些处理
  2. 手动处理,在文档进入代码处理之气那,手动将文档用工具另存为docx版本(如wps)
  3. 文件很多,需要尽可能代码流程化,需要用到外部工具LibreOffice转换(代码+服务器做一个类似于手动用wps转换的步骤)工具开源,也是专栏后续使用的工具安装使用LibreOffice
  4. 通知上游系统,能否直接提供新版本docx文档
http://www.jsqmd.com/news/1090661/

相关文章:

  • alphaxiv可以直接翻译论文
  • TI DRV612EVM评估模块:基于DirectPath™技术的无输出电容线路驱动器设计详解
  • 5分钟零基础入门:Kafka-UI可视化集群管理终极指南
  • 思源黑体TTF:如何快速获取专业级免费中文字体?
  • Rust的#[derive(Default)]
  • 每个线程只管自己的变量,性能却不如单线程?问题出在缓存行 _
  • 血液透析和胶体渗析之间的关系
  • Kafka集群管理太复杂?这款开源Web UI让你5分钟上手
  • 技术写作的价值与技巧
  • Jellyfin Bangumi插件完整指南:打造智能动漫库的终极方案
  • Windows风扇控制神器:Fan Control让您的电脑既冷静又安静
  • LeetCode 287. 寻找重复数:从直觉到 Floyd 判圈的完整推导
  • Python的__init_subclass__验证
  • 3分钟掌握B站缓存视频转换:m4s转MP4完整教程
  • 自动驾驶极极极极简发展史
  • 操作系统内存管理
  • 猫抓:如何解决网页视频无法下载的三大难题?
  • AI写专著全流程解析:AI工具如何助力快速完成20万字专著创作?
  • 【共创季稿事节】鸿蒙原生 ArkTS 布局方式之 @Extend 扩展方法深度解析
  • 哈夫曼编码和香农-范诺编码的性能对比 P124302171陈新阳
  • android compose TimePicker 时间选择器 使用
  • (一)Kotlin—基础语法
  • MySQL 查询优化的执行计划分析
  • KingbaseES数据库空间管理实战:精准掌控库与表的数据体量
  • 欺诈检测化技术行为分析模型与实时规则引擎
  • 技术桥接的抽象实现分离设计
  • ShiroExploit v2.51实战解析:Apache Shiro反序列化漏洞自动化利用与防御
  • 竞争监测化技术竞品功能对比与市场情报收集
  • TestDisk终极指南:5步快速恢复丢失分区与数据
  • Paperclip - 多Agent编排管理平台详细介绍