【问题标题】:Print Bitmap image over multiple pages using PDFSharp, Vb.net使用 PDFSharp、Vb.net 在多页上打印位图图像
【发布时间】:2017-09-16 09:35:09
【问题描述】:

我有一个面板,它根据用户输入绘制图表。不幸的是,这些图表可能会变得非常大,当我打印它们时,它不能完全放在一个页面上而不会失去可读性。

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

【问题讨论】:

    标签: vb.net pdf bitmap pdfsharp


    【解决方案1】:

    简单的解决方案:在 Adob​​e Reader 打印对话框中单击“海报”以将图像打印在一页以上。增加缩放系数以将海报分发到您需要的尽可能多的页面上。

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-06-20
      • 1970-01-01
      • 2010-12-12
      相关资源
      最近更新 更多