Convert PDF to PDF/A
The code below shows you how to convert a PDF file to a PDF/A file.
This sample requires a Professional license.
C#
using System;
using System.IO;
using SolidFramework.Converters.Plumbing;
using SolidFramework.Plumbing;
using SolidFramework.Imaging.Plumbing;
using SolidFramework.Converters;
namespace PDFtoPDFA
{
class Program
{
[STAThread]
static void Main(string[] args)
{
// Call your Solid Documents License
SolidFramework.License.Import(@"C:\MyFolder\license.xml");
// Set the location of your the file you want to convert
string pdfPath = @"C:\YourFolder\yourpdf.pdf";
// Set the file extension you are creating
String PDFAPath = Path.ChangeExtension(pdfPath, "pdfa.pdf");
//*PDF to PDFA*//
using (PdfToPdfAConverter converter = new PdfToPdfAConverter())
{
// Add files to convert.
converter.AddSourceFile(pdfPath);
//Set the preferred conversion properties
// Select a PDF/A Validation mode
converter.ValidationMode = ValidationMode.PdfA2B; // All PDF/A options are supported
// Set to validate only to false
converter.ValidateOnly = false;
// Select the type of Image Compression
converter.OcrImageCompression = ImageCompression.PreserveOriginal;
// Apply Solid Documents Optical Character Recognition (OCR) for scanned files
converter.OcrEngine = TextRecoveryEngine.SolidOCR;
// Select the OCR language for the file
converter.OcrLanguage = "de"; //Many languages are supported
// Create a searchable Text Layer
converter.OcrType = OcrType.CreateSearchableTextLayer;
// Set the Directory you wan the file to be saved to
converter.OutputDirectory = @"C:\MyFolder\";
// Convert the file.
converter.ConvertTo(PDFAPath, true);
// Show the status of the PDF file in the Console Window
SolidFramework.Converters.Plumbing.ConversionStatus status = converter.ConvertTo(PDFAPath, true);
if (status != ConversionStatus.Success)
{
Console.WriteLine(status);
Console.ReadKey();
}
}
}
}
}
C++
#include "stdafx.h"
#include "SolidFramework.h"
#include <iostream>
using namespace std;
void DoProgress(SolidFramework::ProgressEventArgsPtr args)
{
// Not implemented
}
void DoWarning(SolidFramework::WarningEventArgsPtr args)
{
// Not implemented
}
class PdfToPdfAConverter : public SolidFramework::Converters::PdfToPdfAConverterBase
{
public:
void FireProgress(SolidFramework::ProgressEventArgsPtr args) override { DoProgress(args); };
void FireWarning(SolidFramework::WarningEventArgsPtr args) override { DoWarning(args); };
};
int _tmain(int argc, _TCHAR* argv[])
{
// Enter your License code goes here
SolidFramework::License::Import(L"C:\\MyFolder\\license.xml");
// Create a PDF to Word Converter called converter
PdfToPdfAConverter *converter = new PdfToPdfAConverter();
SolidFramework::Converters::CustomData *pData = NULL;
pData = new SolidFramework::Converters::CustomData();
pData->Converter = converter;
pData->Data = nullptr;
converter->setCustomData(pData);
// Add the PDF file to convert.
converter->AddSourceFile(L"C:\\YourFolder\\yourpdf.pdf");
converter->setOutputDirectory(L"C:\\MyFolder\\");
// Select a PDF/A Validation mode
converter->setValidationMode(SolidFramework::Plumbing::ValidationMode::PdfA2B); // All PDF/A options are supported
// Set to validate only to false
converter->setValidateOnly(false);
// Select the type of Image Compression
converter->setOcrImageCompression(SolidFramework::Imaging::Plumbing::ImageCompression::PreserveOriginal);
// Apply Solid Documents Optical Character Recognition (OCR) for scanned files
converter->setOcrEngine(SolidFramework::Converters::Plumbing::TextRecoveryEngine::SolidOCR);
// Select the OCR language for the file
converter->setOcrLanguage( L"de"); //Many languages are supported
// Create a searchable Text Layer
converter->setOcrType(SolidFramework::Converters::Plumbing::OcrType::CreateSearchableTextLayer);
//Start the Conversion
cout << "Starting conversion." << endl; converter->Convert();
SolidFramework::Converters::Plumbing::ConversionStatus status = converter->getResults()->getItem(0)->getStatus();
if (status != SolidFramework::Converters::Plumbing::ConversionStatus::Success)
{
cout << "Conversion failed." << endl;
}
else
{
cout << "Conversion succeeded." << endl; } converter->Dispose();
cout << "Press <Enter> to exit." << endl;
cin.get();
return 0;
}
VB.Net
Imports System.IO
Imports SolidFramework.Converters.Plumbing
Imports SolidFramework.Plumbing
Imports SolidFramework
Module PDFtoPDFA
Sub Main()
' Call your Solid Documents License
SolidFramework.License.Import("C:\MyFolder\license.xml")
'Define a variable for your source file
Dim sPdfPath As String
' Define a String for the output file
Dim pdfaPath As String
' Define your Solid Framework Converter
Dim myConverter As SolidFramework.Converters.PdfToPdfAConverter
' Set your file path
sPdfPath = "C:\YourFolder\filepdf.pdf"
' Set your output file and location
pdfaPath = Path.ChangeExtension(sPdfPath, ".pdfa.pdf")
' Set the converter
myConverter = New SolidFramework.Converters.PdfToPdfAConverter
'Set the preferred conversion properties
' Add files to convert.
myConverter.AddSourceFile(sPdfPath)
' Make the Converted File Searchable
myConverter.ValidationMode = ValidationMode.PdfA2B ' All other PDFA options are available
' Set to validate only to false
myConverter.ValidateOnly = False
' Select the type of Image Compression
myConverter.OcrImageCompression = Imaging.Plumbing.ImageCompression.PreserveOriginal
' Apply Solid Documents Optical Character Recognition (OCR) for scanned files
myConverter.OcrEngine = TextRecoveryEngine.SolidOCR
' Select the OCR language for the File
myConverter.OcrLanguage = "de"
' Create a searchable Text Layer
myConverter.OcrType = OcrType.CreateSearchableTextLayer
' Convert the File.
myConverter.ConvertTo(pdfaPath, True)
' Clean up
myConverter.Dispose()
End Sub
End Module
