Class PdfDocument
Inheritance
System.Object
PdfDocument
Implements
System.IDisposable
Assembly: IronPdf.dll
Syntax
public sealed class PdfDocument : Object
The entry point for converting a PDF file to SVG output in C# is PdfDocument, the handle through which every page, image, metadata record, and permission flag in a PDF becomes accessible to your code. Call the static Open or OpenAsync factory to load a file from a path or a Stream, then work with the resulting object to inspect content and drive rendering. Because PdfDocument implements Dispose, wrap it in a using block to release native resources promptly.
**Opening a document** accepts two overloads for each transport: a string path and a Stream. The stream overload accepts a leaveOpen flag (default false) that controls whether the underlying stream is closed when the document is disposed. Both overloads accept an OpenOptions instance for fine-grained load control and a CancellationToken for cooperative cancellation. OpenAsync mirrors those signatures and returns Task<PdfDocument>, making it the right choice in ASP.NET Core handlers or any async pipeline.
**Working with the loaded document** centers on six properties grouped by concern:
- Content access: Pages (PdfPageCollection) enumerates every page for SVG conversion; Images (ImageEnumerable) iterates embedded raster images across the document. - Document identity: Info (DocumentInfo) exposes title, author, creation date, and other XMP/Info-dictionary fields. - Security: IsEncrypted reports whether the file is password-protected; Permissions (DocumentPermissions) details what operations the document allows, such as printing or copying. - Layering: OptionalContentGroups (OptionalContentGroupCollection) gives access to PDF optional content groups (OCG layers), which control visibility of layer-separated content during conversion.
Because Open is synchronous, it suits console tools and batch scripts where blocking is acceptable. For web applications or desktop apps with a responsive UI, prefer OpenAsync to keep the load operation off the main thread.
using PdfToSvg;
await using var pdf = await PdfDocument.OpenAsync("report.pdf");
Console.WriteLine($"Title: {pdf.Info.Title}");
Console.WriteLine($"Pages: {pdf.Pages.Count}");
Console.WriteLine($"Encrypted: {pdf.IsEncrypted}");
foreach (var page in pdf.Pages)
await page.SaveAsSvgAsync($"page_{page.PageNumber}.svg");
Explore further at the IronPDF get-started guide, the PDF-to-SVG how-to, the PDF metadata how-to, and the PDF security examples.
Properties
Images
Declaration
public ImageEnumerable Images { get; }
Property Value
Info
Declaration
public DocumentInfo Info { get; }
Property Value
IsEncrypted
Declaration
public bool IsEncrypted { get; }
Property Value
| Type |
Description |
| System.Boolean |
|
OptionalContentGroups
Declaration
public OptionalContentGroupCollection OptionalContentGroups { get; }
Property Value
Pages
Declaration
public PdfPageCollection Pages { get; }
Property Value
Permissions
Declaration
public DocumentPermissions Permissions { get; }
Property Value
Methods
Dispose()
Declaration
Open(Stream, Boolean, OpenOptions, CancellationToken)
Declaration
public static PdfDocument Open(Stream stream, bool leaveOpen = false, OpenOptions options = null, CancellationToken cancellationToken = null)
Parameters
| Type |
Name |
Description |
| System.IO.Stream |
stream |
|
| System.Boolean |
leaveOpen |
|
| OpenOptions |
options |
|
| System.Threading.CancellationToken |
cancellationToken |
|
Returns
Open(String, OpenOptions, CancellationToken)
Declaration
public static PdfDocument Open(string path, OpenOptions options = null, CancellationToken cancellationToken = null)
Parameters
| Type |
Name |
Description |
| System.String |
path |
|
| OpenOptions |
options |
|
| System.Threading.CancellationToken |
cancellationToken |
|
Returns
OpenAsync(Stream, Boolean, OpenOptions, CancellationToken)
Declaration
public static Task<PdfDocument> OpenAsync(Stream stream, bool leaveOpen = false, OpenOptions options = null, CancellationToken cancellationToken = null)
Parameters
| Type |
Name |
Description |
| System.IO.Stream |
stream |
|
| System.Boolean |
leaveOpen |
|
| OpenOptions |
options |
|
| System.Threading.CancellationToken |
cancellationToken |
|
Returns
| Type |
Description |
| System.Threading.Tasks.Task<PdfDocument> |
|
OpenAsync(String, OpenOptions, CancellationToken)
Declaration
public static Task<PdfDocument> OpenAsync(string path, OpenOptions options = null, CancellationToken cancellationToken = null)
Parameters
| Type |
Name |
Description |
| System.String |
path |
|
| OpenOptions |
options |
|
| System.Threading.CancellationToken |
cancellationToken |
|
Returns
| Type |
Description |
| System.Threading.Tasks.Task<PdfDocument> |
|
Implements
System.IDisposable