2016-07-31 10 views
1

MigraDoc을 사용하여 PDF 보고서를 생성했습니다. 초기 코드는 다음과 같습니다. -XGraphics를 사용하여 MigraDoc 문서로 그리기

MigraDoc.DocumentObjectModel.Document document = new MigraDoc.DocumentObjectModel.Document(); 

MigraDoc.DocumentObjectModel.Section section = document.AddSection(); 
... 

Paragraph paragraph = section.Headers.Primary.AddParagraph(); 
.... 

table = section.AddTable(); 
... 

paragraph = section.Footers.Primary.AddParagraph(); 
... 

PDF가 성공적으로 렌더링되었습니다. 이제이 문서의 페이지에 그래픽을 추가하고 싶습니다. 나는 그것을 위해 여러 기사를 살펴본 결과 MigraDoc.DocumentObjectModel.Document 대신에 PdfDocument 클래스를 사용하는 모든 사용자를 발견했다. XGraphics를 사용하여 MigraDoc.DocumentObjectModel.Document 문서의 페이지에 그래픽을 적용 할 수 있습니까? 가능한 경우, 무엇을 가장 좋은 방법으로 혼합하는 것입니다 PdfDocumentMigraDoc.DocumentObjectModel.Document 동일하게 수행하려면?

답변

1

MigraDoc은 PDFsharp와 XGraphics 객체를 사용하여 PDF 페이지를 만듭니다.

MigraDoc에서 만든 페이지에 내용을 추가하는 방법에는 여러 가지가 있습니다. 이 게시물에서 가져온

// Alternative rendering with progress indicator. 
// Set a callback for phase 1. 
pdfRenderer.DocumentRenderer.PrepareDocumentProgress += PrepareDocumentProgress; 
// Now start phase 1: Preparing pages (i.e. calculate the layout). 
pdfRenderer.PrepareRenderPages(); 

// Now phase 2: create the PDF pages. 
Console.WriteLine("\r\nRendering document ..."); 

int pages = pdfRenderer.DocumentRenderer.FormattedDocument.PageCount; 
for (int i = 1; i <= pages; ++i) 
{ 
    var page = pdfRenderer.PdfDocument.AddPage(); 
    Console.Write("\rRendering page " + i + "/" + pages); 

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

    using (XGraphics gfx = XGraphics.FromPdfPage(page)) 
    { 
     gfx.MUH = pdfRenderer.Unicode ? PdfFontEncoding.Unicode : PdfFontEncoding.WinAnsi; 
     gfx.MFEH = pdfRenderer.FontEmbedding; 
     pdfRenderer.DocumentRenderer.RenderPage(gfx, i); 
    } 
} 
Console.WriteLine("\r\nSaving document ..."); 

샘플 코드 :
http://forum.pdfsharp.net/viewtopic.php?p=9293#p9293 당신은 심지어 "당신"XGraphics이 도면에 대한 객체를 사용하는 MigraDoc를 호출 할 수 있습니다
http://pdfsharp.net/wiki/MixMigraDocAndPdfSharp-sample.ashx

:

이 MigraDoc 샘플은 몇 가지 옵션을 보여줍니다