Чтобы что-то напечатать в .Net необходимо это что-то превратить Graphics, a потом эту самую Graphics печатать. Выглядить это будет где-то так:
Код | Private Sub GraphicPrint(ByVal sender As Object, ByVal e As PrintPageEventArgs)
e.Graphics.DrawImage(Image.FromFile(path_list(inet).ToString), e.Graphics.VisibleClipBounds) If inet = PrintDialog1.PrinterSettings.ToPage - 1 Then e.HasMorePages = False e.Graphics.Dispose() Else e.HasMorePages = True
End If inet = inet + 1
If PrintDialog1.PrinterSettings.Collate = False And col_i < PrintDialog1.PrinterSettings.Copies - 1 Then inet = inet - 1 col_i = col_i + 1
e.HasMorePages = True Else col_i = 0 End If
End Sub
Private Sub btnPrint_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnPrint.Click Dim pd As PrintDocument = New PrintDocument
Try AddHandler pd.PrintPage, AddressOf Me.GraphicPrint pd.PrinterSettings.MinimumPage = 1 pd.PrinterSettings.FromPage = 1
pd.PrinterSettings.MaximumPage = path_list.Count pd.PrinterSettings.ToPage = path_list.Count pd.PrinterSettings.Collate = True
PrintDialog1.PrinterSettings = pd.PrinterSettings PrintDialog1.Document = pd PrintDialog1.AllowCurrentPage = True PrintDialog1.AllowPrintToFile = True PrintDialog1.AllowSelection = False PrintDialog1.AllowSomePages = True
Dim result As DialogResult = PrintDialog1.ShowDialog()
If result = Windows.Forms.DialogResult.OK Then If PrintDialog1.PrinterSettings.PrintRange = PrintRange.CurrentPage Then PrintDialog1.PrinterSettings.FromPage = cur_page + 1 PrintDialog1.PrinterSettings.ToPage = cur_page + 1 End If
'check for copies and collate If PrintDialog1.PrinterSettings.Copies > 1 And PrintDialog1.PrinterSettings.Collate = True Then
For k As Integer = 0 To PrintDialog1.PrinterSettings.Copies - 1 inet = PrintDialog1.PrinterSettings.FromPage - 1 pd.Print() Next
Else inet = PrintDialog1.PrinterSettings.FromPage - 1 col_i = 0 pd.Print()
End If
End If
PrintDialog1.Dispose() pd.Dispose()
Catch ex As Exception MsgBox("Print error" & ex.Message) End Try
End Sub
|
Постраничная печать графических фаилов, если нужно текст, то преврати его в Graphics:
Код | Private Sub create_page(ByVal page_name As String)
Dim Im1 As Bitmap = New Bitmap(Im4, 920, 1100) Dim im_gr As Graphics = Graphics.FromImage(Im1) im_gr.DrawString("text_string", New Font("Garamond", 12, FontStyle.Bold), Brushes.Black, 555, 222) Im1.Save(page_name, ImageFormat.Bmp)
End Sub
|
Последовательность действий: Загрузил текст в массив строк, создал графику, пробежался по массиву, нарисовал строчки в графике, напечатал графику.
|