2017-06-15 85 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); 
       } 
      } 
     }