2009-12-30 3 views
3

인쇄 할 FlowDocument를 가져 오려고합니다. 하루에도 여러 페이지를 사용해 보았지만 나는 실패했고 더 간단한 것을 선택했다. 그러나 텍스트가 페이지에 출력되지 않을 때를 설명하기가 어려웠다. 이것은 제가 생각하기에는 눈이 멀었습니다. 아래에 두 개의 표가 있으며 두 개 모두에 변환기를 배치하면 해당 값이 FlowDocument의 DataContext를 통해 채워집니다.WPF : FlowDocument 인쇄

PrintDialog dlg = new PrintDialog(); 
if(dlg.ShowDialog() == true) { 
    int margin = 5; 
    Size pageSize = new Size(dlg.PrintableAreaWidth - margin * 2, dlg.PrintableAreaHeight - margin * 2); 
    FlowDocument document = WPFUtils.LoadFlowDocument(System.IO.Path.Combine(Utils.GetApplicationPath(), "AccountPrintView.xaml"), account); // loads the document from a XAML file 
    IDocumentPaginatorSource paginator = document as IDocumentPaginatorSource; 
    paginator.DocumentPaginator.PageSize = pageSize; 
    dlg.PrintDocument(paginator.DocumentPaginator, "Print output"); 
} 

이걸로 끝 종류의 내 기지에서 해요, 내가 문제를 볼 수 없습니다 :

문서

<Table> 
    <Table.Columns> 
     <TableColumn Width="Auto"/> 
     <TableColumn Width="34"/> 
     <TableColumn Width="Auto"/> 
    </Table.Columns> 
    <TableRowGroup> 
     <TableRow> 
      <TableCell> 
       <Paragraph> 
        <Image Source="{Binding Icon,Converter={StaticResource IconConverter},ConverterParameter=32}" Width="32" Height="32"/> 
       </Paragraph> 
      </TableCell> 
      <TableCell> 
       <Paragraph> 
        <TextBlock Text="{Binding Name,Converter={StaticResource dbg}}" TextWrapping="Wrap" TextTrimming="CharacterEllipsis" VerticalAlignment="Center" FontSize="18" Foreground="Black" /> 
       </Paragraph> 
      </TableCell> 
      <TableCell> 
       <Paragraph> 
        <TextBlock Text="Static text works fine" TextAlignment="Right" /> 
        <TextBlock Text="Static text works here too fine" TextAlignment="Right" /> 
       </Paragraph> 
      </TableCell> 
     </TableRow> 
    </TableRowGroup> 
</Table> 
<BlockUIContainer> 
    <Line Stretch="Fill" Stroke="DarkBlue" X2="1"/> 
</BlockUIContainer> 
사용하여 인쇄됩니다. 누군가 빛을 발할 수 있다면 정말 고맙겠습니다.

답변

1

이것은 실제로는 대답이 아니지만 FlowDocumentReader를 사용할 수있는 위치에 있습니까? 그것은 Ctrl-P (그리고 "Print"메쏘드를 드러낸다.)에 이미 pre-wired 된 Print 물건들을 가지고있다. 당신이 이것을 시도해 볼지도 모른다 : Printing a Windows Foundation Presentation FlowDocument

+0

나는 다른 곳에서 거의 같은 코드를 사용 해왔다. 애플 리케이션. 나는 그것이 정말로 명백한 무엇인가일지도 모른다라고 생각했다. 그러나 아마. :( – Echilon