Skip to content

Commit

Permalink
Merge pull request #44 from datalogics-aarroyo/fe_samples
Browse files Browse the repository at this point in the history
Initial set up of Forms Extension Samples
  • Loading branch information
datalogics-bruceh authored Jun 12, 2024
2 parents 4e05049 + 9165e8c commit ee00b8e
Show file tree
Hide file tree
Showing 8 changed files with 362 additions and 0 deletions.
57 changes: 57 additions & 0 deletions Forms/ConvertXFAToAcroForms/ConvertXFAToAcroForms.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,57 @@
using System;
using System.Collections.Generic;
using System.Text;
using Datalogics.PDFL;

/*
*
* The ConvertXFAToAcroForms sample demonstrates how to convert XFA into AcroForms.
* Converts XFA (Dynamic or Static) fields to AcroForms fields and removes XFA fields.
* Copyright (c) 2024, Datalogics, Inc. All rights reserved.
*
*/
namespace ConvertXFAToAcroForms
{
class ConvertXFAToAcroForms
{
static void Main(string[] args)
{
Console.WriteLine("ConvertXFAToAcroForms Sample:");

using (Library lib = new Library(LibraryFlags.InitFormsExtension))
{
if (!lib.IsFormsExtensionAvailable())
{
System.Console.Out.WriteLine("Forms Plugins were not properly loaded!");
return;
}

lib.AllowOpeningXFA = true;

Console.WriteLine("Initialized the library.");

String sInput = Library.ResourceDirectory + "Sample_Input/DynamicXFA.pdf";
String sOutput = "../ConvertXFAToAcroForms-out.pdf";

if (args.Length > 0)
{
sInput = args[0];
}

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

using (Document doc = new Document(sInput))
{
UInt32 pagesOutput = doc.ConvertXFAFieldsToAcroFormFields();

Console.WriteLine("XFA document was converted into an AcroForms document with {0} pages.", pagesOutput);

doc.Save(SaveFlags.Full | SaveFlags.Linearized, sOutput);
}
}
}
}
}
14 changes: 14 additions & 0 deletions Forms/ConvertXFAToAcroForms/ConvertXFAToAcroForms.csproj
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
<Project Sdk="Microsoft.NET.Sdk">

<PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFramework>net6.0</TargetFramework>
<ImplicitUsings>enable</ImplicitUsings>
<Nullable>enable</Nullable>
</PropertyGroup>

<ItemGroup>
<PackageReference Include="Adobe.PDF.Library.FormsExtension.LM.NET" Version="1.*" />
</ItemGroup>

</Project>
85 changes: 85 additions & 0 deletions Forms/ExportFormsData/ExportFormsData.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,85 @@
using System;
using System.Collections.Generic;
using System.Text;
using Datalogics.PDFL;

/*
* 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
*
* Copyright (c) 2024, Datalogics, Inc. All rights reserved.
*
*/
namespace ExportFormsData
{
class ExportFormsData
{
static void Main(string[] args)
{
Console.WriteLine("ExportFormsData Sample:");

using (Library lib = new Library(LibraryFlags.InitFormsExtension))
{
if (!lib.IsFormsExtensionAvailable())
{
System.Console.Out.WriteLine("Forms Plugins were not properly loaded!");
return;
}

lib.AllowOpeningXFA = true;

Console.WriteLine("Initialized the library.");

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

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

using (Document doc = new Document(sInput))
{
//Export the data while specifying the type, in this case XDP
bool result = doc.ExportXFAFormsData(sOutput, XFAFormExportType.XDP);

if (result)
{
Console.Out.WriteLine("Forms data was exported!");
}
else
{
Console.Out.WriteLine("Exporting of Forms data failed!");
}
}

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

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

using (Document doc = new Document(sInput))
{
//Export the data while specifying the type, in this case XFDF
bool result = doc.ExportAcroFormsData(sOutput, AcroFormExportType.XFDF);

if (result)
{
Console.Out.WriteLine("Forms data was exported!");
}
else
{
Console.Out.WriteLine("Exporting of Forms data failed!");
}
}
}
}
}
}
14 changes: 14 additions & 0 deletions Forms/ExportFormsData/ExportFormsData.csproj
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
<Project Sdk="Microsoft.NET.Sdk">

<PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFramework>net6.0</TargetFramework>
<ImplicitUsings>enable</ImplicitUsings>
<Nullable>enable</Nullable>
</PropertyGroup>

<ItemGroup>
<PackageReference Include="Adobe.PDF.Library.FormsExtension.LM.NET" Version="1.*" />
</ItemGroup>

</Project>
74 changes: 74 additions & 0 deletions Forms/FlattenForms/FlattenForms.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,74 @@
using System;
using System.Collections.Generic;
using System.Text;
using Datalogics.PDFL;

/*
*
* The FlattenForms sample demonstrates how to Flatten XFA into AcroForms.
*
* - Flatten XFA (Dynamic or Static) to regular page content which converts and expands XFA fields to regular PDF content and removes the XFA fields.
* - Flatten AcroForms to regular page content which converts AcroForm fields to regular page content and removes the AcroForm fields.
* Copyright (c) 2024, Datalogics, Inc. All rights reserved.
*
*/
namespace FlattenForms
{
class FlattenForms
{
static void Main(string[] args)
{
Console.WriteLine("FlattenForms Sample:");

using (Library lib = new Library(LibraryFlags.InitFormsExtension))
{
if (!lib.IsFormsExtensionAvailable())
{
System.Console.Out.WriteLine("Forms Plugins were not properly loaded!");
return;
}

//Must be set to true to prevent default legacy behavior of PDFL
lib.AllowOpeningXFA = true;

Console.WriteLine("Initialized the library.");

//XFA document
String sInput = Library.ResourceDirectory + "Sample_Input/DynamicXFA.pdf";
String sOutput = "../FlattenXFA-out.pdf";

if (args.Length > 0)
{
sInput = args[0];
}

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

using (Document doc = new Document(sInput))
{
UInt32 pagesOutput = doc.FlattenXFAFormFields();

Console.WriteLine("XFA document was expanded into {0} Flattened pages.", pagesOutput);

doc.Save(SaveFlags.Full | SaveFlags.Linearized, sOutput);
}

//AcroForms document
sInput = Library.ResourceDirectory + "Sample_Input/AcroForm.pdf";
sOutput = "../FlattenAcroForms-out.pdf";

using (Document doc = new Document(sInput))
{
doc.FlattenAcroFormFields();

Console.WriteLine("AcroForms document was Flattened.");

doc.Save(SaveFlags.Full | SaveFlags.Linearized, sOutput);
}
}
}
}
}
14 changes: 14 additions & 0 deletions Forms/FlattenForms/FlattenForms.csproj
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
<Project Sdk="Microsoft.NET.Sdk">

<PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFramework>net6.0</TargetFramework>
<ImplicitUsings>enable</ImplicitUsings>
<Nullable>enable</Nullable>
</PropertyGroup>

<ItemGroup>
<PackageReference Include="Adobe.PDF.Library.FormsExtension.LM.NET" Version="1.*" />
</ItemGroup>

</Project>
90 changes: 90 additions & 0 deletions Forms/ImportFormsData/ImportFormsData.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,90 @@
using System;
using System.Collections.Generic;
using System.Text;
using Datalogics.PDFL;

/*
* The ImportFormsData sample demonstrates how to Import forms data into XFA and AcroForms documents:
*
* - Import data into a XFA (Dynamic or Static) document, the types supported include XDP, XML, or XFD
* - Import data into an AcroForms document, the types supported include XFDF, FDF, or XML
*
* Copyright (c) 2024, Datalogics, Inc. All rights reserved.
*/
namespace ImportFormsData
{
class ImportFormsData
{
static void Main(string[] args)
{
Console.WriteLine("ImportFormsData Sample:");

using (Library lib = new Library(LibraryFlags.InitFormsExtension))
{
if (!lib.IsFormsExtensionAvailable())
{
System.Console.Out.WriteLine("Forms Plugins were not properly loaded!");
return;
}

lib.AllowOpeningXFA = true;

Console.WriteLine("Initialized the library.");

//XFA document
String sInput = Library.ResourceDirectory + "Sample_Input/DynamicXFA.pdf";
String sInputData = Library.ResourceDirectory + "Sample_Input/DynamicXFA_data.xdp";
String sOutput = "../ImportFormsDataXFA-out.pdf";

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

using (Document doc = new Document(sInput))
{
//Import the data, acceptable types include XDP, XML, and XFD
bool result = doc.ImportXFAFormsData(sInputData);

if (result)
{
Console.Out.WriteLine("Forms data was imported!");

doc.Save(SaveFlags.Full | SaveFlags.Linearized, sOutput);
}
else
{
Console.Out.WriteLine("Importing of Forms data failed!");
}
}

//AcroForms document
sInput = Library.ResourceDirectory + "Sample_Input/AcroForm.pdf";
sInputData = Library.ResourceDirectory + "Sample_Input/AcroForm_data.xfdf";
sOutput = "../ImportFormsDataAcroForms-out.pdf";

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

using (Document doc = new Document(sInput))
{
//Import the data while specifying the type, in this case XFDF
bool result = doc.ImportAcroFormsData(sInputData, AcroFormImportType.XFDF);

if (result)
{
Console.Out.WriteLine("Forms data was imported!");

doc.Save(SaveFlags.Full | SaveFlags.Linearized, sOutput);
}
else
{
Console.Out.WriteLine("Importing of Forms data failed!");
}
}
}
}
}
}
14 changes: 14 additions & 0 deletions Forms/ImportFormsData/ImportFormsData.csproj
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
<Project Sdk="Microsoft.NET.Sdk">

<PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFramework>net6.0</TargetFramework>
<ImplicitUsings>enable</ImplicitUsings>
<Nullable>enable</Nullable>
</PropertyGroup>

<ItemGroup>
<PackageReference Include="Adobe.PDF.Library.FormsExtension.LM.NET" Version="1.*" />
</ItemGroup>

</Project>

0 comments on commit ee00b8e

Please sign in to comment.