2017-06-15 83 views
0

在Migradoc和PDFSharp樣頁,有一個繪製一個Migradoc文檔轉換爲PDFSharp文件:http://www.pdfsharp.net/wiki/MixMigraDocAndPdfSharp-sample.ashx添加多頁MigraDoc文檔到PDFSharp文件

但怎麼樣,如果Migradoc文件我想渲染有多個頁面? 在Migradoc中,您不處理頁面......它會自動完成。

編輯:發現我的方式

那麼,一旦你「準備()」的文件......你有FormattedDocument()方法,在那裏你可以看到有多少頁結束有。我在下面添加了我自己的回覆。

回答

1

一旦你Prepare() Migradoc文件,你有你的文件的佈局和頁數。因此,您只需循環遍歷MigraDoc文檔的每個頁面,並且您需要在PdfDocument中創建一個頁面:

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); 
       } 
      } 
     }