`
JerryWang_SAP
  • 浏览: 1025630 次
  • 性别: Icon_minigender_1
  • 来自: 成都
文章分类
社区版块
存档分类
最新评论

使用Adobe lifecycle Enterprise Service将word文档转换成PDF

阅读更多

Currently I am working on a customer project regarding the usage of SAP document builder. Document builder is an ABAP webdynpro application which could allow you to main template part with various document type ( html, txt, pdf, docx etc ) into a final document with again various document type. You can find more information of it via SCN wiki here.

You can play with it by starting WebDynpro application /IPRO/WD_DOCB. In preview tab there are several output types. 1 means the default docx format and 11 means PDF format ( via LiveCycle ES).

 

 

By default only docx output is supported by SAP, the PDF output is just provided via consulting note “1154999 – Using Adobe/LiveCycle ES to Render Docb Document to PDF“. As the PDF output is fundamental for customer, I have to make it work. Unfortunately the consulting note itself just contains the common development steps like how to create ABAP consumer proxy class, how to maintain logical point and RFC destination, but not for Adobe Livecycle Server configuration and deployment etc. If you are interested with this topic, please continue to read.

Although this blog is talking about document builder but actually the idea could be used generically in other case: as long as you have a binary content of a word document, you can consume Adobe LC ES to convert it to PDF in your application.

You might ask that you can google “PDF conversion” and there are plenty of open source solutions and free web services to do the job. However, the customer I am working for is the Top one in its area in China with government background. Take security into consideration, can you imagine they can accept their highly confidential document is sent to a public server which is not deployed within their landscape? You can also googled many undocumented command usage regarding Acrobat Pro which can silently do several operations like print without UI. I didn’t try that since the undocumented means if I have any issues, I could not get any official support from Adobe.

(1) Of course the Adobe Livecyle ES is not for free. You must buy license from Adobe. This blog is written based on a trial version called “JBoss (window version)”, which you can download freely from Adobe website below.

 

 

(2) You can find detail installation steps from helpx.adobe.com/livecyc

 

 

For normal usage just choose “Turnkey”.

 

 

The installation took about twenty minutes in my laptop with 4G memory, Inter(R) Core(TM) i5 CPU 2.53GHz, Win7 64bit OS.

(3) Once installation done, log on with administration console with http://localhost:8080/adminui. The default user/password : administrator/password. For security reasons please change default password immediately.

If you can see the following screen, it means your installation is successful.

 

 

If you encounter any errors please check the installation logs. The path is: “C:\Adobe\Adobe LiveCycle ES4\Adobe_LiveCycle_ES4_InstallLog.log” in my laptop.

(4) Configure JBoss server as a service in OS. You can find how to do this in document in path “C:\Adobe\Adobe LiveCycle ES4\jboss\bin\README-service.txt”. If you are installing the trial version on your laptop, it is recommended to set the service startup type as “Manual”. Or else every morning when you launch your laptop, you must have a cup of coffee because you can really use it.

 

 

The server consumes 1.9G memory in my laptop:

 

 

(5) Do some health check on server. Click home->services->LiveCycle PDF Generator ES4: Click “Create PDF”:

 

 

Load any document with type other than PDF to try:

 

 

You may meet with following error messages:

(1)

 

 

In fact the JBoss server uses Adobe Acrobat XI Pro to convert the document into PDF format. The error message prompts you that either Acrobat XI Pro is not installed or there is something wrong with environment variable set up. Don’t mix Acrobat XI Pro with Acrobat Reader XI! Acrobat has far more powerful functionalities than the latter:

 

 

You can also download Acrobat XI Pro trial version from here:

 

 

Install and maintain the environment variable:

 

 

Also never forget to set the printer ADOBE PDF as default printer:

 

 

Then retry PDF creation and you should see the following screen:

 

 

And you can also see successful information in server.log:

 

 

It is always a good practice to analyze server.log (“C:\Adobe\Adobe LiveCycle ES4\jboss\server\lc_turnkey\log\server.log” ) if you encounter any issues.

(6) Import the docb_assmwml.lca attached in the note. In admin console Home->Services->Applications and Services, ensure the status of docb_assemwml is running:

 

 

(7) Create the consumer proxy class in ABAP system as usual. Implement the BAdI by copying the code from note attachment. The code could not be directly activated since the generated data proxy used in the code does not exist in your own system. You must manually replace them with your own data proxy.

 

 

You can find your own data type via SE80, expand Data Types:

 

 

Find the type ends up with BLOB, that’s it.

 

 

Replace all “zasmblog” in sample code with it. After that you can activate the code.

(8) Test the application. The lo_srv is instance of your consumer proxy class.

 

 

The request variable ls_invoke_request contains the binary content of original document in docx format, the response variable contains the converted binary content of PDF format, if successful. In case the conversion fails, you can again check the server.log to find root cause. Alternatively you can also use tcode SRT_UTIL to check.

 

 

ICM_HTTP_CONNECTION_FAILED: please firstly check whether your server is available, secondly check whether your RFC destination to server works or not:

 

 

ICM_HTTP_TIMEOUT: this error occurs occasionally in my testing since I install the server in my laptop and it took the server a huge time to try to convert a complex docx file into PDF format. If you also meet with this error, try to enlarge the time out threshold setting in admin console.

HTTP Code: 500 ( Internal Server Error ): it indicates some exception raised from server side when doing the conversion job. For example: the below detail explanation gives you a hint that the environment for Acrobat XI pro is not set properly.

 

 

And this error information demonstrates that the requested service “docb_assemwml” could not be found in server side. Either check in server side whether the status of it is running or check the name of service is correct.

 

 

If everything runs well you will see final PDF displayed.

 

 

You can also save the file locally and open it with any PDF reader. If the PDF is converted via trial version of Adobe Livecycle ES, you will see the corresponding water mark on it.

 

 

Summary: if you reach here I really appreciate your reading on this blog. Adobe LC ES has far more powerful functionalities and the feature in this blog is just a tip of iceberg. You can explore more in Adobe website. My team is responsible for Document builder in SAP. If you have any questions regarding it, just feel free to contact me.

要获取更多Jerry的原创文章,请关注公众号"汪子熙":

0
0
分享到:
评论

相关推荐

    20210826-dell 14G服务器使用Lifecycle安装windows server .pdf

    DELL 14G服务器通过F10 Lifecycle Controller安装Windows Server是服务器管理中常见的操作,这一过程涉及到服务器的初始化配置、RAID设置以及操作系统安装。本文档提供了详细步骤,适用于2021年8月26日的最新更新。 ...

    vRealize Suite Lifecycle Manager技术白皮书.pdf

    vRealize Suite Lifecycle Manager技术白皮书.pdf vRealize Suite Lifecycle Manager是一个旨在简化vRealize产品组合的整个产品生命周期内的部署和日常管理的解决方案。它可以加快产品安装和部署速度、简化日常管理...

    flutter plugin-android-lifecycle

    要使用flutter_plugin_android_lifecycle插件,需要将插件的依赖添加到pubspec.yaml文件中,并运行flutter pub get命令来获取插件的最新版本。 在Android插件的实现中,可以创建一个FlutterLifecycleAdapter类,该...

    ServiceLifecycle:Android Service生命周期

    ServiceLifecycle是Android应用开发中的重要概念,主要关注的是Android Service的生命周期管理。Service是一种在后台运行,不与用户界面直接交互的组件。它通常用于执行长时间运行的操作,如播放音乐、处理网络请求...

    阿里云 odps 文档.pdf

    阿里云ODPS文档 阿里云ODPS(Open Data Processing Service)是一种大规模数据处理服务,提供了基于SQL的数据处理能力。ODPS SQL是ODPS的一部分,提供了类似于SQL的语法,用于处理大规模数据。 ODPS SQL的特点 ...

    viewModel,liveData,lifecycle的简单使用demo

    在这个"viewModel,liveData,lifecycle的简单使用demo"中,我们将深入探讨这三个概念以及它们如何协同工作。 首先,`ViewModel` 是一个设计用于保存数据并跨页面生存的对象,即使在设备旋转或应用重新启动等配置更改...

    quality center11 word迁移到qc文档

    这个标题和描述指向的是将Word文档中的内容迁移到Quality Center系统内,具体是指将使用Word Add-in创建或编辑的文档(如测试用例、需求规格说明书等)同步回Quality Center数据库中,以便于团队成员之间的共享、...

    QTP/UFT 12使用文档及PDF帮助文档

    【QTP/UFT 12使用文档及PDF帮助文档】是一个综合性的学习资源包,针对自动化测试工具UFT(Unified Functional Testing,前身为QuickTest Professional)的12版本提供了详尽的指导。这个包包含了两份关键的学习材料:...

    Professional Application Lifecycle Management with Visual Studio 2013 无水印pdf

    Professional Application Lifecycle Management with Visual Studio 2013 英文无水印pdf pdf所有页面使用FoxitReader和PDF-XChangeViewer测试都可以打开 本资源转载自网络,如有侵权,请联系上传者或csdn删除 ...

    flex lifecycle

    Flex 是一款基于 Adobe Flash Platform 的开源框架,用于构建跨平台的应用程序。在 Flex 中,组件生命周期管理是其核心特性之一,它确保了应用程序能够在不同状态下正确地响应用户交互,并有效地管理资源。本文将...

    OGC - ITIL v3 - Service Lifecycle - Introduction ITIL

    OGC - ITIL v3 - Service Lifecycle - Introduction ITIL

    Dell Lifecycle Controller 设置 Dell PowerEdge 服务器

    Dell Lifecycle Controller 是一种先进的嵌入式系统管理技术 , 借助这种技术 , 可以通过 integrated Dell Remote Access Controller (iDRAC) 来实现远程服务器管理。在使用 Lifecycle Controller 的情况下 ...

    IBM网络安全AppScan_lifecycle_solution.pdf

    IBM网络安全AppScan_lifecycle_solution.pdf

    androidx-lifecycle-common-2.1.0.jar

    androidx-lifecycle-common-2.1.0.jar

    Camstar™ Enterprise Platform Portal Studio 用户指南-中文版

    6. 功能操作说明:文档提供了关于保存更改、在工作区中开发、使用ASPX转换器、查看联机帮助、在窗格中搜索对象等操作的说明。 7. 页面管理:包括创建页面、向页面添加Web部件、页面布局管理、预览和测试页面、页面...

    Lifecycle-Sorter,.zip

    3. **示例**:如果存在示例代码或应用,它们将展示如何在实际项目中使用Lifecycle-Sorter。这对于新用户理解和集成该工具非常有帮助。 4. **文档**:项目文档可能包括README文件,提供项目概述、安装指南、使用示例...

    Servlet_LifeCycle_Demo

    在这个示例中,我们将探讨Servlet如何启动、初始化、处理请求、服务多个请求、以及最终销毁。 首先,Servlet的生命周期分为四个主要阶段:加载和实例化、初始化、服务请求、以及销毁。 1. **加载和实例化**:当...

    RSA Governance & Lifecycle简要介绍.pdf

    RSA Governance & Lifecycle简要介绍

    The Security Development Lifecycle

    以完善软件开发周期为入手点,致力于全面提高软件的安全性能

Global site tag (gtag.js) - Google Analytics