PDF-documenten genereren met behulp van uitvoerservice

[AEM Forms as a Cloud Service]{class="badge informative"}

De dienst van de Outputis de dienst OSGi die deel van de Diensten van het Document van AEM uitmaakt. Deze biedt ondersteuning voor verschillende uitvoerindelingen en ontwerpfuncties van AEM Forms Designer. De service Uitvoer converteert XFA-sjablonen en XML-gegevens om afdrukdocumenten in verschillende indelingen te genereren.

De Output-service in AEM Forms as a Cloud Service lijkt sterk op die in AEM Forms 6.5. Als u dus bekend bent met de Output-service in AEM Forms 6.5, is de overgang naar AEM Forms as a Cloud Service eenvoudig.

Met de service Uitvoer kunt u toepassingen maken waarmee u:

  • Definitieve formulierdocumenten genereren door sjabloonbestanden te vullen met XML-gegevens.
  • Uitvoerformulieren genereren in verschillende indelingen, waaronder niet-interactieve PDF-, PostScript-, PCL- en ZPL-afdrukstromen.
  • Afdruk-PDF's genereren van XFA-formulier-PDF's.
  • Genereer grote hoeveelheden PDF-, PostScript-, PCL- en ZPL-documenten door meerdere gegevenssets samen te voegen met de meegeleverde sjablonen.

Deze service is ontworpen voor gebruik binnen de context van een AEM Forms as a Cloud Service-instantie. Het volgende codefragment genereert een PDF-document in een servlet met behulp van OutputService .

import com.adobe.fd.output.api.OutputService;
import com.adobe.fd.output.api.PDFOutputOptions;
import com.adobe.fd.output.api.AcrobatVersion;
import com.adobe.aemfd.docmanager.Document;
import org.apache.sling.api.servlets.HttpConstants;
import org.apache.sling.api.servlets.SlingAllMethodsServlet;
import org.apache.sling.api.servlets.SlingServletPaths;
import org.apache.sling.api.SlingHttpServletRequest;
import org.apache.sling.api.SlingHttpServletResponse;
import org.osgi.service.component.annotations.Component;
import org.osgi.service.component.annotations.Reference;

import java.io.ByteArrayInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.nio.charset.StandardCharsets;

@Component(service = Servlet.class,
           property = {
               "sling.servlet.methods=" + HttpConstants.METHOD_POST,
               "sling.servlet.paths=/bin/generateStatement"
           })
public class GenerateStatementServlet extends SlingAllMethodsServlet {

    @Reference
    private OutputService outputService;

    @Override
    protected void doPost(SlingHttpServletRequest request, SlingHttpServletResponse response) throws IOException {
        // Access the submitted form data
        String formData = request.getParameter("formData");

        // Define the XDP template document
        String templateName = "/content/dam/formsanddocuments/adobe/statement.xdp";
        Document xdpDocument = new Document(templateName);

        // Set the PDF output options
        PDFOutputOptions pdfOutputOptions = new PDFOutputOptions();
        pdfOutputOptions.setAcrobatVersion(AcrobatVersion.Acrobat_10);

        // Create the submitted data document from the form data
        InputStream inputStream = new ByteArrayInputStream(formData.getBytes(StandardCharsets.UTF_8));
        Document submittedData = new Document(inputStream);

        // Use the output service to generate the PDF output
        Document generatedPDF = outputService.generatePDFOutput(xdpDocument, submittedData, pdfOutputOptions);

        // Process the generated PDF as per your use case
    }
}
recommendation-more-help
4859a77c-7971-4ac9-8f5c-4260823c6f69