Sie sehen sich Hilfeinhalte der folgenden Version an:
- 6.4
- 6.3
- 6.2
- Ältere Versionen
Der Convert PDF-Dienst konvertiert PDF-Dokumente in PostScript oder Bilddateien (JPEG, JPEG 2000, PNG und TIFF). Das Konvertieren eines PDF-Dokuments in PostScript ist nützlich für die unbeaufsichtigte serverbasierte Druckausgabe auf PostScript-Druckern. Das Konvertieren eines PDF-Dokuments in eine mehrseitige TIFF-Datei ist beim Archivieren von Dokumenten in Content Management-Systemen praktisch, die PDF-Dokumente nicht unterstützen.
Mit dem Convert PDF-Dienst können Sie Folgendes ausführen:
- Konvertieren von PDF-Dokumenten in PostScript – Beim Konvertieren in PostScript können Sie für den Konvertierungsvorgang das Quelldokument und die PostScript-Ebene (2 oder 3) angeben. Das PDF-Dokument, das in eine PostScript-Datei konvertiert wird, muss nicht interaktiv sein.
- Konvertieren von PDF-Dokumenten in die Bildformate JPEG, JPEG 2000, PNG und TIFF – Beim Konvertieren in diese Bildformate können Sie für den Konvertierungsvorgang das Quelldokument und eine Grafikoptionsspezifizierung angeben. Die Spezifizierung enthält verschiedene Voreinstellungen, z. B. das Bildkonvertierungsformat, die Bildauflösung und Farbumwandlung.
Sie können den Dienst AEMFD ConvertPDF in AEM-Konsole verwenden, um Eigenschaften für diesen Dienst zu konfigurieren. Die Standard-URL der AEM-Konsole lautet http://<Host>:<Port>/system/console/configMgr.
<%@ page import="java.util.List, java.io.File, com.adobe.fd.cpdf.api.ConvertPdfService, com.adobe.fd.cpdf.api.ToPSOptionsSpec, com.adobe.fd.cpdf.api.enumeration.PSLevel, com.adobe.aemfd.docmanager.Document" %><% %><%@taglib prefix="sling" uri="http://sling.apache.org/taglibs/sling/1.0" %><% %><sling:defineObjects/><% // Get reference to ConvertPdfService OSGi service. // Within an OSGi bundle @Reference annotation // can be used to retrieve service reference ConvertPdfService cpdfService = sling.getService(ConvertPdfService.class); // path to input document in AEM repository // please replace this with path to your document String documentPath = "/content/dam/formsanddocuments/ExpenseClaimFlat.pdf"; // Create a Docmanager Document object for // the flat PDF file which needs to be converted // to PostScript Document inputPDF = new Document(documentPath); // options object to pass to toPS API ToPSOptionsSpec toPSOptions = new ToPSOptionsSpec(); // mandatory option to pass, sets PostScript langauge toPSOptions.setPsLevel(PSLevel.LEVEL_3); // invoke toPS method to convert inputPDF to PostScript Document convertedPS = cpdfService.toPS(inputPDF, toPSOptions); // save converted PostScript file to disk convertedPS.copyToFile(new File("C:/temp/out.ps")); %>
<%@ page import="java.util.List, java.io.File, com.adobe.fd.cpdf.api.ConvertPdfService, com.adobe.fd.cpdf.api.ToImageOptionsSpec, com.adobe.fd.cpdf.api.enumeration.ImageConvertFormat, com.adobe.aemfd.docmanager.Document" %><% %><%@taglib prefix="sling" uri="http://sling.apache.org/taglibs/sling/1.0" %><% %><sling:defineObjects/><% // Get reference to ConvertPdfService OSGi service. // Within an OSGi bundle @Reference annotation // can be used to retrieve service reference ConvertPdfService cpdfService = sling.getService(ConvertPdfService.class); // path to input document in AEM repository // please replace this with path to your document String documentPath = "/content/dam/formsanddocuments/ExpenseClaimFlat.pdf"; // Create a Docmanager Document object for // the flat PDF file which needs to be converted // to image Document inputPDF = new Document(documentPath); // options object to pass to toImage API ToImageOptionsSpec toImageOptions = new ToImageOptionsSpec(); // mandatory option to pass, image format toImageOptions.setImageConvertFormat(ImageConvertFormat.JPEG); // invoke toImage method to convert inputPDF to Image List<Document> convertedImages = cpdfService.toImage(inputPDF, toImageOptions); // save converted image files to disk for(int i=0;i<convertedImages.size();i++){ Document pageImage = convertedImages.get(i); pageImage.copyToFile(new File("C:/temp/out_"+(i+1)+".jpeg")); } %>
Die Ausführung des ConvertPDF-Dienstes über einen Workflow ist ähnlich wie die Ausführung über JSP/Servlet.
Der einzige Unterschied beim Ausführen des Dienstes über JSP/Servlet liegt darin, dass das Dokumentobjekt automatisch eine Instanz des ResourceResolver-Objekts vom ResourceResolverHelper-Objekt abruft. Dieser automatische Mechanismus
funktioniert nicht, wenn der Code in einem Workflow aufgerufen wird. Bei einem Workflow müssen Sie ausdrücklich eine Instanz des ResourceResolver-Objekts an die Dokument-Klassen-Constructor übermitteln. Dann benutzt das Document-Objekt das bereitgestellte
ResourceResolver-Objekt, um Inhalt aus dem Repository zu lesen.
Der folgende Beispielworkflow-Prozess konvertiert das Eingabedokument in ein PostScript-Dokument. Der Code ist in ECMAScript geschrieben und das Dokument wird als Workflow-Nutzlast übergeben:
/* * Imports */ var ConvertPdfService = Packages.com.adobe.fd.cpdf.api.ConvertPdfService; var ToPSOptionsSpec = Packages.com.adobe.fd.cpdf.api.ToPSOptionsSpec; var PSLevel = Packages.com.adobe.fd.cpdf.api.enumeration.PSLevel; var Document = Packages.com.adobe.aemfd.docmanager.Document; var File = Packages.java.io.File; var ResourceResolverFactory = Packages.org.apache.sling.api.resource.ResourceResolverFactory; // get reference to ConvertPdfService var cpdfService = sling.getService(ConvertPdfService); /* * workflow payload and path to it */ var payload = graniteWorkItem.getWorkflowData().getPayload(); var payload_path = payload.toString(); /* Create resource resolver using current session * this resource resolver needs to be passed to Document * object constructor when file is to be read from * crx repository. */ /* get ResourceResolverFactory service reference , used * to construct resource resolver */ var resourceResolverFactory = sling.getService(ResourceResolverFactory); var authInfo = { "user.jcr.session":graniteWorkflowSession.getSession() }; var resourceResolver = resourceResolverFactory.getResourceResolver(authInfo); // Create Document object from payload_path var inputDocument = new Document(payload_path, resourceResolver); // options object to be passed to toPS operation var toPSOptions = new ToPSOptionsSpec(); // Set PostScript Language Three toPSOptions.setPsLevel(PSLevel.LEVEL_3); // invoke toPS operation to convert inputDocument to PS var convertedPS = cpdfService.toPS(inputDocument, toPSOptions); // save converted PostScript file to disk convertedPS.copyToFile(new File("C:/temp/out.ps"));