Overview
The PdfFileSource class represents the content of an existing PDF file.
Using PdfFileSource
Create an Instance
To create an instance of PdfFileSource, you should pass a FileStream object, containing the PDF document, to the constructor of the class.
Example 1: Create a PdfFileSource
using (PdfFileSource fileSource = new PdfFileSource(File.OpenRead(path)))
{
// ...
}
An additional option you can use is the overload that accepts a parameter of type PdfImportSettings. This overload enables you to handle password encrypted documents.
Example 2: Open encrypted document
public void ReadDocument(string path)
{
PdfImportSettings importSettings = new PdfImportSettings();
importSettings.UserPasswordNeeded += this.Settings_UserPasswordNeeded;
using (PdfFileSource fileSource = new PdfFileSource(File.OpenRead(path), importSettings, leaveStreamOpen: false))
{
// ...
}
}
private void Settings_UserPasswordNeeded(object sender, PasswordNeededEventArgs e)
{
e.Password = "pass";
}
PdfFileSource inherits from IDisposable. Make sure the object is disposed when you are done with it. The best way to ensure this is handled properly is to wrap it in a using statement.
Members
PdfFileSource exposes the Pages property, which is of type PdfPageSource[] and allows you access the pages of the imported document.
Example 3: Iterate the pages of a document
using (PdfFileSource fileSource = new PdfFileSource(File.OpenRead(path)))
{
foreach (PdfPageSource pageSource in fileSource.Pages)
{
// ...
}
}
You can use the indexer of the Pages property to obtain a specific page of the document and split it. Then, you can save the separated page using PdfStreamWriter.