将多页MigraDoc文档添加到PDFSharp文档

时间:2017-06-15 23:45:50

标签: pdfsharp migradoc

在Migradoc和PDFSharp示例页面中,有一个将Migradoc文档绘制到PDFSharp文档中:http://www.pdfsharp.net/wiki/MixMigraDocAndPdfSharp-sample.ashx

但是,如果我要渲染的Migradoc文档有多个页面呢? 在Migradoc中,您不处理页面..它是自动完成的。

编辑:找到我的方式

好吧,一旦你“准备()”文档......你有FormattedDocument()方法,在那里你可以看到它最终有多少页面。我在下面添加了自己的回复。

1 个答案:

答案 0 :(得分:3)

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