使用PDFSharp,Vb.net在多个页面上打印位图图像

问题描述:

我有一个基于用户输入绘制图表的面板。不幸的是,图表可能变得非常大,当我打印它们时,它不会完全适合单个页面而不会丢失可读性。使用PDFSharp,Vb.net在多个页面上打印位图图像

我在VB.net中使用PDFsharp来创建PDF。当前的方法是将面板绘制到位图图像上的面板,然后将图像放在pdf文档中。

1图可以很容易地使面板1500,3000的大小。

Example of Diagram

Example of Diagram in PDF

任何帮助是极大的赞赏

 Dim pdfdoc As New PdfDocument 
     Dim page As PdfPage = pdfdoc.AddPage 
     Dim Bitmap As Bitmap = New Bitmap(pnl_Draw.Width, pnl_Draw.Height) 
     Dim BXImage As XImage 
     Dim GFX As XGraphics 
     Me.pnl_Draw.DrawToBitmap(Bitmap, New Rectangle(0, 0, Bitmap.Width, Height)) 
     Dim pbx As New PictureBox 
     pbx.Image = Bitmap 
     BXImage = XImage.FromGdiPlusImage(pbx.Image) 
     GFX = XGraphics.FromPdfPage(page) 
     GFX.ScaleTransform(0.82) 
     GFX.DrawImage(BXImage, 0, 0) 
     GFX.Dispose() 
     pdfdoc.Save("G:\test.pdf") 
     pdfdoc.Close() 
     Try 
      Process.Start("G:\test.pdf") 
     Catch ex As Exception 
     End Try 

简单的解决方案:在Adobe Reader中打印的 “海报” 对话框中,点击打印超过1页上的图像。根据需要增加变焦倍数以在尽可能多的页面上分配海报。

您还可以根据位图大小按比例增加页面大小。

顺便说一句:如果您在调用GFX.DrawImage时指定了目标大小,则不需要GFX.ScaleTransform(0.82)