本文分享笔者参与过的一个有关 SAP document builder 使用的客户项目开发经验。
文档生成器是一个 ABAP webdynpro 应用程序,它可以让您将具有各种文档类型(html、txt、pdf、docx 等)的主要模板部分转换为具有各种文档类型的最终文档。
您可以通过启动 WebDynpro 应用程序 /IPRO/WD_DOCB 来使用它。 在预览选项卡中有多种输出类型。 1 表示默认的 docx 格式,11 表示 PDF 格式(通过 LiveCycle ES)。
默认情况下,SAP 仅支持 docx 输出,PDF 输出仅通过 SAP note 1154999 – 使用 Adobe/LiveCycle ES 将 Docb 文档渲染为 PDF 来提供。
虽然这篇博客讨论的是文档生成器,但实际上这个想法可以在其他情况下通用:只要大家有 Word 文档的二进制内容,就可以在应用程序中使用 Adobe LC ES 将其转换为 PDF。
有的开发人员可能会问,可以在 google 上搜索 PDF 转换,有大量开源解决方案和免费网络服务可以完成这项工作。
不过,出于安全性考虑,对于企业级用户来说,很难想象客户可以接受将高度机密的文档发送到未部署在其环境中的公共服务器去生成 PDF 文件。
当然,Adobe Livecyle ES 不是免费的。我们必须从 Adobe 购买许可证,当然对于企业级用户来说,这不是问题。
本博客是基于名为JBoss(窗口版)的试用版编写的,可以从下面的 Adobe 网站免费下载。
- 从下面的 url 获得安装步骤:
http://helpx.adobe.com/livecycle.html
在我的笔记本电脑上安装大约需要二十分钟,内存为 4G,Inter® Core™ i5 CPU 2.53GHz,Win7 64 位操作系统。
- 安装完成后,使用 http://localhost:8080/adminui 登录管理控制台。
如果你能看到下面的界面,就说明你的安装成功了。
如果遇到任何错误,请检查安装日志。
路径是:
我的笔记本电脑中的 C:\Adobe\Adobe LiveCycle ES4\Adobe_LiveCycle_ES4_InstallLog.log.
将 JBoss 服务器配置为操作系统中的服务。
可以在路径 C:\Adobe\Adobe LiveCycle ES4\jboss\bin\README-service.txt 的文档中找到如何执行此操作。
如果您在笔记本电脑上安装试用版,建议将服务启动类型设置为手动
。
服务器进程在我的电脑上,消耗了 1.9 GB 的内存。
- 点击
home->services->LiveCycle PDF Generator ES4->Create PDF
:
能在 server.log
看到成功生成 PDF 的日志。
然后从 note 里导入 docb_assmwml.lca
到 ABAP 系统。
- 在 ABAP 系统中创建 consumer proxy class.
通过复制注释附件中的代码来实现 BAdI.
最终就可以看到成功基于 word 文档生成的 pdf 文件: