Expand my Community achievements bar.

Dive into Adobe Summit 2024! Explore curated list of AEM sessions & labs, register, connect with experts, ask questions, engage, and share insights. Don't miss the excitement.

Converting images to PDF using AEM services

Avatar

Level 2

Hello!

For our projects at the Finanzinformatik in Frankfurt we need to convert PDF documents with
barcode to an image format and back to PDF for automated comparison. Converting PDF to image is working fine.

But how can an image be converted into a PDF document using AEM services?

I have been researching ways with AssemblerService by calling invoke method with DDX
and GeneratePdfService, but it only seems to be supported for some office document types.

Is there a solution for converting images into PDF, perhaps with a little code example?

That would be very helpful!

Thanks!

Sebastian Wilhelm

5 Replies

Avatar

Administrator

I have asked internal team to help you in this.

~kautuk



Kautuk Sahni

Avatar

Administrator

Hi 

There is a documentation for Image to PDF of GeneratePDFService :- http://help.adobe.com/en_US/AEMForms/6.1/AdminHelp/WS92d06802c76abadb-5145d5d12905ce07e7-7ff7.2.html

For other information,  let the internal team to respond.

~kautuk



Kautuk Sahni

Avatar

Level 9

The javadoc is here for the API

The following is sample JSP code

            ToImageOptionsSpec spec = new com.adobe.fd.cpdf.api.ToImageOptionsSpec();


        System.out.println("$$$$$$$Successfully set  the image spec");
spec.setImageConvertFormat(ImageConvertFormat.JPEG);
        spec.setGrayScaleCompression(GrayScaleCompression.Low);
        spec.setColorCompression(ColorCompression.Low);
        spec.setFormat(JPEGFormat.BaselineOptimized);
        spec.setRgbPolicy(RGBPolicy.Off);
        spec.setCmykPolicy(CMYKPolicy.Off);
        spec.setColorSpace(ColorSpace.RGB);
        spec.setResolution("72");
        spec.setMonochrome(MonochromeCompression.None);
        spec.setFilter(PNGFilter.Sub);
        spec.setInterlace(Interlace.Adam7);
        spec.setTileSize(180);
        spec.setGrayScalePolicy(GrayScalePolicy.Off);
ConvertPdfService convertPdfService = sling.getService(ConvertPdfService.class);
System.out.println("$$$$$Got Convert PDF Service");
     System.out.println("Inside dummy for PDF G");
    System.out.println("The ocr value is ..."+request.getParameter("ocr"));
    SlingScriptHelper scriptHelper = bindings.getSling();
    RequestParameter inputFileParam = scriptHelper.getRequest().getRequestParameter("inputDoc");
    String convert = request.getParameter("Convert");
    System.out.println("The value of convert "+convert);

        InputStream inputDocStream = null;
        String fileName = FilenameUtils.getName(inputFileParam.getFileName());
        inputDocStream = inputFileParam.getInputStream();
         com.adobe.aemfd.docmanager.Document uploadedDocument = new com.adobe.aemfd.docmanager.Document(inputDocStream);

        java.util.List allImages = convertPdfService.toImage(uploadedDocument,spec);

        System.out.println("@@@@@@@The number of images I got was ...."+allImages.size());

        System.out.println("$$$$ Converted the PDF to Images&&&&&&");

Avatar

Level 2

Thank you for the example code, BUT like I wrote above, the conversion PDF->IMAGE already works fine.

The problem is the direction IMAGE->PDF !!!

 

Do you have a working example for this case, too?

Thanks and Regards

Sebastian

Avatar

Level 10

According to the Javadocs:

https://helpx.adobe.com/aem-forms/6-2/javadocs/com/adobe/fd/cpdf/api/ConvertPdfService.html

This is not a supported use case using this API. 

However - this is the API that will convert an image into a PDF:

https://helpx.adobe.com/aem-forms/6-2/javadocs/com/adobe/pdfg/service/api/GeneratePDFService.html

Here is an older Javadoc for this API with more detail: 

http://help.adobe.com/en_US/livecycle/9.0/programLC/javadoc/com/adobe/livecycle/generatepdf/client/G..., java.lang.String, java.lang.String, java.lang.String, java.lang.String, com.adobe.idp.Document, com.adobe.idp.Document)

Hope this helps.