使用PDFSharp,Vb.net在多个页面上打印位图图像
问题描述:
我有一个基于用户输入绘制图表的面板。不幸的是,图表可能变得非常大,当我打印它们时,它不会完全适合单个页面而不会丢失可读性。使用PDFSharp,Vb.net在多个页面上打印位图图像
我在VB.net中使用PDFsharp来创建PDF。当前的方法是将面板绘制到位图图像上的面板,然后将图像放在pdf文档中。
1图可以很容易地使面板1500,3000的大小。
任何帮助是极大的赞赏
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)
。