PDFFile Class
Summary
PDF file features class.
Syntax
[SerializableAttribute()]
public class PDFFile
[SerializableAttribute()]
public ref class PDFFile
Remarks
The PDFFile class allows the following actions on Adobe Document Format (PDF) and Postscript (PS) files:
- Get the PDF or PS version of a file (GetPDFFileType method).
- Determine whether a PDF file is encrypted (IsEncrypted method).
- Get a PDF file's properties or metadata, such as title, author, keywords, etc. (Load method).
- Update the properties of any PDF file (SetDocumentProperties method).
- Get the number and page sizes of a PDF file (GetPageCount method and Pages property).
- Quickly convert any PDF file to PDF/A while optionally updating its properties (ConvertToPDFA method).
- Linearize (optimize for Web viewing) any PDF file while optionally updating its properties (Linearize method).
- Convert or encrypt any PDF file from any version to another (Convert method).
- Convert any Postscript file to PDF (Distill method).
- Merge a range or all pages from multiple existing PDF files into a single PDF file (MergeFiles or MergeWith methods).
- Extract pages from an existing PDF file (ExtractPages method).
- Delete a range of pages from an existing PDF file (DeletePages method).
- Insert all or a range of pages from an existing PDF file into another one (InsertPagesFrom method).
- Replace all or a range of pages from an existing PDF file into another one (ReplacePagesFrom method).
- Add bookmarks to an existing PDF file to update its Table of Contents (TOC) (WriteBookmarks method).
- Clear the bookmarks (and internal links) from an existing file (ClearBookmarks).
- Add annotations to an existing PDF file to update its Table of Contents (TOC)(WriteAnnotations method).
- Clear the annotations from an existing file (ClearAnnotations).
- Add a digital signature to a PDF document from a PFX file (SignDocument method).
- Rotate one or more pages in an existing PDF document (RotatePages method).
- Read all the JavaScript actions from a PDF file using ExtractJavaScript.
- Write or replace JavaScript actions to a PDF file using WriteJavaScript. The same method can also delete all the JavaScript actions from an existing file.
All the methods described above can set the compatibility level (version) of the created or updated PDF using the CompatibilityLevel property, update its properties using the DocumentProperties property or set the security and encryption mode using the SecurityOptions property.
To use most of these properties methods, construct a PDFFile object with the PDF file and optional password before performing the action.
The C# PDF File Demos shipped with LEADTOOLS contain a wizard-style user interface to perform all the above actions on existing PDF and PS files.
You can also use the PDFDocument class to parse a PDF file and extract its objects such as text (without invoking OCR), images, hyperlinks, annotations, form fields, digital signatures, internal links and bookmarks.
Example
This example will show the properties of an existing PDF file, update its properties and then save the file to a new file.
using Leadtools.WinForms;
using Leadtools;
using Leadtools.Codecs;
using Leadtools.Controls;
using Leadtools.Drawing;
using Leadtools.ImageProcessing;
using Leadtools.Pdf;
using Leadtools.Svg;
public void PDFFileExample()
{
string sourceFileName = Path.Combine(LEAD_VARS.ImagesDir, @"Leadtools.pdf");
string destFileName = Path.Combine(LEAD_VARS.ImagesDir, @"LEAD_14.pdf");
// Load the properties of the file
ShowProperties("Source file", sourceFileName);
// Update the properties of the file
PDFFile file = new PDFFile(sourceFileName);
file.DocumentProperties = new PDFDocumentProperties();
file.DocumentProperties.Author = "Me";
file.DocumentProperties.Title = "My title";
file.DocumentProperties.Subject = "My subject";
file.DocumentProperties.Creator = "My application";
file.DocumentProperties.Modified = DateTime.Now;
file.SetDocumentProperties(destFileName);
// Show the properties of the new file
ShowProperties("Destination file", destFileName);
}
private static void ShowProperties(string message, string fileName)
{
Console.WriteLine(message);
// Get the properties of the file
PDFFile file = new PDFFile(fileName);
file.Load();
PDFDocumentProperties props = file.DocumentProperties;
Console.WriteLine(" Title: {0}", props.Title);
Console.WriteLine(" Author: {0}", props.Author);
Console.WriteLine(" Subject: {0}", props.Subject);
Console.WriteLine(" Keywords: {0}", props.Keywords);
Console.WriteLine(" Creator: {0}", props.Creator);
Console.WriteLine(" Producer: {0}", props.Producer);
Console.WriteLine(" Created: {0}", props.Created);
Console.WriteLine(" Modified: {0}", props.Modified);
Console.WriteLine("----------:");
}
static class LEAD_VARS
{
public const string ImagesDir = @"C:\LEADTOOLS23\Resources\Images";
}
import java.io.ByteArrayInputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.FileReader;
import java.io.IOException;
import java.io.InputStream;
import java.nio.file.Files;
import java.nio.file.Paths;
import java.nio.file.StandardCopyOption;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.Scanner;
import org.junit.*;
import org.junit.runner.JUnitCore;
import org.junit.runner.Result;
import org.junit.runner.notification.Failure;
import static org.junit.Assert.*;
import leadtools.*;
import leadtools.codecs.*;
import leadtools.pdf.*;
public void pdfFileExample() {
final String LEAD_VARS_IMAGES_DIR = "C:\\LEADTOOLS23\\Resources\\Images";
String sourceFileName = combine(LEAD_VARS_IMAGES_DIR, "Leadtools.pdf");
String destFileName = combine(LEAD_VARS_IMAGES_DIR, "LEAD_14.pdf");
// Load the properties of the file
pdfShowProperties("Source file", sourceFileName);
// Update the properties of the file
PDFFile file = new PDFFile(sourceFileName);
PDFDocumentProperties properties = new PDFDocumentProperties();
properties.setAuthor("Me");
properties.setTitle("My title");
properties.setSubject("My subject");
properties.setCreator("My application");
properties.setModified(new Date());
file.setDocumentProperties(properties);
file.extractPages(1, file.getPageCount(), destFileName);
// Show the properties of the new file
pdfShowProperties("Destination file", destFileName);
PDFFile savedFile = new PDFFile(destFileName);
savedFile.load();
assertTrue(savedFile.getDocumentProperties().getAuthor().equals("Me"));
}
private static void pdfShowProperties(String message, String fileName) {
System.out.println(message);
// Get the properties of the file
PDFFile file = new PDFFile(fileName);
file.load();
PDFDocumentProperties props = file.getDocumentProperties();
System.out.printf(" Title: %s%n", props.getTitle());
System.out.printf(" Author: %s%n", props.getAuthor());
System.out.printf(" Subject: %s%n", props.getSubject());
System.out.printf(" Keywords: %s%n", props.getKeywords());
System.out.printf(" Creator: %s%n", props.getCreator());
System.out.printf(" Producer: %s%n", props.getProducer());
System.out.printf(" Created: %s%n", props.getCreated());
System.out.printf(" Modified: %s%n", props.getModified());
System.out.printf("----------:");
}
Requirements
Target Platforms
See Also