首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >打印图像、文本和页边距?

打印图像、文本和页边距?
EN

Stack Overflow用户
提问于 2014-03-07 07:39:32
回答 1查看 4.1K关注 0票数 2

我花了几天的时间来寻找Vb.net脚本,它可以将三者结合在一起(打印图像+打印文本+不断变化的边距),但没有运气;

我想:

  • PictureBox1中打印图像;
  • RichTextBox1打印文本(图片下方或上方);
  • 调整页面边距

另外,如果我能在打印前得到Print-Preview的帮助,我会很感激的;

下面是我的启动脚本,它只会操作文本:

代码语言:javascript
复制
Public Class Form1

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    printDocument1.Print()
End Sub

Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
    printPreviewDialog1.Document = printDocument1
    printPreviewDialog1.ShowDialog()
End Sub

Private Sub printDocument1_PrintPage(ByVal sender As System.Object, ByVal e As System.Drawing.Printing.PrintPageEventArgs) Handles printDocument1.PrintPage
    Dim fnt_t As Font
    fnt_t = RichTextBox1.Font
    e.Graphics.DrawString(RichTextBox1.Text, fnt_t, New SolidBrush(Color.Black), 10, 10)
End Sub

端级

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-03-16 03:16:22

这个答案是基于你的评论想要在你的图像上画文字。

当您将项目绘制到PrintDocument时,首先绘制的项目将位于稍后绘制的任何项下,如果它们在图形表面上占据相同的位置。这是一个关于如何在图像中对文本进行居中的示例。

代码语言:javascript
复制
Private Sub printDocument1_PrintPage(ByVal sender As System.Object, ByVal e As System.Drawing.Printing.PrintPageEventArgs) Handles PrintDocument1.PrintPage     
    Dim fnt_t As Font = RichTextBox1.Font 'Set your font
    Dim rect As Rectangle = New Rectangle(New Point(0, 0), PictureBox1.Image.Size) ' used to give a common reference
    Dim fmt As StringFormat = New StringFormat()
    fmt.Alignment = StringAlignment.Center 'Horizontal Centering
    fmt.LineAlignment = StringAlignment.Center 'Vertical Centering
    e.Graphics.DrawImage(PictureBox1.Image, rect) 'Draw Image
    e.Graphics.DrawString(RichTextBox1.Text, fnt_t, New SolidBrush(Color.White), rect, fmt) 'Draw Text
End Sub

这个例子是如何将文本添加到图像的底部。

代码语言:javascript
复制
Private Sub printDocument1_PrintPage(ByVal sender As System.Object, ByVal e As System.Drawing.Printing.PrintPageEventArgs) Handles PrintDocument1.PrintPage
    Dim fnt_t As Font = RichTextBox1.Font 'Set your font
    Dim rect As Rectangle = New Rectangle(New Point(0, 0), PictureBox1.Image.Size) ' get the size of the image
    Dim lineheight As Integer = TextRenderer.MeasureText(RichTextBox1.Text, fnt_t).Height ' Measure to find height of text
    Dim stringRect As Rectangle = New Rectangle(0, rect.Bottom - lineheight, rect.Width, lineheight) 'Determine rectangle for Text 
    Dim fmt As StringFormat = New StringFormat() 'Tell it to center Text in its rectangle 
    fmt.Alignment = StringAlignment.Center 'Center it 
    e.Graphics.DrawImage(PictureBox1.Image, rect) 'Draw Image
    e.Graphics.DrawString(RichTextBox1.Text, fnt_t, New SolidBrush(Color.White), stringRect, fmt) 'Draw Text
End Sub

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22244264

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档