PdfSerializer Class
Definition
Write-only serializer that exports documents as PDF.
public class PdfSerializer
Remarks
PDF is an export-only format for this library: Avalonia.Controls.Documents.Serialization.Pdf.PdfSerializer.Deserialize(System.IO.Stream,System.Threading.CancellationToken) always throws NotSupportedException and Avalonia.Controls.Documents.Serialization.Pdf.PdfSerializer.CanDeserialize(System.IO.Stream) always returns .
The exporter is UI-free. It consumes the Avalonia.Controls.Documents.Serialization.Snapshot.DocumentSnapshot directly and never creates controls or requires a dispatcher, so serialization can run on any thread. It does require an initialized Avalonia platform (font manager and text shaper) once content layout is involved; a bare console process without Avalonia cannot export.
This serializer is thread-safe for concurrent operations.
Constructors
| Name | Description |
|---|---|
| PdfSerializer | Initializes a new instance of Avalonia.Controls.Documents.Serialization.Pdf.PdfSerializer. |
PdfSerializer Constructor
Initializes a new instance of Avalonia.Controls.Documents.Serialization.Pdf.PdfSerializer.
public PdfSerializer(Avalonia.Controls.Documents.Serialization.Pdf.PdfSerializerOptions options)
Parameters
options Avalonia.Controls.Documents.Serialization.Pdf.PdfSerializerOptions
PDF serialization options; defaults are used when .
Remarks
Shared serializer options travel on Avalonia.Controls.Documents.Serialization.Pdf.PdfSerializerOptions.Document:
new PdfSerializer(new PdfSerializerOptions { Document = shared }).
Methods
| Name | Description |
|---|---|
| CanDeserialize | Checks if a stream appears to contain this format. |
| Deserialize | Deserializes a document from a stream on the calling thread. |
| DeserializeAsync | Runs Avalonia.Controls.Documents.Serialization.Pdf.PdfSerializer.Deserialize(System.IO.Stream,System.Threading.CancellationToken) on a pool thread. |
| Serialize | Serializes a document snapshot to a stream on the calling thread. |
| SerializeAsync | Runs Avalonia.Controls.Documents.Serialization.Pdf.PdfSerializer.Serialize(Avalonia.Controls.Documents.Serialization.Snapshot.DocumentSnapshot,System.IO.Stream,System.Threading.CancellationToken) on a pool thread. |
CanDeserialize Method
Checks if a stream appears to contain this format.
public bool CanDeserialize(System.IO.Stream stream)
Parameters
stream System.IO.Stream
The stream to check. Must be readable and seekable.
Returns
bool
Always ; PDF reading is not supported.
Remarks
This method does not consume the stream; it restores the original position after checking.
Deserialize Method
Deserializes a document from a stream on the calling thread.
public Avalonia.Controls.Documents.Serialization.Snapshot.DocumentSnapshot Deserialize(System.IO.Stream stream, System.Threading.CancellationToken cancellationToken)
Parameters
stream System.IO.Stream
The stream to read from. Must be readable.
cancellationToken System.Threading.CancellationToken
Cancellation token.
Returns
Avalonia.Controls.Documents.Serialization.Snapshot.DocumentSnapshot
The deserialized Avalonia.Controls.Documents.Serialization.Snapshot.DocumentSnapshot.
Remarks
Defaults to blocking on Avalonia.Controls.Documents.Serialization.IDocumentSerializer.DeserializeAsync(System.IO.Stream,System.Threading.CancellationToken), so a serializer written against the released interface keeps working. Implement this member instead: no format here performs asynchronous I/O, so the asynchronous pair only moves processor-bound work onto a pool thread.
Exceptions
DeserializeAsync Method
Runs Avalonia.Controls.Documents.Serialization.Pdf.PdfSerializer.Deserialize(System.IO.Stream,System.Threading.CancellationToken) on a pool thread.
public System.Threading.Tasks.Task<Avalonia.Controls.Documents.Serialization.Snapshot.DocumentSnapshot> DeserializeAsync(System.IO.Stream stream, System.Threading.CancellationToken cancellationToken)
Parameters
stream System.IO.Stream
The stream to read from.
cancellationToken System.Threading.CancellationToken
Cancellation token.
Returns
System.Threading.Tasks.Task<Avalonia.Controls.Documents.Serialization.Snapshot.DocumentSnapshot>
The deserialized snapshot.
Remarks
A thread-offload convenience, not asynchronous I/O: no format here reads asynchronously. Where you are already off the UI thread, call Avalonia.Controls.Documents.Serialization.Pdf.PdfSerializer.Deserialize(System.IO.Stream,System.Threading.CancellationToken) and keep the thread you are on.
Serialize Method
Serializes a document snapshot to a stream on the calling thread.
public void Serialize(Avalonia.Controls.Documents.Serialization.Snapshot.DocumentSnapshot snapshot, System.IO.Stream stream, System.Threading.CancellationToken cancellationToken)
Parameters
snapshot Avalonia.Controls.Documents.Serialization.Snapshot.DocumentSnapshot
The document snapshot to serialize.
stream System.IO.Stream
The stream to write to. Must be writable.
cancellationToken System.Threading.CancellationToken
Cancellation token.
Remarks
Defaults to blocking on Avalonia.Controls.Documents.Serialization.IDocumentSerializer.SerializeAsync(Avalonia.Controls.Documents.Serialization.Snapshot.DocumentSnapshot,System.IO.Stream,System.Threading.CancellationToken), so a serializer written against the released interface keeps working. Implement this member instead.
Exceptions
SerializeAsync Method
Runs Avalonia.Controls.Documents.Serialization.Pdf.PdfSerializer.Serialize(Avalonia.Controls.Documents.Serialization.Snapshot.DocumentSnapshot,System.IO.Stream,System.Threading.CancellationToken) on a pool thread.
public System.Threading.Tasks.Task SerializeAsync(Avalonia.Controls.Documents.Serialization.Snapshot.DocumentSnapshot snapshot, System.IO.Stream stream, System.Threading.CancellationToken cancellationToken)
Parameters
snapshot Avalonia.Controls.Documents.Serialization.Snapshot.DocumentSnapshot
The snapshot to serialize.
stream System.IO.Stream
The stream to write to.
cancellationToken System.Threading.CancellationToken
Cancellation token.
Returns
System.Threading.Tasks.Task
Remarks
A thread-offload convenience, not asynchronous I/O. The snapshot is already detached from the document, so the work needs no UI thread either way.
Properties
| Name | Description |
|---|---|
| CanRead | Whether this serializer supports reading. Read-only UIs can filter serializer lists on this instead of catching NotSupportedException from Avalonia.Controls.Documents.Serialization.IDocumentSerializer.Deserialize(System.IO.Stream,System.Threading.CancellationToken). |
| CanWrite | Whether this serializer supports writing documents. |
| FileExtension | Gets the file extension including the dot (e.g., ".rtf"). |
| FormatName | Gets the format name this serializer handles (e.g., "Rtf", "Docx", "PlainText"). |
| MimeType | Gets the MIME type for the format (e.g., "application/rtf"). |
CanRead Property
Whether this serializer supports reading. Read-only UIs can filter serializer lists on this instead of catching NotSupportedException from Avalonia.Controls.Documents.Serialization.IDocumentSerializer.Deserialize(System.IO.Stream,System.Threading.CancellationToken).
public bool CanRead { get; set; }
Remarks
Defaults to so a serializer written before this member existed still compiles. A serializer that cannot read says so.
CanWrite Property
Whether this serializer supports writing documents.
public bool CanWrite { get; set; }
Remarks
Defaults to so a serializer written before this member existed still compiles. A serializer that cannot write says so.
FileExtension Property
Gets the file extension including the dot (e.g., ".rtf").
public string FileExtension { get; set; }
FormatName Property
Gets the format name this serializer handles (e.g., "Rtf", "Docx", "PlainText").
public string FormatName { get; set; }
MimeType Property
Gets the MIME type for the format (e.g., "application/rtf").
public string MimeType { get; set; }