Skip to content

Commit

Permalink
Initial set up of Forms Extension Samples
Browse files Browse the repository at this point in the history
Adds the sourcecode and project files for the
forms extension samples. Points the package
reference to the first release of the product
  • Loading branch information
datalogics-aarroyo committed Jun 11, 2024
1 parent 4e05049 commit 9165e8c
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 9165e8c

Please sign in to comment.