With CE 7.20 the PDF Document API is published and officially available (PDF Document API). You can now use it outside the WebDynpro framework.
In Part I I will explain the basics of the “SAP Interactive Forms by Adobe” solution. Part II shows how to create a dynamic PDF form and Part III will explain the retrieval of the user-entered data from a PDF form.
SAP has integrated two technology components from Adobe into SAP Netweaver Application Server
- Adobe LiveCycle Designer is a graphical layout tool for creating forms in an easy-to-use, drag-and-drop manner.
- Adobe document services (ADS) are a set of runtime services deployed on the Application Server. They allow you to create and manipulate PDF forms as well as extract user-entered data from the interactive PDF form.
The PDF API allows you to
- Create documents using a template (layout) and data. Template + data = PDF.
- Add attachments to documents
- Change the document appearance (hide menu bars, magnification)
- Digitally sign the document using a private key
- Change the dynamic mode of the document
- Extract data in XML form from an existing document
Conceptually, a PDF is composed of a template (created with the LiveCycle Designer and saved as XDP file), which controls the form layout, and XML data, which is typically obtained from a backend system, generated at render time, or entered by the user.
Setup of the ADS
Since I want to concentrate on the development side, I will only give you some hints on how to install and configure the ADS. General documentation can be found here: Adobe Document Services Configuration Guide.
The following things have to be done:
- You must have installed ADS on the CE Server.
- Create a ADS user for basic authentication (Documentation).
- Setting up Basic Authentication (Documentation).
- Setting up Reader Rights Credentials (Documentation).
PDF API explained a little bit
To use the PDF API you must have a build-time dependency to the DC (Development Component) tc/pdf/object.
The entry point of using the API is the factory class PDFDocumentFactory. This class has only one static method getDocumentHandler() and returns an instance of the interface IPDFDocumentHandler.
This interface is responsible for handing out an appropriate type of context. A context can then be used to carry out the desired action. For example, a “creation context” (interface IPDFCreationContext) can be used to create a PDF document or an “accessible context” (interface IPDFAccessibleContext) is used to work with existing PDF documents.
Another interesting concept in the PDF API are Job Profiles. When creating a PDF document you can set various parameters like print options, permissions, layout settings etc.
You can of course set all parameters in your code, but if you want to change them, you must change the sourceode which is not preferable. A better way is to define the name of a Job Profile via API in your code (using method applyJobProfile(String name) of IPDFCreationContext). The Job Profile has to be made available on the server and can be customized using NWA. For more information look at this SAP Interactive Forms by Adobe – Job Profiles:
In Part II we will create a PDF Form using the API.