IXpsFixedDocumentReader 介面

定義

定義方法,以用於讀取 FixedDocument 的組件,並用於寫入至文件的有限型別。

C#
public interface IXpsFixedDocumentReader : System.Windows.Xps.Packaging.IDocumentStructureProvider
實作

範例

下列範例示範如何取得實作此介面之物件的參考。

C#

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();
    }
}

下列範例示範如何使用 IXpsFixedDocumentReader 來取得 IXpsFixedDocumentReader 集合,以存取 中的每個 FixedDocument 頁面。

C#
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();

屬性

DocumentNumber

取得 FixedDocumentSequence 中以零起始的文件位置。

DocumentStructure

取得 FixedDocumentDocumentStructure 組件 (如果存在)。

FixedPages

取得 FixedPage 讀取器的集合,FixedDocument 中的每個頁面都有一個讀取器。

PrintTicket

取得與 PrintTicket 相關聯的 FixedDocument (如果有的話)。

SignatureDefinitions

取得與 FixedDocument 相關聯的所有簽章定義之集合。

Thumbnail

取得與 FixedDocument 相關聯的縮圖影像 (如果有縮圖的話)。

Uri

取得 FixedDocument 的統一資源識別項 (URI)。

方法

AddDocumentStructure()

DocumentStructure XML 檔規格 (XPS) 部分新增至 XPS 套件。

(繼承來源 IDocumentStructureProvider)
AddSignatureDefinition(XpsSignatureDefinition)

將指定的 XpsSignatureDefinition 加入至 FixedDocument

CommitSignatureDefinition()

清除 Stream 封裝,並將 XpsSignatureDefinition 認可至封裝。

GetFixedPage(Uri)

取得具有所指定統一資源識別項 (URI) 的 FixedPage 讀取器。

RemoveSignatureDefinition(XpsSignatureDefinition)

將指定的 XpsSignatureDefinitionFixedDocument 中移除。

適用於

產品 版本
.NET Framework 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8
Windows Desktop 3.0, 3.1, 5, 6, 7