2

私はhtmlファイルを読み、itexsharpを使用してpdfに変換し、電子メールで添付ファイルとして送信しようとしています:

これはクライアント側のコードです

<form id="form1" runat="server">
<div>
<img alt="" src="C:\Users\Intern\Documents\Visual Studio  2008\Projects\highChart\highChart\images\279.gif" id="myImg" />

</div>
</form>

サーバー側コード

 Imports iTextSharp
 Imports iTextSharp.text.pdf
 Imports iTextSharp.text
 Imports System
 Imports System.Text
 Imports System.IO
 Imports System.Net.Mail
 Imports System.Net
 Imports iTextSharp.text.html.simpleparser

 Partial Public Class imagePdf
Inherits System.Web.UI.Page

Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
    Response.ContentType = "application/pdf"
    Response.AddHeader("content-disposition", "attachment;filename=TestPage.pdf")
    Response.Cache.SetCacheability(HttpCacheability.NoCache)
    Dim sw As New StringWriter()
    Dim hw As New HtmlTextWriter(sw)
    Me.Page.RenderControl(hw)

    Dim sr As New StringReader(sw.ToString())
    Dim pdfDoc As New Document(PageSize.A4, 10.0F, 10.0F, 100.0F, 0.0F)
    Dim htmlparser As New HTMLWorker(pdfDoc)
    PdfWriter.GetInstance(pdfDoc, Response.OutputStream)
    pdfDoc.Open()
    htmlparser.Parse(sr)
    pdfDoc.Close()
    Response.Write(pdfDoc)
    Response.[End]()

    Dim file As (( i don't know what to add here ))
    Dim message As New MailMessage()
    message.From = New MailAddress("testApp@somewhereelse.com")
    message.To.Add(New MailAddress("anotheraddres84@hotmail.com"))
    message.Subject = "pdf "
    message.Body = "pdf attached "
    Dim data As New Attachment(File)
    message.Attachments.Add(data)

    Dim client As New SmtpClient()
    client.Host = "smtp.gmail.com"
    client.Credentials = New NetworkCredential("email", "password")
    client.EnableSsl = True
    client.Port = 587
    client.Send(message)
End Sub

End Class

このコードの各部分は正常に動作します。つまり、pdf は動作し、電子メールは問題ありませんが、pdf ファイルを添付ファイルとして使用するにはどうすればよいですか?

4

2 に答える 2

3

PDF をファイルとして保存し、MailMessage.Attachments プロパティを使用してメッセージに追加します。

于 2012-05-23T20:49:00.217 に答える
1

次のようなフルパスを使用できます:c:\ asdasd \ adad \ "+ filename.pdf

または、Server.MapPath( "/ subdir / filename.pdf");を使用します。

Server.MapPathは、現在のディレクトリを提供します。これは、既に存在するディレクトリです。

于 2012-05-23T21:32:22.940 に答える