Skip to content

Commit

Permalink
Add samples for Forms Extension.
Browse files Browse the repository at this point in the history
These are set up to use the regular APDFL package.
The modification to use the Forms Extesion package
is yet to be done
  • Loading branch information
datalogics-aarroyo committed May 24, 2024
1 parent 363b710 commit 92a06ec
Show file tree
Hide file tree
Showing 9 changed files with 784 additions and 0 deletions.
14 changes: 14 additions & 0 deletions Forms/ExportFormsData/.idea/runConfigurations/ExportFormsData.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

160 changes: 160 additions & 0 deletions Forms/ExportFormsData/pom.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,160 @@
<?xml version="1.0" encoding="UTF-8"?>
<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>
<groupId>com.datalogics.pdfl.samples</groupId>
<artifactId>ExportFormsData</artifactId>
<version>1.0-SNAPSHOT</version>
<properties>
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
</properties>
<profiles>
<profile>
<id>Windows64</id>
<activation>
<os>
<family>windows</family>
<arch>amd64</arch>
</os>
</activation>
<properties>
<jni.classifier>win-x86-64-jni</jni.classifier>
</properties>
</profile>
<profile>
<id>MacArm</id>
<activation>
<os>
<family>mac</family>
<arch>aarch64</arch>
</os>
</activation>
<properties>
<jni.classifier>mac-arm-64-jni</jni.classifier>
</properties>
</profile>
<profile>
<id>Linux64</id>
<activation>
<os>
<!-- Use OS <name> instead of <family> because the "unix" <family> also includes Mac -->
<name>Linux</name>
<arch>amd64</arch>
</os>
</activation>
<properties>
<jni.classifier>linux-x86-64-jni</jni.classifier>
</properties>
</profile>
</profiles>
<dependencies>
<dependency>
<groupId>com.datalogics.pdfl</groupId>
<artifactId>pdfl</artifactId>
<version>18.36.0</version>
<type>pom</type>
</dependency>
<dependency>
<groupId>com.datalogics.pdfl</groupId>
<artifactId>pdfl</artifactId>
<version>18.36.0</version>
</dependency>
<dependency>
<groupId>com.datalogics.pdfl</groupId>
<artifactId>pdfl</artifactId>
<version>18.36.0</version>
<type>zip</type>
<classifier>${jni.classifier}</classifier>
</dependency>
<dependency>
<groupId>com.datalogics.pdfl</groupId>
<artifactId>pdfl</artifactId>
<version>18.36.0</version>
<type>zip</type>
<classifier>resources</classifier>
</dependency>
<dependency>
<groupId>com.datalogics.pdfl</groupId>
<artifactId>pdfl</artifactId>
<version>18.36.0</version>
<classifier>javadoc</classifier>
</dependency>
</dependencies>
<build>
<pluginManagement>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<version>3.0.2</version>
</plugin>
</plugins>
</pluginManagement>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<executions>
<execution>
<id>unpack-resources</id>
<phase>generate-resources</phase>
<goals>
<goal>unpack</goal>
</goals>
<configuration>
<artifactItems>
<artifactItem>
<groupId>com.datalogics.pdfl</groupId>
<artifactId>pdfl</artifactId>
<classifier>resources</classifier>
<type>zip</type>
<outputDirectory>${project.build.directory}/lib/Resources</outputDirectory>
</artifactItem>
</artifactItems>
</configuration>
</execution>
<execution>
<id>unpack-jni</id>
<phase>generate-resources</phase>
<goals>
<goal>unpack</goal>
</goals>
<configuration>
<artifactItems>
<artifactItem>
<groupId>com.datalogics.pdfl</groupId>
<artifactId>pdfl</artifactId>
<classifier>${jni.classifier}</classifier>
<type>zip</type>
<outputDirectory>${project.build.directory}/lib</outputDirectory>
</artifactItem>
</artifactItems>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<artifactId>maven-assembly-plugin</artifactId>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>single</goal>
</goals>
</execution>
</executions>
<configuration>
<archive>
<manifest>
<addClasspath>true</addClasspath>
<mainClass>com.datalogics.pdfl.samples.ExportFormsData</mainClass>
</manifest>
</archive>
<descriptorRefs>
<descriptorRef>jar-with-dependencies</descriptorRef>
</descriptorRefs>
</configuration>
</plugin>
</plugins>
</build>
</project>
Original file line number Diff line number Diff line change
@@ -0,0 +1,88 @@

package com.datalogics.pdfl.samples;

/*
* The ExportFormsData sample demonstrates how to Export forms data from XFA and AcroForms documents:
*
* - Export data from a XFA (Dynamic or Static) document, the types supported include XDP, XML, or XFD
* - Export data from an AcroForms document, the types supported include XFDF, FDF, or XML
*/
import com.datalogics.PDFL.*;
import java.util.EnumSet;
public class ExportFormsData
{

public static void main(String[] args) throws Throwable {
System.out.println("ExportFormsData sample:");

Library lib = new Library(EnumSet.of(LibraryFlags.INIT_FORMS_EXTENSION));

try
{
if (!lib.isFormsExtensionAvailable())
{
System.out.println("Forms Plugins were not properly loaded!");
return;
}

//Must be set to true to prevent default legacy behavior of PDFL
lib.setAllowOpeningXFA(true);

System.out.println("Initialized the library.");

//XFA document
String sInput = Library.getResourceDirectory() + "Sample_Input/DynamicXFA.pdf";
String sOutput = "../ExportFormsDataXFA.xdp";

if (args.length > 0)
{
sOutput = args[0];
}

Document doc = new Document(sInput);

//Export the data while specifying the type, in this case XDP
boolean result = doc.exportXFAFormsData(sOutput, XFAFormExportType.XDP);

if (result)
{
System.out.println("Forms data was exported!");
}
else
{
System.out.println("Exporting of Forms data failed!");
}

doc.delete();

//AcroForms document
sInput = Library.getResourceDirectory() + "Sample_Input/AcroForm.pdf";
sOutput = "../ExportFormsDataAcroForms.xfdf";

if (args.length > 1)
{
sOutput = args[1];
}

doc = new Document(sInput);

//Export the data while specifying the type, in this case XFDF
result = doc.exportAcroFormsData(sOutput, AcroFormExportType.XFDF);

if (result)
{
System.out.println("Forms data was exported!");
}
else
{
System.out.println("Exporting of Forms data failed!");
}

doc.delete();
}
finally {
lib.delete();
}
}
}

14 changes: 14 additions & 0 deletions Forms/FlattenForms/.idea/runConfigurations/FlattenForms.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Loading

0 comments on commit 92a06ec

Please sign in to comment.