2017-06-15 2 views
0

Im Migradoc und PDFSharp Proben Seite gibt Hinzufügen ist eine, die ein Migradoc Dokument in ein PDFSharp Dokument zieht: http://www.pdfsharp.net/wiki/MixMigraDocAndPdfSharp-sample.ashxMulti Seite MigraDoc Dokument zu einem PDFSharp Dokument

Aber was ist, wenn das Migradoc Dokument, das ich machen möge hat mehr als eine Seite? In Migradoc behandeln Sie keine Seiten .. es wird automatisch gemacht.

EDIT: GEFUNDEN MY WAY

Nun, wenn Sie "Prepare()" das Dokument ... haben Sie die FormattedDocument() -Methode, und dort können Sie sehen, wie viele Seiten es mit endet. Ich habe unten meine eigene Antwort hinzugefügt.

Antwort

1

Sobald Sie das Migradoc-Dokument Prepare() haben, haben Sie das Layout Ihres Dokuments und die Anzahl der Seiten. Sie müssen also nur jede Seite des MigraDoc-Dokuments durchlaufen, und für jede einzelne müssen Sie eine Seite im PdfDocument erstellen:

private void SampleMultiplePage(ref PdfDocument document, Document migraDocument) 
     { 
      var pdfRenderer = new DocumentRenderer(migraDocument); 

      pdfRenderer.PrepareDocument(); 

      int pages = pdfRenderer.FormattedDocument.PageCount; 
      for (int i = 1; i <= pages; ++i) 
      { 
       var page = document.AddPage(); 

       PageInfo pageInfo = pdfRenderer.FormattedDocument.GetPageInfo(i); 
       page.Width = pageInfo.Width; 
       page.Height = pageInfo.Height; 
       page.Orientation = pageInfo.Orientation; 

       using (XGraphics gfx = XGraphics.FromPdfPage(page)) 
       { 
        // HACK² 
        gfx.MUH = PdfFontEncoding.Unicode; 
        gfx.MFEH = PdfFontEmbedding.Default; 

        pdfRenderer.RenderPage(gfx, i); 
       } 
      } 
     } 
Verwandte Themen