IXpsFixedDocumentReader Interface
Defines methods for reading the parts of a FixedDocument and also for limited types of writing to the document.
Namespace: System.Windows.Xps.Packaging
Assembly: ReachFramework (in ReachFramework.dll)
The IXpsFixedDocumentReader type exposes the following members.
| Name | Description | |
|---|---|---|
![]() | DocumentNumber | Gets the zero-based position of the document in the FixedDocumentSequence. |
![]() | DocumentStructure | Gets the DocumentStructure part, if one exists, of the FixedDocument. |
![]() | FixedPages | Gets a collection of FixedPage readers, one reader for each page in the FixedDocument. |
![]() | PrintTicket | Gets the PrintTicket, if one exists, that is associated with the FixedDocument. |
![]() | SignatureDefinitions | Gets a collection of all the signature definitions that are associated with the FixedDocument. |
![]() | Thumbnail | Gets the thumbnail image, if a thumbnail exists, that is associated with the FixedDocument. |
![]() | Uri | Gets the uniform resource identifier (URI) of the FixedDocument. |
| Name | Description | |
|---|---|---|
![]() | AddDocumentStructure | Adds theDocumentStructure part of XML Paper Specification (XPS) to an XPS package. (Inherited from IDocumentStructureProvider.) |
![]() | AddSignatureDefinition | Adds the specified XpsSignatureDefinition to the FixedDocument. |
![]() | CommitSignatureDefinition | Flushes the package Stream and also commits an XpsSignatureDefinition to the package. |
![]() | GetFixedPage | Gets a reader for the FixedPage with the specified uniform resource identifier (URI). |
![]() | RemoveSignatureDefinition | Removes the specified XpsSignatureDefinition from the FixedDocument. |
The following example shows how to obtain a reference to an object that implements this interface.
private void SignatureDefinitionCommandHandler(object sender, RoutedEventArgs e)
{
SignatureDefinition sigDefDialog = new SignatureDefinition();
if (sigDefDialog.ShowDialog() == System.Windows.Forms.DialogResult.OK)
{
XpsSignatureDefinition signatureDefinition = new XpsSignatureDefinition();
signatureDefinition.RequestedSigner = sigDefDialog.RequestedSigner.Text;
signatureDefinition.Intent = sigDefDialog.Intent.Text;
signatureDefinition.SigningLocale = sigDefDialog.SigningLocale.Text;
try
{
signatureDefinition.SignBy = DateTime.Parse(sigDefDialog.SignBy.Text);
}
catch (FormatException)
{
}
signatureDefinition.SpotId = Guid.NewGuid();
IXpsFixedDocumentSequenceReader docSeq = _xpsDocument.FixedDocumentSequenceReader; //_xpsDocument is type System.Windows.Xps.Packaging.XpsDocument
IXpsFixedDocumentReader doc = docSeq.FixedDocuments[0];
doc.AddSignatureDefinition(signatureDefinition);
doc.CommitSignatureDefinition();
InitializeSignatureDisplay();
}
}
The following example shows how to use an IXpsFixedDocumentReader to obtain an IXpsFixedDocumentReader collection in order to access each page in a FixedDocument.
ShowStatus(" Getting FixedDocumentSequenceReader."); IXpsFixedDocumentSequenceReader fixedDocSeqReader = xpsDocument.FixedDocumentSequenceReader; ShowStatus(" Getting FixedDocumentReaders."); ICollection<IXpsFixedDocumentReader> fixedDocuments = fixedDocSeqReader.FixedDocuments; ShowStatus(" Getting FixedPageReaders."); IEnumerator<IXpsFixedDocumentReader> enumerator = fixedDocuments.GetEnumerator(); enumerator.MoveNext(); ICollection<IXpsFixedPageReader> fixedPages = enumerator.Current.FixedPages; // Add a document structure to each fixed page. int i = 0; foreach (IXpsFixedPageReader fixedPageReader in fixedPages) { XpsResource pageStructure; ShowStatus(" Adding page structure resource:\n '" + Filename(_fixedPageStructures[i]) + "'"); try { // Add a new StoryFragment to hold the page structure. pageStructure = fixedPageReader.AddStoryFragment(); } catch (System.InvalidOperationException) { MessageBox.Show(xpsUnstructuredFile + "\n\nDocument structure cannot be added.\n\n" + Filename(xpsUnstructuredFile) + " might already " + "contain an existing document structure.", "Cannot Add Document Structure", MessageBoxButton.OK, MessageBoxImage.Error); break; } // Copy the page structure to the new StoryFragment. WriteResource(pageStructure, _fixedPageStructures[i++]); } ShowStatus(" Saving and closing the new document.\n"); xpsDocument.Close();
Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (Server Core Role not supported), Windows Server 2008 R2 (Server Core Role supported with SP1 or later; Itanium not supported)
The .NET Framework does not support all versions of every platform. For a list of the supported versions, see .NET Framework System Requirements.
