2017-04-24 20 views
0

Windows 10 x64および一部のPCLドライバでの印刷に問題があります。私がA4サイズに印刷すると、それは底から約2cm切断され、29.7cmの印刷高さの代わりに約27.4cmしか印刷されません。 Windows 7 x64 OSでも同じコードが正常に動作します。 カスタムpaginatorクラスを渡してprintDialog.PrintDocument()メソッドを使用して印刷しています。 私が気づいた興味深いのは、静的なXamlの文字列を解析して、うまくいけば、コードビハインドを使ってwrapPanelにFrameworkElementsを追加しようとすると、フルサイズで印刷が開始されないということです。WPF Windows 10 x64およびPCLドライバでの印刷

> const string pageTemplate = @"<Border 
      xmlns='http://schemas.microsoft.com/winfx/2006/xaml/presentation' 
      xmlns:x='http://schemas.microsoft.com/winfx/2006/xaml' 
      xmlns:mc='http://schemas.openxmlformats.org/markup-compatibility/2006' 

      xmlns:d='http://schemas.microsoft.com/expression/blend/2008' 
      mc:Ignorable='d' 

      BorderThickness='0' Name='page' Margin='0' Width='200' Height='200'> 
       <Grid Name='grid'> 
        <WrapPanel Name='wrapper' Orientation='Horizontal' />      
       </Grid> 
      </Border>"; 

> var page = System.Windows.Markup.XamlReader.Parse(pageTemplate) as 
> Border; 
+0

これは、A4と米国標準の8x11 "との違いですので、間違った用紙サイズが選択されている可能性があります。 –

+0

コメントありがとうHans。私はPrintTicketのPageMediaSizeをISOA4でデバッグして確認しました。ハードコピーされた値もそこにありますが出力は間違っています。私はこれらのプリンタドライバがどのようにA4の代わりに米国のレターサイズに戻っているのか分かりません これらのドライバのプロパティも確認しました。 A4。 – Abdullah

答えて

0

ただ、他の人が利益のために、私はこの問題を解決するために管理私の質問を更新してお答えしたいと思います。 WPFやプリンタドライバのバグかどうかは分かりませんが、私が見つけたのは以下の通りです。 DocumentPaginatorオブジェクトをPrintDialog.PrintDocumentまたはXpsDocumentWriter.Writeメソッドに渡すと、正しいページサイズを維持できませんが、同じページ設定クラスを使用しても各ページのビジュアルを手動で取得してから、個々のページをXpsDocumentWriter.Writeメソッド(バッチモード)では、すべての印刷ドライバで正常に動作します。 私はMicrosoftの誰かが、そのバグかどうか、そして両方の方法が異なる動作をするかどうかにかかわらず、これに関する専門家の意見を募集したいと思います。

関連する問題