Hi Everyone,
I am using AEM Sites SDK and trying to convert a HTML string to PDF Binary which will be used to save the PDF in AZURE using an API.
As part of converting HTML string to PDF binary I am trying to use iTextPDF library and added below dependency in core pom.xml
<!-- https://mvnrepository.com/artifact/com.itextpdf/html2pdf -->
<dependency>
<groupId>com.itextpdf</groupId>
<artifactId>html2pdf</artifactId>
<version>4.0.5</version>
</dependency>
Also, tried with differenent versions.
But it is not getting resolved.
I have tried adding embed dependency in core pom.xml which was specified in https://experienceleaguecommunities.adobe.com/t5/adobe-experience-manager/maven-dependency-when-usin...
Still it is not getting resolved.
It would be really helpful if someone can help in solving this issue.
Thanks,
Arunkumar
Solved! Go to Solution.
Views
Replies
Total Likes
Hello @papenaarun ,
Recently I faced with a similar type of issue. To solve this thread will help you: https://experienceleaguecommunities.adobe.com/t5/adobe-experience-manager/aws-java-sdk-cannot-be-res...
Embedding Third party dependency/OSGi bundle: https://myaemlearnings.blogspot.com/2021/08/embedding-third-party-dependencyosgi.html
In Summary:
You need to create a new module where the pom.xml will like this.
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<!-- ====================================================================== -->
<!-- P A R E N T P R O J E C T D E S C R I P T I O N -->
<!-- ====================================================================== -->
<parent>
<groupId>com.my.project</groupId>
<artifactId>my-project</artifactId>
<version>0.0.1-SNAPSHOT</version>
<relativePath>../pom.xml</relativePath>
</parent>
<!-- ====================================================================== -->
<!-- P R O J E C T D E S C R I P T I O N -->
<!-- ====================================================================== -->
<artifactId>com.my.project.core</artifactId>
<packaging>bundle</packaging>
<name>BS AEM Commons - Common Core</name>
<description>All third party bundle for BS AEM Commons</description>
<!-- ====================================================================== -->
<!-- B U I L D D E F I N I T I O N -->
<!-- ====================================================================== -->
<build>
<plugins>
<plugin>
<groupId>org.apache.felix</groupId>
<artifactId>maven-bundle-plugin</artifactId>
<version>5.1.8</version>
<extensions>true</extensions>
<configuration>
<instructions>
<Import-Package>*;resolution:=optional</Import-Package>
<Export-Package>
com.itextpdf.*
</Export-Package>
<Embed-Dependency>*</Embed-Dependency>
<Embed-Transitive>true</Embed-Transitive>
</instructions>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.sling</groupId>
<artifactId>sling-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
<!-- ====================================================================== -->
<!-- D E P E N D E N C I E S -->
<!-- ====================================================================== -->
<dependencies>
<dependency>
<groupId>org.apache.sling</groupId>
<artifactId>org.apache.sling.api</artifactId>
</dependency>
<dependency>
<groupId>com.itextpdf</groupId>
<artifactId>html2pdf</artifactId>
</dependency>
</dependencies>
</project>
Then you need to deploy this with your project build. After deploying you will see a new bundle called **.commons.core
By following this documentation you will get how to add the extra module with maven build.
Hello @papenaarun ,
Recently I faced with a similar type of issue. To solve this thread will help you: https://experienceleaguecommunities.adobe.com/t5/adobe-experience-manager/aws-java-sdk-cannot-be-res...
Embedding Third party dependency/OSGi bundle: https://myaemlearnings.blogspot.com/2021/08/embedding-third-party-dependencyosgi.html
In Summary:
You need to create a new module where the pom.xml will like this.
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<!-- ====================================================================== -->
<!-- P A R E N T P R O J E C T D E S C R I P T I O N -->
<!-- ====================================================================== -->
<parent>
<groupId>com.my.project</groupId>
<artifactId>my-project</artifactId>
<version>0.0.1-SNAPSHOT</version>
<relativePath>../pom.xml</relativePath>
</parent>
<!-- ====================================================================== -->
<!-- P R O J E C T D E S C R I P T I O N -->
<!-- ====================================================================== -->
<artifactId>com.my.project.core</artifactId>
<packaging>bundle</packaging>
<name>BS AEM Commons - Common Core</name>
<description>All third party bundle for BS AEM Commons</description>
<!-- ====================================================================== -->
<!-- B U I L D D E F I N I T I O N -->
<!-- ====================================================================== -->
<build>
<plugins>
<plugin>
<groupId>org.apache.felix</groupId>
<artifactId>maven-bundle-plugin</artifactId>
<version>5.1.8</version>
<extensions>true</extensions>
<configuration>
<instructions>
<Import-Package>*;resolution:=optional</Import-Package>
<Export-Package>
com.itextpdf.*
</Export-Package>
<Embed-Dependency>*</Embed-Dependency>
<Embed-Transitive>true</Embed-Transitive>
</instructions>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.sling</groupId>
<artifactId>sling-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
<!-- ====================================================================== -->
<!-- D E P E N D E N C I E S -->
<!-- ====================================================================== -->
<dependencies>
<dependency>
<groupId>org.apache.sling</groupId>
<artifactId>org.apache.sling.api</artifactId>
</dependency>
<dependency>
<groupId>com.itextpdf</groupId>
<artifactId>html2pdf</artifactId>
</dependency>
</dependencies>
</project>
Then you need to deploy this with your project build. After deploying you will see a new bundle called **.commons.core
By following this documentation you will get how to add the extra module with maven build.
@Sady_Rifat lemme try and update you.
@Sady_Rifat Tried by creating another module for external dependencies. It worked in local.
Thanks a lot for the help. Now need to check deploying in the server.
Hi @papenaarun did it worked on server?
Yes, it worked.
lemme know if you are facing any issues.
@papenaarun We hope you found the AEM community valuable. We anticipate your return as either a learner or a contributor. The community benefits from SMEs like you. Please ask your AEM peers to join and contribute. Happy AEM learning!
Views
Replies
Total Likes
Views
Likes
Replies