将html表转换为.pdf并使用.Net邮件类发送电子邮件" smtp"

时间:2017-10-17 16:37:08

标签: c# asp.net pdf pdf-conversion

我收到一封电子邮件,作为收据发送给付款。此电子邮件包含一个包含所有信息的HTML表。它将该表写为电子邮件的正文。

UPDATE simple_web_content
SET content_data = REPLACE(content_data, '“', '"') WHERE simple_web_content_type = 'B';

UPDATE simple_web_content
SET content_data = REPLACE(content_data, '’', '''') WHERE simple_web_content_type = 'B';

因此,电子邮件的正文是收据。我想将电子邮件中的HTML表格作为正文转换为PDF格式并将其作为附件发送。如果你知道怎么做,请告诉我。谢谢

2 个答案:

答案 0 :(得分:0)

使用.Net Library hiqpdf(您可以从nuget:https://www.nuget.org/packages/hiqpdf/安装它)。它可以从您提供给它的HTML生成pdf。 然后使用该方法返回的字节数组,并将其添加为名称包含.pdf扩展名的附件:

Attachment att = new Attachment(new MemoryStream(bytes), name);

答案 1 :(得分:0)

所以我找到了这样做的方法。拿起我离开的地方。

    string sBody = stringWrite.ToString();
  StringReader sr = new StringReader(stringWrite.ToString());
        Document pdfDoc = new Document(PageSize.A4, 10f, 10f, 10f, 0f);
        HTMLWorker htmlparser = new HTMLWorker(pdfDoc);

我们发送电子邮件的地方

        msg.Subject = sSubject;

        msg.Body = sBody;

        msg.IsBodyHtml = true;

        var smpt = new SmtpClient();
        smpt.Port = ###;
        using (MemoryStream memoryStream = new MemoryStream())
        {
            PdfWriter writer = PdfWriter.GetInstance(pdfDoc, memoryStream);
            pdfDoc.Open();
            htmlparser.Parse(sr);
            pdfDoc.Close();
            byte[] bytes = memoryStream.ToArray();
            memoryStream.Close();
            msg.Attachments.Add(new Attachment(new MemoryStream(bytes), "RECEIPT.pdf"));
            smpt.DeliveryMethod = SmtpDeliveryMethod.Network;
 smpt.Send(msg);

非常简单你需要iTextSharp这就是全部,它有一个pdfwriter选项,可以为你编写并通过电子邮件发送。谢谢观看。 相信这个POST