1
scnace 2017-01-09 11:16:59 +08:00 via Android 1
我们上次试了好几个 会有乱码 OR 格式错误 所以我们自己根据 WordXML 撸了一个 就是撸了个类似 SDK 的东西 把各种样式封装下就可以了 …
|
2
springmarker 2017-01-09 11:20:10 +08:00 via Android 1
先做好 word 的模板,然后导出 html 格式,然后 replace 需要填写的内容
|
3
Tink 2017-01-09 11:27:34 +08:00 1
我当时用过 phpoffice , 还挺好用的
|
4
murmur 2017-01-09 11:34:23 +08:00
没有也不可能有,随便打开一个页面,按下 ctrl-p ,看显示的什么乱七八糟的东西,就这个页面就可以
如果连页面本身都没有单独设置打印格式,那自己转换不是更难?强行把宽屏页面缩到一张 a4 纸,笨想也不可能 |
5
lvwzhen OP @scnace Word 的格式太难搞了,我先是 HTML 导出 PDF ,再从 PDF 转 Word 。 PDF 的格式好掌握,到了 Word 完全是乱的。
|
7
lvwzhen OP @springmarker 最后的 replace 步骤需要怎么实施呢,还请赐教,谢谢 😊
|
9
springmarker 2017-01-09 11:47:21 +08:00 via Android
@lvwzhen php 没有替换字符串的方法吗
|
10
springmarker 2017-01-09 11:51:32 +08:00 via Android 1
哦,对了, office 是识别 html 的格式的,你直接把 html 格式后缀改成 docx 就可以,这个方法并不完美,其实导出为 xml 格式再 replace 也可以
|
11
springmarker 2017-01-09 12:01:02 +08:00 via Android
不知道你的业务是需要不固定样式的页面导出 word 还是固定的模板导出 word ,我的方法只适用于后者
|
12
lvwzhen OP |
13
lygmqkl 2017-01-09 13:45:37 +08:00
|
14
springmarker 2017-01-09 14:06:08 +08:00 via Android
@lygmqkl 随便一个 html 改后缀肯定不行啊,先在 word 里面排好模板,需要填入的地方做标记,然后用 office 导出 html 或者 xml ,推荐 xml ,然后替换标记,其实这不是个好办法,相当于曲线救国,很容易出错,而且有图片什么的很麻烦,当时我也是很苦恼啊,七撞八撞搞得勉强能看,但是并不完美,第三方都找不到, wps 也不是也不能完美支持 office 吗,这样的需求我觉得还是很恶心的,尽量用 pdf 吧
|
15
murmur 2017-01-09 14:12:58 +08:00 1
xml->doc 这个思路是对的,但是 xml 的模板必须用 word 生成, word 是可以直接保存为 xml 的,然后这个 word xml 再另存为标准 doc 就 ok ,这个是格式损失最少的
何况、、、这个 xml 编辑起来也不那么容易,不过能转换就很好了 |
16
lvwzhen OP @lygmqkl .html 改为 .doc,再另存为.docx 是可以正常编辑保存的。但是太麻烦了,我现在是使用 XML to doc ,基本是无损转换,内容编辑 XML 就可以。
|
17
lygmqkl 2017-01-09 15:11:54 +08:00
@springmarker pdf 库有比 mpdf 更好的吗?
|
18
aitaii 2017-01-09 16:04:45 +08:00 1
做过 java 的,做一个 word demo 样式基本不会变,保存为 xml 文件,替换 xml 文件的关键内容,保存为 doc 格式的, docx 格式略微多了一些。
|
19
aitaii 2017-01-09 16:05:24 +08:00
图片按照格式转为 base64 的就可以了。
|
22
svenFeng 2017-01-09 22:43:59 +08:00 via Android 1
既然没有人说哈斯凯尔写的 pandoc ?
|
25
constantine008 2019-11-27 14:42:23 +08:00
9102 年了,不知道现在有没有更好的方法
|
26
redbelt 2020-07-03 14:33:52 +08:00
我提供一个能保证格式良好的思路:
xml 模版( docx 可以导出 xml ) + 模版引擎 |
27
vipbic 2022-02-22 14:03:54 +08:00
你是不是在做招标工具,我也遇到这个问题, 你是咋搞定的
|
29
iamniconico 2023-04-14 16:48:57 +08:00
当成 mhtml 打包进 docx
|