7

XPSドキュメントに変換して電子メールに添付してすべて一緒に送信したいFlowDocumentがあります。私はこのコードを使用しています

 public static MemoryStream FlowDocumentToXPS(FlowDocument flowDocument, int width, int height)
    {
        MemoryStream stream = new MemoryStream();
        using (Package package = Package.Open(stream, FileMode.Create, FileAccess.ReadWrite))
        {
            using (XpsDocument xpsDoc = new XpsDocument(package, CompressionOption.Maximum))
            {                  
                XpsSerializationManager rsm = new XpsSerializationManager(new XpsPackagingPolicy(xpsDoc), false);
                DocumentPaginator paginator = ((IDocumentPaginatorSource)flowDocument).DocumentPaginator;
                paginator.PageSize = new System.Windows.Size(width, height);
                rsm.SaveAsXaml(paginator);
                rsm.Commit();                
            }
        }
        stream.Position = 0;
        Console.WriteLine(stream.Length);
        Console.WriteLine(stream.Position);
        return stream;   
    }

次に、次のコードを使用して添付します。

Attachment xps = new Attachment(FlowDocumentToXPS(FD, 768, 676), "FileName.xps", "application/vnd.ms-xpsdocument");

ここで、FDは変換したいFlowDocumentですが、0.0KBサイズのXPSファイルが添付されており、XPSビューアーで開くことができません。ここに何がありませんか?

編集:機能した最終的なコード、コメントを参照してください

前もって感謝します

4

1 に答える 1

2

解決しました。質問の投稿の下にあるコメントと、投稿自体ですでに行われた編集を参照してください。

于 2011-07-28T13:44:21.497 に答える