Convert PDF Files to Word
The code below shows you how to convert a PDF file to a Word document.
This sample requires a Tools license.
C#
using System;
using System.IO;
using SolidFramework.Converters.Plumbing;
using SolidFramework.Converters;
namespace PDFtoWord
{
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 docxPath = Path.ChangeExtension(pdfPath, ".docx");
// *PDF to DOCX*//
using (PdfToWordConverter converter = new PdfToWordConverter())
{
// Add files to convert.
converter.AddSourceFile(pdfPath);
//Set the preferred conversion properties
// Detect Headers and Footers
converter.HeaderAndFooterMode = HeaderAndFooterMode.Detect;
// Set a specific page range to convert
converter.PageRange = new SolidFramework.PageRange(new int[] { 1 });
// Turn on Solid Documents Optical Character Recognition (OCR) for Scanned Files
converter.TextRecoveryEngine = TextRecoveryEngine.SolidOCR; //Only with Pro+OCR and OCR license
converter.TextRecoveryType = TextRecovery.Automatic;
// Set the layout of the reconstruction (Exact for Forms)
converter.ReconstructionMode = ReconstructionMode.Flowing;
// Convert the File.
converter.ConvertTo(docxPath, true);
// Show the status of the PDF file in the Console Window
SolidFramework.Converters.Plumbing.ConversionStatus status = converter.ConvertTo(docxPath, 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 PdfToWordConverter : public SolidFramework::Converters::PdfToWordConverterBase
{
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
PdfToWordConverter *converter = new PdfToWordConverter();
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");
// Set the file type
converter->setOutputType(SolidFramework::Converters::Plumbing::WordDocumentType::DocX);
// Detect headers and footers
converter->setHeaderAndFooterMode(SolidFramework::Converters::Plumbing::HeaderAndFooterMode::Detect);
// Turn on Solid Documents Optical Character Recognition (OCR) for Scanned Files
converter->setTextRecoveryEngine(SolidFramework::Converters::Plumbing::TextRecoveryEngine::SolidOCR);
converter->setTextRecoveryType(SolidFramework::Converters::Plumbing::TextRecovery::Automatic);
// Set the layout of the reconstruction (Exact for Forms)
converter->setReconstructionMode(SolidFramework::Converters::Plumbing::ReconstructionMode::Flowing);
// Handle annotations
// SolidFramework::Converters::Plumbing::MarkupAnnotConversionType::Comment - Comment
// SolidFramework::Converters::Plumbing::MarkupAnnotConversionType::Never - Remove
// SolidFramework::Converters::Plumbing::MarkupAnnotConversionType::Textbox - Textbox
converter->setMarkupAnnotConversionType(SolidFramework::Converters::Plumbing::MarkupAnnotConversionType::Comment);
//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
Module PDFtoWord
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 sDocxPath As String
' Define your Solid Framework Converter
Dim myConverter As SolidFramework.Converters.PdfToWordConverter
' Set your file path
sPdfPath = "C:\YourFolder\filepdf.pdf"
' Set your output file and location
sDocxPath = Path.ChangeExtension(sPdfPath, ".docx")
' Set the converter
myConverter = New SolidFramework.Converters.PdfToWordConverter
' Set the preferred conversion properties
' Add files to convert.
myConverter.AddSourceFile(sPdfPath)
' Detect Headers and Footers
myConverter.HeaderAndFooterMode = HeaderAndFooterMode.Detect
' Turn on Solid Documents Optical Character Recognition (OCR) for Scanned Files
myConverter.TextRecoveryEngine = TextRecoveryEngine.Automatic
' Set the layout of the reconstruction (Exact for Forms)
myConverter.ReconstructionMode = ReconstructionMode.Flowing
' Convert the File.
myConverter.ConvertTo(sDocxPath, True)
' Clean up
myConverter.Dispose()
End Sub
End Module
