How to convert FlowDocument to FixedDocument using FlowDocument's IDocumentPaginatorSource DocumentPaginator?

后端 未结 1 1917
暗喜
暗喜 2020-12-30 12:02

I have:

DocumentPaginator dp = ((IDocumentPaginatorSource)document).DocumentPaginator;

and:

FlowDocument document = new Flo         


        
相关标签:
1条回答
  • 2020-12-30 12:23

    No, there doesn't seem to be a better way. But you don't need to save it to disk:

    var paginator = ((IDocumentPaginatorSource)flowDocument).DocumentPaginator;
    var package = Package.Open(new MemoryStream(), FileMode.Create, FileAccess.ReadWrite);
    var packUri = new Uri("pack://temp.xps");
    PackageStore.RemovePackage(packUri);
    PackageStore.AddPackage(packUri, package);
    var xps = new XpsDocument(package, CompressionOption.NotCompressed, packUri.ToString());
    XpsDocument.CreateXpsDocumentWriter(xps).Write(paginator);
    FixedDocument doc = xps.GetFixedDocumentSequence().References[0].GetDocument(true);
    
    0 讨论(0)
提交回复
热议问题