Codecs: How to convert PDF to TIFF?
In This Topic
VintaSoft Imaging .NET SDK renders PDF page (draws text, images and graphics on PDF page) when converting PDF document to a TIFF file.
By default SDK:
- Renders PDF page with 96 dpi resolution.
- Searches external font in directory "$ASSEMBLY_DIRECTORY$\Fonts\" and in fonts directory of the operation system.
You need override algorithm for searching external fonts if PDF document contains not standard external fonts. This can be done using the
FileFontProgramsControllerWithFallbackFont class.
More info about fonts in PDF document can be found
here.
VintaSoft Imaging .NET SDK allows to convert PDF document to a TIFF file using class
DocumentConverter,
ImageCollection or
TiffFile. Usage of
DocumentConverter class provides the best performance because
DocumentConverter class uses multi-threading.
Here is C#/VB.NET code that shows how to convert PDF document with default resolution (96 dpi) to TIFF file using
DocumentConverter class:
/// <summary>
/// Converts PDF document to a TIFF file using Vintasoft.Imaging.DocumentConverter class.
/// </summary>
public static void ConvertPdfToTiff_DocumentConverter(string pdfFileName, string tiffFileName)
{
Vintasoft.Imaging.DocumentConverter.Convert(pdfFileName, tiffFileName);
}
''' <summary>
''' Converts PDF document to a TIFF file using Vintasoft.Imaging.DocumentConverter class.
''' </summary>
Public Shared Sub ConvertPdfToTiff_DocumentConverter(pdfFileName As String, tiffFileName As String)
Vintasoft.Imaging.DocumentConverter.Convert(pdfFileName, tiffFileName)
End Sub
Here is C#/VB.NET code that shows how to convert PDF document with specified resolution to TIFF file using
DocumentConverter class:
/// <summary>
/// Converts PDF document to TIFF file using Vintasoft.Imaging.DocumentConverter class.
/// PDF document is rendered with specified resolution.
/// </summary>
public static void ConvertPdfToTiff_CustomResolution_DocumentConverter(string pdfFileName, string tiffFileName)
{
// create the document convertor
Vintasoft.Imaging.DocumentConverter converter = new Vintasoft.Imaging.DocumentConverter();
// subscribe to the DocumentConverter.ImageDecodingStarting event
converter.ImageDecodingStarting += Converter_ImageDecodingStarting;
// add PDF pages to the document convertor
converter.Images.Add(pdfFileName);
// convert PDF pages to TIFF images
converter.Convert(tiffFileName);
}
/// <summary>
/// Event handler for the DocumentConverter.ImageDecodingStarting event.
/// </summary>
/// <param name="sender">Object.</param>
/// <param name="e">Event args.</param>
private static void Converter_ImageDecodingStarting(object sender, Vintasoft.Imaging.ImageDecodingStartingEventArgs e)
{
if (e.RenderingSettings != null)
{
// change decoding file resolution
e.RenderingSettings.Resolution = new Vintasoft.Imaging.Resolution(128, 128);
}
}
''' <summary>
''' Converts PDF document to TIFF file using Vintasoft.Imaging.DocumentConverter class.
''' PDF document is rendered with specified resolution.
''' </summary>
Public Shared Sub ConvertPdfToTiff_CustomResolution_DocumentConverter(pdfFileName As String, tiffFileName As String)
' create the document convertor
Dim converter As New Vintasoft.Imaging.DocumentConverter()
' subscribe to the DocumentConverter.ImageDecodingStarting event
AddHandler converter.ImageDecodingStarting, AddressOf Converter_ImageDecodingStarting
' add PDF pages to the document convertor
converter.Images.Add(pdfFileName)
' convert PDF pages to TIFF images
converter.Convert(tiffFileName)
End Sub
''' <summary>
''' Event handler for the DocumentConverter.ImageDecodingStarting event.
''' </summary>
''' <param name="sender">Object.</param>
''' <param name="e">Event args.</param>
Private Shared Sub Converter_ImageDecodingStarting(sender As Object, e As Vintasoft.Imaging.ImageDecodingStartingEventArgs)
If e.RenderingSettings IsNot Nothing Then
' change decoding file resolution
e.RenderingSettings.Resolution = New Vintasoft.Imaging.Resolution(128, 128)
End If
End Sub
Here is C#/VB.NET code that shows how to convert PDF document with default resolution (96 dpi) to TIFF file using
ImageCollection class:
/// <summary>
/// Converts PDF document to TIFF file using ImageCollection and TiffEncoder classes.
/// </summary>
public static void ConvertPdfToTiff_ImageCollection(string pdfFileName, string tiffFileName)
{
// create image collection
using (Vintasoft.Imaging.ImageCollection imageCollection =
new Vintasoft.Imaging.ImageCollection())
{
// add PDF document to collection
imageCollection.Add(pdfFileName);
// create TiffEncoder
using (Vintasoft.Imaging.Codecs.Encoders.TiffEncoder tiffEncoder =
new Vintasoft.Imaging.Codecs.Encoders.TiffEncoder(true))
{
// set TIFF compression to Zip
tiffEncoder.Settings.Compression =
Vintasoft.Imaging.Codecs.ImageFiles.Tiff.TiffCompression.Zip;
// save images of image collection to TIFF file using TiffEncoder
imageCollection.SaveSync(tiffFileName, tiffEncoder);
}
// dispose images
imageCollection.ClearAndDisposeItems();
}
}
''' <summary>
''' Converts PDF document to TIFF file using ImageCollection and TiffEncoder classes.
''' </summary>
Public Shared Sub ConvertPdfToTiff_ImageCollection(pdfFileName As String, tiffFileName As String)
' create image collection
Using imageCollection As New Vintasoft.Imaging.ImageCollection()
' add PDF document to collection
imageCollection.Add(pdfFileName)
' create TiffEncoder
Using tiffEncoder As New Vintasoft.Imaging.Codecs.Encoders.TiffEncoder(True)
' set TIFF compression to Zip
tiffEncoder.Settings.Compression = Vintasoft.Imaging.Codecs.ImageFiles.Tiff.TiffCompression.Zip
' save images of image collection to TIFF file using TiffEncoder
imageCollection.SaveSync(tiffFileName, tiffEncoder)
End Using
' dispose images
imageCollection.ClearAndDisposeItems()
End Using
End Sub
Here is C#/VB.NET code that shows how to convert PDF document with specified resolution to TIFF file using
ImageCollection class:
/// <summary>
/// Converts PDF document to TIFF file using ImageCollection and TiffEncoder classes.
/// PDF document is rendered with specified resolution.
/// </summary>
public static void ConvertPdfToTiffU_CustomResolution_ImageCollection(string pdfFileName, string tiffFileName, float dpi)
{
// create image collection
using (Vintasoft.Imaging.ImageCollection imageCollection = new Vintasoft.Imaging.ImageCollection())
{
// add PDF document to collection
imageCollection.Add(pdfFileName);
// set rendering settings
imageCollection.SetRenderingSettings(new Vintasoft.Imaging.Codecs.Decoders.RenderingSettings(
dpi,
dpi,
Vintasoft.Imaging.ImageInterpolationMode.HighQualityBilinear,
Vintasoft.Imaging.Drawing.DrawingSmoothingMode.AntiAlias));
// create TiffEncoder
using (Vintasoft.Imaging.Codecs.Encoders.TiffEncoder tiffEncoder =
new Vintasoft.Imaging.Codecs.Encoders.TiffEncoder(true))
{
// set TIFF compression to Zip
tiffEncoder.Settings.Compression =
Vintasoft.Imaging.Codecs.ImageFiles.Tiff.TiffCompression.Zip;
// save images of image collection to TIFF file using TiffEncoder
imageCollection.SaveSync(tiffFileName, tiffEncoder);
}
// dispose images
imageCollection.ClearAndDisposeItems();
}
}
''' <summary>
''' Converts PDF document to TIFF file using ImageCollection and TiffEncoder classes.
''' PDF document is rendered with specified resolution.
''' </summary>
Public Shared Sub ConvertPdfToTiffU_CustomResolution_ImageCollection(pdfFileName As String, tiffFileName As String, dpi As Single)
' create image collection
Using imageCollection As New Vintasoft.Imaging.ImageCollection()
' add PDF document to collection
imageCollection.Add(pdfFileName)
' set rendering settings
imageCollection.SetRenderingSettings(New Vintasoft.Imaging.Codecs.Decoders.RenderingSettings(dpi, dpi, Vintasoft.Imaging.ImageInterpolationMode.HighQualityBilinear, Vintasoft.Imaging.Drawing.DrawingSmoothingMode.AntiAlias))
' create TiffEncoder
Using tiffEncoder As New Vintasoft.Imaging.Codecs.Encoders.TiffEncoder(True)
' set TIFF compression to Zip
tiffEncoder.Settings.Compression = Vintasoft.Imaging.Codecs.ImageFiles.Tiff.TiffCompression.Zip
' save images of image collection to TIFF file using TiffEncoder
imageCollection.SaveSync(tiffFileName, tiffEncoder)
End Using
' dispose images
imageCollection.ClearAndDisposeItems()
End Using
End Sub
Here is C#/VB.NET code that shows how to convert PDF document with default resolution (96 dpi) to TIFF file using
PdfDocument and
TiffFile classes:
/// <summary>
/// Converts PDF document to TIFF file using PdfDocument and TiffFile classes.
/// </summary>
public static void ConvertPdfToTiff_TiffFile(string pdfFileName, string tiffFileName)
{
// open existing PDF document
using (Vintasoft.Imaging.Pdf.PdfDocument pdfDocument = new Vintasoft.Imaging.Pdf.PdfDocument(pdfFileName))
{
// create new TIFF file
using (Vintasoft.Imaging.Codecs.ImageFiles.Tiff.TiffFile tiffFile =
new Vintasoft.Imaging.Codecs.ImageFiles.Tiff.TiffFile(tiffFileName,
Vintasoft.Imaging.Codecs.ImageFiles.Tiff.TiffFileFormat.LittleEndian))
{
// set TIFF compression to Zip
tiffFile.Pages.EncoderSettings.Compression =
Vintasoft.Imaging.Codecs.ImageFiles.Tiff.TiffCompression.Zip;
// for each PDF page
for (int i = 0; i < pdfDocument.Pages.Count; i++)
{
// render PDF page and add as image to Tiff file
tiffFile.Pages.Add(pdfDocument.Pages[i].Render());
// save changes to TIFF file
tiffFile.SaveChanges();
}
}
}
}
''' <summary>
''' Converts PDF document to TIFF file using PdfDocument and TiffFile classes.
''' </summary>
Public Shared Sub ConvertPdfToTiff_TiffFile(pdfFileName As String, tiffFileName As String)
' open existing PDF document
Using pdfDocument As New Vintasoft.Imaging.Pdf.PdfDocument(pdfFileName)
' create new TIFF file
Using tiffFile As New Vintasoft.Imaging.Codecs.ImageFiles.Tiff.TiffFile(tiffFileName, Vintasoft.Imaging.Codecs.ImageFiles.Tiff.TiffFileFormat.LittleEndian)
' set TIFF compression to Zip
tiffFile.Pages.EncoderSettings.Compression = Vintasoft.Imaging.Codecs.ImageFiles.Tiff.TiffCompression.Zip
' for each PDF page
For i As Integer = 0 To pdfDocument.Pages.Count - 1
' render PDF page and add as image to Tiff file
tiffFile.Pages.Add(pdfDocument.Pages(i).Render())
' save changes to TIFF file
tiffFile.SaveChanges()
Next
End Using
End Using
End Sub
Here is C#/VB.NET code that shows how to convert PDF document with specified resolution to TIFF file using
PdfDocument and
TiffFile classes:
/// <summary>
/// Converts PDF document to TIFF file using PdfDocument and TiffFile classes.
/// PDF document is rendered with specified resolution.
/// </summary>
public static void ConvertPdfToTiff_CustomResolution_TiffFile(string pdfFileName, string tiffFileName, float dpi)
{
// open existing PDF document
using (Vintasoft.Imaging.Pdf.PdfDocument pdfDocument =
new Vintasoft.Imaging.Pdf.PdfDocument(pdfFileName))
{
// set resolution
pdfDocument.RenderingSettings.Resolution =
new Vintasoft.Imaging.Resolution(dpi, dpi);
// set rendering mode - optimal balance between rendering speed and quality
pdfDocument.RenderingSettings.RenderingMode = Vintasoft.Imaging.Pdf.PdfRenderingMode.Normal;
// create new TIFF file
using (Vintasoft.Imaging.Codecs.ImageFiles.Tiff.TiffFile tiffFile =
new Vintasoft.Imaging.Codecs.ImageFiles.Tiff.TiffFile(tiffFileName,
Vintasoft.Imaging.Codecs.ImageFiles.Tiff.TiffFileFormat.LittleEndian))
{
// set TIFF compression to Zip
tiffFile.Pages.EncoderSettings.Compression =
Vintasoft.Imaging.Codecs.ImageFiles.Tiff.TiffCompression.Zip;
// for each PDF page
for (int i = 0; i < pdfDocument.Pages.Count; i++)
{
// render PDF page and add as image to Tiff file
tiffFile.Pages.Add(pdfDocument.Pages[i].Render());
// save changes to TIFF file
tiffFile.SaveChanges();
}
}
}
}
''' <summary>
''' Converts PDF document to TIFF file using PdfDocument and TiffFile classes.
''' PDF document is rendered with specified resolution.
''' </summary>
Public Shared Sub ConvertPdfToTiff_CustomResolution_TiffFile(pdfFileName As String, tiffFileName As String, dpi As Single)
' open existing PDF document
Using pdfDocument As New Vintasoft.Imaging.Pdf.PdfDocument(pdfFileName)
' set resolution
pdfDocument.RenderingSettings.Resolution = New Vintasoft.Imaging.Resolution(dpi, dpi)
' set rendering mode - optimal balance between rendering speed and quality
pdfDocument.RenderingSettings.RenderingMode = Vintasoft.Imaging.Pdf.PdfRenderingMode.Normal
' create new TIFF file
Using tiffFile As New Vintasoft.Imaging.Codecs.ImageFiles.Tiff.TiffFile(tiffFileName, Vintasoft.Imaging.Codecs.ImageFiles.Tiff.TiffFileFormat.LittleEndian)
' set TIFF compression to Zip
tiffFile.Pages.EncoderSettings.Compression = Vintasoft.Imaging.Codecs.ImageFiles.Tiff.TiffCompression.Zip
' for each PDF page
For i As Integer = 0 To pdfDocument.Pages.Count - 1
' render PDF page and add as image to Tiff file
tiffFile.Pages.Add(pdfDocument.Pages(i).Render())
' save changes to TIFF file
tiffFile.SaveChanges()
Next
End Using
End Using
End Sub