1

FlowDocument で定義されたレポートがあります。そのレポートには、横向きモードで印刷したいセクションがいくつかあります。そのために、横向きとしてマークされたセクション用に横向きの FlowDocument を作成する、汚い DocumentPaginator ハックを作成しました。

    public override DocumentPage GetPage(int pageNumber)
    {
    // some code

                if (section.Name.Equals("landscapePage"))
                {
                    var landscapeDocument = new FlowDocument();

                    landscapeDocument.PageWidth = document.PageHeight;
                    landscapeDocument.ColumnWidth = document.PageWidth - 50;
                    landscapeDocument.PageHeight = document.PageWidth;
                    landscapeDocument.Blocks.Add(section);
                    var landscapePaginator = ((IDocumentPaginatorSource)landscapeDocument).DocumentPaginator;
                    var landscapePage = landscapePaginator.GetPage(0);
                    return landscapePage;
                }

    // more code

XPS ドキュメントに印刷すると、これは期待どおりに見えます。横向きのマークが付いたページは、XPS Viewer では横向きモードで表示されます。ただし、ドキュメントを直接または XPS ビューアーから印刷すると、プリンターは横向きのページを回転せず、コンテンツの右側がトリミングされます。

また、Word で混合モード ドキュメントを作成しようとしましたが、期待どおりに印刷されましたが、同じドキュメントを XPS として保存し、XPS Viewer を使用して印刷すると、横向きのページが切り取られます。これは、XPS が混在したページの向きをサポートするかどうか疑問に思います。

ページからビジュアルを抽出し、90 度回転変換を追加できることはわかっています。私はそれを試してみましたが、印刷時には問題なく動作しますが、XPS または PDF として保存するとページが明らかに回転し、印刷物をモニターで表示すると最適ではありません。

回転変換を使用せずに FlowDocuments を混合方向で印刷する方法はありますか?

4

0 に答える 0