4

我有:LiveCycle 服务器(ES3、JBOSS)、Workbench、Designer。使用 LC Desginer 我将 PDF 转换为 XDP - 现在是模板。现在我需要将该 XDP 文件转换为 PDF。所以,我想我应该以某种方式通过 HTTP 请求调用 LiveCycle 服务器,在这个请求的正文中,我可以发送 XDP 文档的正文。我从 LC 需要的只是 PDF。

看起来很简单的任务,但我找不到任何信息如何做到这一点。我看到了很多如何在 Java 中执行此操作的示例,但我不需要 Java,我需要通过 HTTP(REST 端点或 SOAP,如果不可能)来执行此操作。

也许我需要在 Workbench 中创建一些“应用程序”?如果是这样,是否有任何分步文档?或者也许有人可以解释我,如何做到这一点。也许 ES3 Server 中已经有内置应用程序 - 我认为这是非常常见和简单的情况。

UPD:我已经为这个问题在 Odesk 找到工作,我保证在这里发布解决方案以与社区分享知识

4

2 回答 2

2

正如所承诺的,这是解决此问题的方法:

  1. 仅仅将 PDF 放入 LiveCycle Designer 是不够的。您完全需要在 LC Designer 中设计表格。您可以将 PDF 用作模板,但对于您希望通过自定义数据完成的所有内容,您需要在 LC Designer 中添加对象(查看“插入”菜单,尝试表格或文本字段)并添加数据“数据视图”选项卡中的连接。我认为这对专业人士来说很容易,但初学者可能需要一些时间。例如,将您的工作结果保存为Template.xdp文件。
  2. 此外,您现在有了 XML 文件的示例 - 数据源。让我们命名DataSource.xml
  3. 现在我们可以安装 LiveCycle Server。最适合 LC ES3 的是 RHEL 5.5(我们花了大约 2 天时间才找到操作系统和设置的正确组合)。你需要一个聪明的系统管理员(或者只是在 Adob​​e LiveCycle 方面有经验:))
  4. 服务器现在正在工作,您可以看到 Web 界面,所以让我们在 Adob​​e LiveCycle Workbench ES3 中创建应用程序。添加一个具有新名称的应用程序并向该应用程序添加一个进程。描述过程的所有步骤需要很多词,只需看一下结果的屏幕截图(还要注意变量): 步骤1 第2步 第 3 步

  5. 现在最简单的部分 - 通过 HTTP 请求调用这个应用程序。但是我们不能只向 Adob​​e LiveCycle 发送通常的 POST 请求 :) 我们必须将 2 个文件 (Template.xdpDataSource.xml) 的内容作为 multipart/form-data 发送,并且这些部分的名称是输入变量的名称(在我的示例中是xmlTemplateand xmlData) . 并且不要忘记带有基本授权凭据的授权标头。

  6. 在响应中,您将收到 PDF 文档的 base64 编码正文。

感谢Thierry Stortenbeker提供此应用程序以及帮助和耐心。

于 2013-03-21T14:27:26.837 回答
1

是的,您必须使用 Workbench 创建一个 LC 应用程序。这是如何做到的:

  1. 使用 File -> New -> Application 在工作台中创建一个新应用程序。
  2. 使用应用程序的右键菜单创建一个新进程。
  3. 从活动中放入 renderPDF 表单活动并将其命名为“renderPDFForm”。
  4. 选择 renderPDF 表单活动以使用底部的变量窗格添加变量。
  5. 添加一个“Document”类型的变量并将其命名为“inputXDP”。我们将使用它来传递 xdp 文件。将其标记为“输入”变量。
  6. 添加“文档”类型的变量并将其命名为“outPDF”。将其标记为“输出”变量。
  7. 现在双击 renderPDFForm 活动,这将在左侧打开一个属性编辑器。
  8. 如果尚未展开,请展开“输入”部分。确保从变量中提取“表格”。然后从下拉列表中选择“inputXDP”。
  9. 如果尚未展开,请展开“输出”部分。确保从变量中提取“渲染表单”。然后从下拉列表中选择“outPDF”变量。
  10. 现在通过应用程序上的右键菜单部署您的应用程序。

这就对了。你准备好了。现在保存该过程并双击“默认起点”以获取将公开此服务的其余 url。其余网址应如下所示http://localhost:8080/rest/services/RestFormRender/renderForm:1.0。这里 RestFormRender 是应用程序的名称,renderForm 是进程的名称。现在对此 REST url 进行 GET/POST 调用,并在“inputXDP”请求参数中指定 XDP 字节。

于 2013-03-19T10:29:10.020 回答