WPF XpsDocumentWriter

0

Witam serdecznie.

Mam pewien problem, otóż napisałem małą aplikację, która pobiera dane z bazy danych i tworzy raport, który jest zapisywany jako xps i konwertowany na pdf.
Raport ma wielkość jednej strony A4 i składa się z grida o wymiarach 1123x794, który zawiera wszystkie informacje.
Mój kod to :

 
 XpsDocument dokumentXPS = new XpsDocument("RAPORT.xps", FileAccess.ReadWrite);
 XpsDocumentWriter dw = XpsDocument.CreateXpsDocumentWriter(dokumentXPS);
 dw.Write(GridRaport);
 dokumentXPS.Close();

Problem pojawia się, kiedy rozdzielczość monitora jest mniejsza niż wymiar mojego grida.
Gdy rozdzielczość jest mniejsza niż 1280x1024 raport w pliku xps jest obcinany.

Czy istnieje jakiś sposób, żeby zapisać do xps jakąkolwiek kontrolkę, która jest większa niż ekran monitora?
Przypuśćmy, że raport musiałby się zmieścić na stronie A1

Bardzo proszę doświadczonych forumowiczów o wszelkie wskazówki.

Pozdrawiam serdecznie.

0

Witam.

Udało mi się rozwiązać problem za pomocą tego kodu:

  XpsDocument dokumentXPS = new XpsDocument("RAPORT.xps", FileAccess.ReadWrite);
  XpsDocumentWriter dw = XpsDocument.CreateXpsDocumentWriter(dokumentXPS);
 
  FixedDocument dok = new FixedDocument();
  FixedPage fp = new FixedPage();
  PageContent pc = new PageContent();

  oknoRaportu.Content = null;    //Odłączenie grida z raportem z okienka, w którym się znajdował. Bez tej linijki dostawałem błąd "Specified element is already the logical child of another element. Disconnect it first"
  fp.Children.Add(oknoRaportu.GridRaport);  
  ((IAddChild)pc).AddChild(fp);
  dok.Pages.Add(pc);
  dw.Write(dok);
  dw.Write(GridRaport);
  dokumentXPS.Close();

 

Pozdrawiam serdecznie

1 użytkowników online, w tym zalogowanych: 0, gości: 1