hey
im trying to create a sample invoice in the memory using iTextSharp
convert it to html and send it to email.
in the html when i write in foreign language the output shows a empty string.
this is the code
tnx for any help
salsa :)
im trying to create a sample invoice in the memory using iTextSharp
convert it to html and send it to email.
in the html when i write in foreign language the output shows a empty string.
this is the code
Code:
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
Dim dt As New DataTable()
dt.Columns.AddRange(New DataColumn(2) {New DataColumn("OrderId"), New DataColumn("Product"), New DataColumn("Quantity")})
dt.Rows.Add(101, "Sun Glasses", 5)
dt.Rows.Add(102, "Jeans", 2)
dt.Rows.Add(103, "Trousers", 12)
dt.Rows.Add(104, "Shirts", 9)
SendPDFEmail(dt)
End Sub
Code:
Using memstre As New StringWriter()
Using hw As New XmlTextWriter(memstre)
Dim companyName As String = "בדיקה"
Dim orderNo As Integer = 2303
Dim sb As New StringBuilder()
sb.Append("<table width='100%' cellspacing='0' cellpadding='2'>")
sb.Append("<tr><td align='center' style='background-color: #18B5F0' colspan = '2'><b>בדיקה2</b></td></tr>")
sb.Append("<tr><td colspan = '2'></td></tr>")
sb.Append("<tr><td><b>Order No:</b>")
sb.Append(orderNo)
sb.Append("</td><td><b>Date: </b>")
sb.Append(DateTime.Now)
sb.Append(" </td></tr>")
sb.Append("<tr><td colspan = '2'><b>Company Name :</b> ")
sb.Append(companyName)
sb.Append("</td></tr>")
sb.Append("</table>")
sb.Append("<br />")
sb.Append("<table border = '1'>")
sb.Append("<tr>")
For Each column As DataColumn In dt.Columns
sb.Append("<th style = 'background-color: #D20B0C;color:#ffffff'>")
sb.Append(column.ColumnName)
sb.Append("</th>")
Next
sb.Append("</tr>")
For Each row As DataRow In dt.Rows
sb.Append("<tr>")
For Each column As DataColumn In dt.Columns
sb.Append("<td>")
sb.Append(row(column))
sb.Append("</td>")
Next
sb.Append("</tr>")
Next
sb.Append("</table>")
Dim sr As New StringReader(sb.ToString())
Dim pdfDoc As New Document(PageSize.A4, 10.0F, 10.0F, 10.0F, 0.0F)
Dim htmlparser As New HTMLWorker(pdfDoc)
Using memoryStream As New MemoryStream()
Dim writer As PdfWriter = PdfWriter.GetInstance(pdfDoc, memoryStream)
pdfDoc.Open()
htmlparser.Parse(sr)
pdfDoc.Close()
Dim bytes As Byte() = memoryStream.ToArray()
memoryStream.Close()
Dim mm As New MailMessage("demo@gmail.com", "demo@gmail.com")
mm.Subject = "iTextSharp PDF"
mm.Body = "iTextSharp PDF Attachment"
mm.Attachments.Add(New Attachment(New MemoryStream(bytes), "iTextSharpPDF.pdf"))
mm.IsBodyHtml = True
Dim smtp As New SmtpClient()
smtp.Host = "smtp.gmail.com"
smtp.EnableSsl = True
Dim NetworkCred As New NetworkCredential()
NetworkCred.UserName = "demo@gmail.com"
NetworkCred.Password = "111111"
smtp.UseDefaultCredentials = True
smtp.Credentials = NetworkCred
smtp.Port = 587
smtp.Send(mm)
End Using
End Using
End Using
salsa :)