在Migradoc和PDFSharp示例页面中,有一个将Migradoc文档绘制到PDFSharp文档中:http://www.pdfsharp.net/wiki/MixMigraDocAndPdfSharp-sample.ashx
但是,如果我要渲染的Migradoc文档有多个页面呢? 在Migradoc中,您不处理页面..它是自动完成的。
编辑:找到我的方式
好吧,一旦你“准备()”文档......你有FormattedDocument()方法,在那里你可以看到它最终有多少页面。我在下面添加了自己的回复。
答案 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);
}
}
}