Convert PDF to DOCX with Preserve Embedded Fonts in C# and .NET
In today's world, where documents act not only as a means of transmitting information, but also as an important aspect of business communications, the ability to quickly and efficiently convert file formats is becoming indispensable. The issue of preserving unique document elements, such as embedded fonts, is particularly acute when converting from PDF to Word. In this article, we will look in detail at how to implement such a process in C# and .NET, using the powerful SautinSoft PDF Focus .NET library.
PDF files are widely used to store static documents, presentations, reports, and contracts where a presentable appearance and accurate display of content are critical. The built-in fonts ensure the same document display on different devices and platforms, while maintaining the original style. When converting PDF to DOCX without saving fonts, there may be problems with displaying text: shifting, changing fonts, or losing the original style.
What is this code useful for:
- Automation of office processes: conversion of a large number of documents for subsequent editing.
- Restore the original design: edit the PDF content while preserving the original fonts, if necessary.
- Ensuring compatibility: preparing documents in DOCX for further editing or publication.
- Creation of document management systems: integration into corporate solutions for processing standard reports and contracts.
Complete code
using System;
using System.IO;
namespace Sample
{
class Sample
{
static void Main(string[] args)
{
// Before starting, we recommend to get a free key:
// https://sautinsoft.com/start-for-free/
// Apply the key here:
// SautinSoft.PdfFocus.SetLicense("...");
string pdfFile = Path.GetFullPath(@"..\..\..\text and graphics.pdf");
string wordFile = "Result.docx";
//Convert PDF file to Text file
SautinSoft.PdfFocus f = new SautinSoft.PdfFocus();
f.OpenPdf(pdfFile);
//This property indicating whether to load embedded fonts from PDF and store them in document or skip them and use similar. Default value: Auto.
f.PreserveEmbeddedFonts = SautinSoft.PdfFocus.ePropertyState.Enabled;
if (f.PageCount > 0)
{
int result = f.ToWord(wordFile);
//Show Text document
if (result == 0)
{
System.Diagnostics.Process.Start(new System.Diagnostics.ProcessStartInfo(wordFile) { UseShellExecute = true });
}
}
}
}
}
Imports System
Imports System.IO
Namespace Sample
Friend Class Sample
Shared Sub Main(ByVal args() As String)
' Before starting, we recommend to get a free key:
' https://sautinsoft.com/start-for-free/
' Apply the key here
' SautinSoft.PdfFocus.SetLicense("...");
Dim pdfFile As String = Path.GetFullPath("..\..\..\text and graphics.pdf")
Dim wordFile As String = "Result.docx"
'Convert PDF file to Text file
Dim f As New SautinSoft.PdfFocus()
f.OpenPdf(pdfFile)
'This property indicating whether to load embedded fonts from PDF and store them in document or skip them and use similar. Default value: Auto.
f.PreserveEmbeddedFonts = SautinSoft.PdfFocus.ePropertyState.Enabled
If f.PageCount > 0 Then
Dim result As Integer = f.ToWord(wordFile)
'Show Text document
If result = 0 Then
System.Diagnostics.Process.Start(New System.Diagnostics.ProcessStartInfo(wordFile) With {.UseShellExecute = True})
End If
End If
End Sub
End Class
End Namespace
If you need a new code example or have a question: email us at support@sautinsoft.com or ask at Online Chat (right-bottom corner of this page) or use the Form below: