一般动作
登录
Wiki: BROPEN ▼: Document Index
»
Space: FAQ ▼: Document Index
»
Page: PDF套打失败
搜索
zh
页面动作
导出 ▼: 以PDF格式导出 以RTF格式导出 以HTML格式导出
更多动作 ▼: 打印预览 察看源码
欢迎进入Wiki » FAQ » PDF套打失败?

# PDF套打失败?

在2015-06-30 19:36上被李小翔修改
评论 (0) · 附件 (5) · 记录 · 信息

供稿人：张文秀

PDF套打的大致过程是：先导出word的xml文件，然后通过文档转换服务BroFileConvert转换成pdf文件；而BroFileConvert实际做是把xml文件用word打开，然后另存为为pdf文件后返回。

生产机有时候会遇到同一个流程，之前导出功能都好使，突然有一个单子的导出pdf不能导出而且后台报 java.net.SocketTimeoutException: Read timed out，这种情况大多数是生成的xml文件word不能正常解析，可能是数据中有特殊字符导致的或者是因为代码问题生成的xml不正确，BroFileConvert不能返回pdf文件导致超时。

查看文档转换服务器的控制台，可以看到下面的日志输出：

注：BroFileConvert日志也会显示报错信息Word文件打开失败,其实这里也会显示出错位置831行

解决方案：

1. 将PDF套打改成Word套打
2. 使用Word打开导出的doc文件，检查错误的代码并修复

具体步骤如下。

在页面上中找到隐藏域 <g:hiddenField name="_export_format" value="pdf" />， 把value值改成doc：

把相应的 export.pdf.gsp 视图复制、并改名成 export.doc.gsp 放在相同目录下，此时，再点击页面上的导出按钮，得到的是后缀为doc的Word的文件：

用Word打开导出的doc文件，就会有提示：

看这个错误是名称字符非法，而且还有具体位置，把这个导出文件用文本编辑器打开，到相应的行数就可以看见是哪里的数据有问题了：

可以看到，831行是特殊字符导致Word打开失败，这个就可以找到对应是那个数据有问题了，然后在 gsp 中找到相应代码加 “.encodeAsHTML()”即可。

BTW：Excel、Word导出通常也可以使用这种方式来定位、处理问题。

标签： BroFramework BroFileConvert 套打
在2015-06-30 19:32上被李小翔创建

- 评论 （0）
- 附件 （5）
- 记录
- 信息

# 快速链接

- 首页
- 新闻动态
- FAQ

Copyright © 2013 北京博瑞开源软件有限公司
京ICP备12048974号