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

时间:2017-09-16 09:35:09

标签: vb.net pdf bitmap pdfsharp

我有一个面板,根据用户输入绘制图表。不幸的是,这些图表确实非常大,当我打印它们时,它并不完全适合单个页面而不会失去可读性。

我在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

1 个答案:

答案 0 :(得分:0)

简单解决方案:在Adobe Reader打印对话框中单击" Poster"在1页以上打印图像。增加缩放系数,以便根据需要在任意数量的页面上分发海报。

您还可以按比例增加页面大小。

顺便说一句:如果您在调用GFX.ScaleTransform(0.82)时指定目的地尺寸,则不需要GFX.DrawImage