IXpsFixedDocumentSequenceReader 介面
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
定義讀取 FixedDocumentSequence 之組件的方法。
public interface class IXpsFixedDocumentSequenceReader
public interface IXpsFixedDocumentSequenceReader
type IXpsFixedDocumentSequenceReader = interface
Public Interface IXpsFixedDocumentSequenceReader
範例
下列範例示範如何取得實作此介面之物件的參考。
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();
}
}
Private Sub SignatureDefinitionCommandHandler(sender As Object, e As RoutedEventArgs)
Using sigDefDialog As New SignatureDefinition()
If sigDefDialog.ShowDialog() = System.Windows.Forms.DialogResult.OK Then
Dim signatureDefinition As New XpsSignatureDefinition With {
.RequestedSigner = sigDefDialog.RequestedSigner.Text,
.Intent = sigDefDialog.Intent.Text,
.SigningLocale = sigDefDialog.SigningLocale.Text
}
Try
signatureDefinition.SignBy = Date.Parse(sigDefDialog.SignBy.Text)
Catch e1 As FormatException
End Try
signatureDefinition.SpotId = Guid.NewGuid()
Dim docSeq As IXpsFixedDocumentSequenceReader = _xpsDocument.FixedDocumentSequenceReader '_xpsDocument is type System.Windows.Xps.Packaging.XpsDocument
Dim doc As IXpsFixedDocumentReader = docSeq.FixedDocuments(0)
doc.AddSignatureDefinition(signatureDefinition)
doc.CommitSignatureDefinition()
InitializeSignatureDisplay()
End If
End Using
End Sub
下列範例示範如何取得 FixedDocumentSequenceReader ,以存取 FixedDocument 中的 XpsDocument 元件。
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();
ShowStatus(" Getting FixedDocumentSequenceReader.")
Dim fixedDocSeqReader As IXpsFixedDocumentSequenceReader = xpsDocument.FixedDocumentSequenceReader
ShowStatus(" Getting FixedDocumentReaders.")
Dim fixedDocuments As ICollection(Of IXpsFixedDocumentReader) = fixedDocSeqReader.FixedDocuments
ShowStatus(" Getting FixedPageReaders.")
Dim enumerator As IEnumerator(Of IXpsFixedDocumentReader) = fixedDocuments.GetEnumerator()
enumerator.MoveNext()
Dim fixedPages As ICollection(Of IXpsFixedPageReader) = enumerator.Current.FixedPages
' Add a document structure to each fixed page.
Dim i As Integer = 0
For Each fixedPageReader As IXpsFixedPageReader In fixedPages
Dim pageStructure As XpsResource
ShowStatus(" Adding page structure resource:" & vbLf & " '" & Filename(_fixedPageStructures(i)) & "'")
Try
pageStructure = fixedPageReader.AddStoryFragment()
Catch e2 As InvalidOperationException
System.Windows.MessageBox.Show(xpsUnstructuredFile & vbLf & vbLf & "Document structure cannot be added." & vbLf & vbLf & Filename(xpsUnstructuredFile) & " might already " & "contain an existing document structure.",
"Cannot Add Document Structure",
MessageBoxButton.OK,
MessageBoxImage.Error)
Exit For
End Try
' Copy the page structure to the new StoryFragment.
WriteResource(pageStructure, _fixedPageStructures(i))
i += 1
Next fixedPageReader
ShowStatus(" Saving and closing the new document." & vbLf)
xpsDocument.Close()
屬性
FixedDocuments |
取得 FixedDocument 中的每個文件之 FixedDocumentSequence 讀取器的集合。 |
PrintTicket |
取得與 PrintTicket 相關聯的 FixedDocument (如果有的話)。 |
Thumbnail |
取得與 FixedDocumentSequence 相關聯的縮圖影像 (如果有的話)。 |
Uri |
取得 FixedDocumentSequence 的統一資源識別項 (URI)。 |
方法
GetFixedDocument(Uri) |
取得具有所指定統一資源識別項 (URI) 的 FixedDocument 讀取器。 |