作者LPH66 (f0VMRgEBA)
看板java
标题Re: [问题] word套版取代变数产生doc/docx及转换格式
时间Mon Sep 16 17:02:07 2013
※ 引述《cyutdt (DT)》之铭言:
: 1. 请各位推荐可以将doc/docx里变数取代的元件,最好是doc的,docx也欢迎推荐
: 目前使用过xdocreport可以将docx元件替换
: 但他有一些bug(使用html style时换行後文字style会跑掉、换行不是Enter而是
: shift+Enter),已提出给作者
: POI、docx4j似乎都不行
: 2. 可以将docx转doc的元件
: 因为客户有些电脑仍未升级,希望可以将大量产出的docx转成doc
: 目前查得结果几乎没有这类的,只有一个要钱的Aspose.Words可以用
: 希望有免费的元件
: 希望是有使用过经验且没有BUG
: 谢谢!!
先说这不是 java 面向的回答, 而是我对於 doc/docx 的格式研究之後的结论
(之前为了某支程式所以研究过它们 (望))
首先是 2. 这样的东西
以 doc 的格式来说我觉得很难有 要有的话大概都会需要一点代价
因为比起 docx 来说, doc 格式里有太多细节要顾了
同样一份文件我相信以 java 输出成 docx 比输出成 doc 来得不容易出错
这是由於 docx 本质上是 xml 的 zip 压缩档
而处理这两样东西 java 都有内建
因此处理 docx 格式可以比较专注在文件内容上
相对的 doc 是一个特殊的二进位格式
要 java 来处理的话会需要费更多心力在这个格式上
(它实质上是一个小小的类似 FAT 的档案系统
里面有许多跟档案内的二进位位址相关的指标值
java 在这方面的处理是相对难搞的)
而且自从 Office 开始使用 docx 格式到现在也已经有五六年了
doc 格式已经算是有一点过时的格式 因此要寻求到支援就更加的不容易
也是因为同样的理由 1. 的工具你找得到的东西针对 docx 的会比较多
那以你的需求来看
我个人的建议是花个一至两个月研究一下你所要取代的功能变数或文字
在 docx 里是由压缩档里的哪一个 xml 里的哪一段描述
取代之後又是以怎样的方式来表现
这样就可以写出完全符合你的需求的处理软体
(你可以把想要研究的 docx 改副档名成 zip 即可打开来研究)
至於旧电脑的部份 微软已经提供了让旧 Office 读取新格式的外挂程式
http://www.microsoft.com/zh-tw/download/details.aspx?id=3
你可以善加利用
--
'Oh, Harry, don't you
see?' Hermione breathed. 'If she could have done
one thing to make
absolutely sure that every single person in this school
will read your interview, it was
banning it!'
---'Harry Potter and the order of the phoenix', P513
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 210.69.49.38
1F:推 PsMonkey:什麽? docx 已经出来五六年了 [死] 很久没用 office 了 09/16 17:04
2F:推 mars90226:从office 2007开始,到现在也六年了 09/16 18:50