Как напечатать изображение QR-кода на квитанции в VB.NET 2010 год
Всем привет
Я работаю над проектом, и он почти готов, но последнее, что нужно сделать, - это напечатать QR-код на квитанции.
Я сохраняю детали для печати в текстовом файле, а затем распечатываю текстовый файл на локальном принтере, который просто отлично работает. Теперь клиент просит напечатать QR-код на квитанции, который должен включать имя человека, дату и общую сумму счета, которую я могу создать с помощью следующего кода.
Для генерации QR кода я использую следующий код
Imports ThoughtWorks.QRCode.Codec; Dim objqrcode As QRCodeEncoder = New QRCodeEncoder Dim imgimage As Image Dim objbitmap As Bitmap Dim s As String s = "Sarfaraz M Bhat Age=10 and Class=30" objqrcode.QRCodeEncodeMode = QRCodeEncoder.ENCODE_MODE.BYTE objqrcode.QRCodeScale = 3 objqrcode.QRCodeVersion = 6 objqrcode.QRCodeErrorCorrect = ThoughtWorks.QRCode.Codec.QRCodeEncoder.ERROR_CORRECTION.L imgimage = objqrcode.Encode(s) objbitmap = New Bitmap(imgimage) objbitmap.Save("QRCode.jpg") Pimage.ImageLocation = "QRCode.jpg";
Я могу Загрузить QR-код в графическое окно в vb.net но как напечатать это QR-изображение в нужном месте на квитанции?
Что я уже пробовал:
Я могу создать QR-код и распечатать его со следующим кодом
Dim WithEvents PD As New Printing.PrintDocument PD.Print() Private Sub PD_PrintPage(ByVal sender As Object, ByVal e As System.Drawing.Printing.PrintPageEventArgs) Handles PD.PrintPage 'e.Graphics.DrawImage(Pimage.Image, e.MarginBounds.Left, e.MarginBounds.Top) e.Graphics.DrawImage(Pimage.Image, Pimage.Bounds) End Sub
Richard MacCutchan
Вам необходимо разработать полный модуль печати, который включает в себя все детали, запрошенные заказчиком. В чем именно заключается проблема?
sarfarazbhat
Мне нужно распечатать квитанцию, где есть разные детали для печати.
Я сохраняю детали в текстовом файле со следующим кодом и печатаю текстовый файл. Все идет хорошо, но теперь мне нужно напечатать изображение (QR-код) на той же бумаге, где печатается текстовый файл.Но когда я пытаюсь напечатать изображение, оно печатается на другой странице, а не на той, где печатается текстовый файл.
Код для текстового файла выглядит следующим образом
Dim file As System.IO.StreamWriter
file = My.Computer.FileSystem.OpenTextFileWriter("digimate.txt", False)
Dim x As Integer
Dim total As Integer
file.WriteLine()
file.WriteLine()
file.WriteLine()
file.WriteLine()
file.WriteLine()
file.WriteLine()
file.WriteLine()
file.WriteLine()
file.WriteLine()
file.Write("{0,-9}", "Bill No:")
file.Write("{0,-25}", txtbillno.Text)
file.Write("{0,10}", "Dated :")
file.Write("{0,-22}", dtpick.Text.ToString)
file.WriteLine()
file.Write("{0,-9}", "Name :")
file.Write("{0,-25}", frmcustomer.lblname.Text)
file.Write("{0,10}", "Address:")
file.Write("{0,-22}", frmcustomer.lbladdress.Text)
file.WriteLine()
file.Write("{0,-9}", "Contact:")
file.Write("{0,-25}", frmcustomer.lblcontact.Text)
file.Write("{0,10}", "Email :")
file.WriteLine("{0,-22}", frmcustomer.lblemail.Text)
file.WriteLine("-----------------------------------------------------------------")
file.Write("{0,-7}", "S.NO")
file.Write("{0,-30}", "ITEMS ORDERED")
file.Write("{0,7}", "RATE")
file.Write("{0,7}", "LENGTH")
file.Write("{0,7}", "WIDTH")
file.WriteLine("{0,7}", "TOTAL")
file.WriteLine("-----------------------------------------------------------------") '66
For x = 0 To dgselecteditems.Rows.Count - 1
file.Write("{0,-7}", x + 1)
file.Write("{0,-30}", dgselecteditems.Rows(x).Cells("itemname").Value)
file.Write("{0,7}", dgselecteditems.Rows(x).Cells("rate").Value)
file.Write("{0,7}", dgselecteditems.Rows(x).Cells("length").Value)
file.Write("{0,7}", dgselecteditems.Rows(x).Cells("width").Value)
file.Write("{0,7}", dgselecteditems.Rows(x).Cells("amount").Value)
total += dgselecteditems.Rows(x).Cells("amount").Value
file.WriteLine()
Next
file.WriteLine("-----------------------------------------------------------------")
file.Write("{0,-7}", "")
file.Write("{0,-30}", "Total Amount =")
file.WriteLine("{0,28}", total)
file.WriteLine("-----------------------------------------------------------------")
file.WriteLine()
file.WriteLine()
file.WriteLine()
file.WriteLine()
file.WriteLine()
file.Write("{0,58}", "Sales Tax @ 13.5% due :")
file.WriteLine("{0,7}", txttaxdue.Text)
file.Write("{0,58}", "Sales Tax @ 13.5% charged:")
file.WriteLine("{0,7}", txttaxcharged.Text)
'file.WriteLine("------------------------------------------------------------------")
file.WriteLine()
file.Write("{0,-9}", "Total due:")
tc = total + Val(txttaxcharged.Text)
' qrtotal = tc
Dim temp As String = RupeesToWord(tc)
file.Write("{0,45}", temp)
file.Close()
Должен ли я Сохранить картинку в текстовом файле, который, как я знаю, не может быть сохранен, то как распечатать изображение.
Спасибо
Richard MacCutchan
Ну, я боюсь, что вы делаете это неправильно. Вам нужно добавить правильную обработку печати в свой код, чтобы сгенерировать выходные данные на одном листе бумаги. Видеть https://www.google.com/search?q=vb.net+печать[^] для образцов и учебных пособий по печати в .NET.
sarfarazbhat
Мне нужно распечатать квитанцию, где есть разные детали для печати.
Я сохраняю детали в текстовом файле со следующим кодом и печатаю текстовый файл. Все идет хорошо, но теперь мне нужно напечатать изображение (QR-код) на той же бумаге, где печатается текстовый файл.Но когда я пытаюсь напечатать изображение, оно печатается на другой странице, а не на той, где печатается текстовый файл.
Код для текстового файла выглядит следующим образом
Dim file As System.IO.StreamWriter
file = My.Computer.FileSystem.OpenTextFileWriter("digimate.txt", False)
Dim x As Integer
Dim total As Integer
file.WriteLine()
file.WriteLine()
file.WriteLine()
file.WriteLine()
file.WriteLine()
file.WriteLine()
file.WriteLine()
file.WriteLine()
file.WriteLine()
file.Write("{0,-9}", "Bill No:")
file.Write("{0,-25}", txtbillno.Text)
file.Write("{0,10}", "Dated :")
file.Write("{0,-22}", dtpick.Text.ToString)
file.WriteLine()
file.Write("{0,-9}", "Name :")
file.Write("{0,-25}", frmcustomer.lblname.Text)
file.Write("{0,10}", "Address:")
file.Write("{0,-22}", frmcustomer.lbladdress.Text)
file.WriteLine()
file.Write("{0,-9}", "Contact:")
file.Write("{0,-25}", frmcustomer.lblcontact.Text)
file.Write("{0,10}", "Email :")
file.WriteLine("{0,-22}", frmcustomer.lblemail.Text)
file.WriteLine("-----------------------------------------------------------------")
file.Write("{0,-7}", "S.NO")
file.Write("{0,-30}", "ITEMS ORDERED")
file.Write("{0,7}", "RATE")
file.Write("{0,7}", "LENGTH")
file.Write("{0,7}", "WIDTH")
file.WriteLine("{0,7}", "TOTAL")
file.WriteLine("-----------------------------------------------------------------") '66
For x = 0 To dgselecteditems.Rows.Count - 1
file.Write("{0,-7}", x + 1)
file.Write("{0,-30}", dgselecteditems.Rows(x).Cells("itemname").Value)
file.Write("{0,7}", dgselecteditems.Rows(x).Cells("rate").Value)
file.Write("{0,7}", dgselecteditems.Rows(x).Cells("length").Value)
file.Write("{0,7}", dgselecteditems.Rows(x).Cells("width").Value)
file.Write("{0,7}", dgselecteditems.Rows(x).Cells("amount").Value)
total += dgselecteditems.Rows(x).Cells("amount").Value
file.WriteLine()
Next
file.WriteLine("-----------------------------------------------------------------")
file.Write("{0,-7}", "")
file.Write("{0,-30}", "Total Amount =")
file.WriteLine("{0,28}", total)
file.WriteLine("-----------------------------------------------------------------")
file.WriteLine()
file.WriteLine()
file.WriteLine()
file.WriteLine()
file.WriteLine()
file.Write("{0,58}", "Sales Tax @ 13.5% due :")
file.WriteLine("{0,7}", txttaxdue.Text)
file.Write("{0,58}", "Sales Tax @ 13.5% charged:")
file.WriteLine("{0,7}", txttaxcharged.Text)
'file.WriteLine("------------------------------------------------------------------")
file.WriteLine()
file.Write("{0,-9}", "Total due:")
tc = total + Val(txttaxcharged.Text)
' qrtotal = tc
Dim temp As String = RupeesToWord(tc)
file.Write("{0,45}", temp)
file.Close()
Должен ли я Сохранить картинку в текстовом файле, который, как я знаю, не может быть сохранен, то как распечатать изображение.
Спасибо