2016-07-31 24 views
1

Ich habe einen PDF-Bericht mit MigraDoc erstellt. Anfangscode ist wie folgt: -Zeichnung im MigraDoc-Dokument mit XGraphics

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(); 
... 

Das PDF wurde erfolgreich gemacht. Jetzt möchte ich einige Grafiken in die Seiten dieses Dokuments einfügen. Ich habe mehrere Artikel dafür gegangen und festgestellt, dass jeder PdfDocument Klasse statt MigraDoc.DocumentObjectModel.Document. Ist es möglich, Grafiken in Seiten eines Dokuments vom Typ MigraDoc.DocumentObjectModel.Document mit XGraphics? Wenn es nicht möglich ist, was ist der beste Weg, PdfDocument mit MigraDoc.DocumentObjectModel.Document zu mischen, um das gleiche zu erreichen?

Antwort

1

MigraDoc verwendet PDFsharp und ein XGraphics-Objekt, um die PDF-Seiten zu erstellen.

Es gibt mehrere Möglichkeiten, Inhalte zu Seiten hinzuzufügen, die von MigraDoc erstellt wurden.

Dieses MigraDoc Beispiel zeigt einige Optionen:

von diesem Posten genommen
// 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 ..."); 

Beispielcode:
http://pdfsharp.net/wiki/MixMigraDocAndPdfSharp-sample.ashx

Sie auch MigraDoc zum Zeichnen Objekt "Ihr" XGraphics verwenden können anrufen
http://forum.pdfsharp.net/viewtopic.php?p=9293#p9293