在多页上打印图像
Print images on multiple pages
我的文件夹中有条形码图像,我想像下图一样打印它们。但问题是我无法让图像的其余部分转到下一页。
在这种情况下,我有 22 张图片,但纸张只能容纳 20 到 21 张(最后一张图片被裁掉了边距)。我的问题是,如果下一页有很多图片,我该如何使剩下的 20 秒和 20 秒?
barcode images
Private Sub PrintDocument1_PrintPage(sender As Object, e As PrintPageEventArgs) Handles PrintDocument1.PrintPage
Dim extensions As New List(Of String)
extensions.Add("*.jpg")
' And so on, until all are in...
Dim fileCount As Integer
For i As Integer = 0 To extensions.Count - 1
fileCount += Directory.GetFiles(Application.StartupPath & "\temp\", extensions(i), SearchOption.AllDirectories).Length
Next
Dim imgPictures(fileCount) As Image
For i As Integer = 1 To fileCount
imgPictures(i) = Bitmap.FromFile(Application.StartupPath & "\temp\" & i & ".jpg")
e.Graphics.DrawImage(imgPictures(i), 50, 50 * i)
If i = 20 Then
e.HasMorePages = True
ElseIf i = fileCount Then
e.HasMorePages = False
End If
Next
End Sub
经过几个小时的尝试,终于成功了,向jmcilhinney大声呼救,帮大忙
Dim recordCount As Integer
Private Sub PrintDocument1_PrintPage(sender As Object, e As PrintPageEventArgs) Handles PrintDocument1.PrintPage
Dim lineCount As Integer
Dim extensions As New List(Of String)
extensions.Add("*.jpg")
' And so on, until all are in...
Dim fileCount As Integer
For i As Integer = 0 To extensions.Count - 1
fileCount += Directory.GetFiles(Application.StartupPath & "\temp\", extensions(i), SearchOption.AllDirectories).Length
Next
Dim imgPictures(fileCount) As Image
For i As Integer = 1 To fileCount
recordCount += 1
lineCount += 1
imgPictures(recordCount) = Bitmap.FromFile(Application.StartupPath & "\temp\" & recordCount & ".jpg")
e.Graphics.DrawImage(imgPictures(recordCount), 50, 50 * i)
If lineCount >= 20 Then
Exit For
ElseIf recordCount = fileCount Then
Exit For
End If
Next
If recordCount = fileCount Then
e.HasMorePages = False
ElseIf lineCount = 20 Then
e.HasMorePages = True
End If
End Sub
Private Sub PrintDocument1_BeginPrint(sender As Object, e As PrintEventArgs) Handles PrintDocument1.BeginPrint
recordCount = 0
End Sub
我的文件夹中有条形码图像,我想像下图一样打印它们。但问题是我无法让图像的其余部分转到下一页。
在这种情况下,我有 22 张图片,但纸张只能容纳 20 到 21 张(最后一张图片被裁掉了边距)。我的问题是,如果下一页有很多图片,我该如何使剩下的 20 秒和 20 秒?
barcode images
Private Sub PrintDocument1_PrintPage(sender As Object, e As PrintPageEventArgs) Handles PrintDocument1.PrintPage
Dim extensions As New List(Of String)
extensions.Add("*.jpg")
' And so on, until all are in...
Dim fileCount As Integer
For i As Integer = 0 To extensions.Count - 1
fileCount += Directory.GetFiles(Application.StartupPath & "\temp\", extensions(i), SearchOption.AllDirectories).Length
Next
Dim imgPictures(fileCount) As Image
For i As Integer = 1 To fileCount
imgPictures(i) = Bitmap.FromFile(Application.StartupPath & "\temp\" & i & ".jpg")
e.Graphics.DrawImage(imgPictures(i), 50, 50 * i)
If i = 20 Then
e.HasMorePages = True
ElseIf i = fileCount Then
e.HasMorePages = False
End If
Next
End Sub
经过几个小时的尝试,终于成功了,向jmcilhinney大声呼救,帮大忙
Dim recordCount As Integer
Private Sub PrintDocument1_PrintPage(sender As Object, e As PrintPageEventArgs) Handles PrintDocument1.PrintPage
Dim lineCount As Integer
Dim extensions As New List(Of String)
extensions.Add("*.jpg")
' And so on, until all are in...
Dim fileCount As Integer
For i As Integer = 0 To extensions.Count - 1
fileCount += Directory.GetFiles(Application.StartupPath & "\temp\", extensions(i), SearchOption.AllDirectories).Length
Next
Dim imgPictures(fileCount) As Image
For i As Integer = 1 To fileCount
recordCount += 1
lineCount += 1
imgPictures(recordCount) = Bitmap.FromFile(Application.StartupPath & "\temp\" & recordCount & ".jpg")
e.Graphics.DrawImage(imgPictures(recordCount), 50, 50 * i)
If lineCount >= 20 Then
Exit For
ElseIf recordCount = fileCount Then
Exit For
End If
Next
If recordCount = fileCount Then
e.HasMorePages = False
ElseIf lineCount = 20 Then
e.HasMorePages = True
End If
End Sub
Private Sub PrintDocument1_BeginPrint(sender As Object, e As PrintEventArgs) Handles PrintDocument1.BeginPrint
recordCount = 0
End Sub