Category / Section
Export Diagram to PDF in multiple Page
1 min read
Export Diagram to PDF in multiple Pages
Syncfusion Diagram has the support to convert the Diagram into PDF format in multiple pages using Syncfusion’s PDF.Base Dll. Initially need to create an Empty Pdf document and add/create pages for the created document based on the diagram size.
Required Dll:
Syncfusion.Pdf.Base
The below code snippet is used to convert the Diagram into PDF format.
[C#]
//Creation of PDF document Syncfusion.Pdf.PdfDocument pdfdoc = new Syncfusion.Pdf.PdfDocument(); float height = 0; Image img = null; Graphics gfx; RectangleF rectBounding = RectangleF.Empty; while (height < diagram1.Model.Size.Height) { //Adds pages for the created PDF Document pdfdoc.Pages.Add(); img = new Bitmap((int)diagram1.Model.Size.Width, (int)pdfdoc.Pages[pdfdoc.Pages.Count - 1].Size.Height); gfx = Graphics.FromImage(img); rectBounding = new RectangleF(0, height, img.Width, img.Height); this.diagram1.ExportDiagramToGraphics(gfx, rectBounding); //Creation of PDF image PdfImage pdfImage = Syncfusion.Pdf.Graphics.PdfImage.FromImage(img); //Placing the Diagram pdfdoc.Pages[pdfdoc.Pages.Count - 1].Graphics.DrawImage(pdfImage, new PointF(0.0F, 0.0F), pdfdoc.Pages[pdfdoc.Pages.Count - 1].GetClientSize()); height += rectBounding.Height; } //Saving the PDF file pdfdoc.Save(saveFileDialog1.FileName);
[VB]
'Creation of PDF document Dim pdfdoc As New Syncfusion.Pdf.PdfDocument() Dim height As Single = 0 Dim img As Image = Nothing Dim gfx As Graphics Dim rectBounding As RectangleF = RectangleF.Empty Do While height < diagram1.Model.Size.Height 'Adds pages for the created PDF Document pdfdoc.Pages.Add() img = New Bitmap(CInt(Fix(diagram1.Model.Size.Width)), CInt(Fix(pdfdoc.Pages(pdfdoc.Pages.Count - 1).Size.Height))) gfx = Graphics.FromImage(img) rectBounding = New RectangleF(0, height, img.Width, img.Height) Me.diagram1.ExportDiagramToGraphics(gfx, rectBounding) 'Creation of PDF image Dim pdfImage As PdfImage = Syncfusion.Pdf.Graphics.PdfImage.FromImage(img) 'Placing the Diagram pdfdoc.Pages(pdfdoc.Pages.Count - 1).Graphics.DrawImage(pdfImage, New PointF(0.0F, 0.0F), pdfdoc.Pages(pdfdoc.Pages.Count - 1).GetClientSize()) height += rectBounding.Height Loop 'Saving the PDF file pdfdoc.Save(saveFileDialog1.FileName)
Please refer the below attached sample.