0

サーバー上のフォルダーに pdf ファイルを作成するOrderExport.aspxというページがあります。

私のページOrderSend.aspxには、次のように、pdfファイルが添付された電子メールを送信する機能があります。

Dim atc As Net.Mail.Attachment = New Attachment(stm, fileNameOrder)
mail.Attachments.Add(atc)

ユーザーに表示せずに電子メールを送信する前に、この関数からOrderExport.aspxを呼び出すにはどうすればよいですか?

電子メールを送信するときに、pdf ファイルが存在することを確認する必要があります。

4

3 に答える 3

0

GUI を実際のロジックから分離する必要があります。

おそらく OrderExport.aspx に、PDF を作成してディスクに保存するコードがあると思います。そのコードを別のクラスに配置して、OrderExport.aspx および [電子メールの送信] ボタンのあるページから呼び出すことができるようにする必要があります。同様に、OrderSend.aspx から電子メールを送信するためのコードを抽出し、そこから呼び出し、[電子メールを送信] ボタンから呼び出します。

于 2012-12-20T18:43:01.620 に答える
0

おそらく、PDF の作成を処理するための aspx ページではなく、クラスを作成する必要があります。これを行う 1 つの方法は、PDF ドキュメントの作成を処理し、電子メール メッセージに添付できるストリームに保存できる PDFSharp ライブラリを使用することです。ストリームをサーバー上のファイルに同時に保存することもできます。

' Create a new PDF document
Dim document As PdfDocument = New PdfDocument
document.Info.Title = "TITLE"
Dim securitySettings As Security.PdfSecuritySettings = document.SecuritySettings
' Restrict some rights.
securitySettings.PermitAccessibilityExtractContent = False
securitySettings.PermitAnnotations = False
securitySettings.PermitAssembleDocument = False
securitySettings.PermitExtractContent = False
securitySettings.PermitFullQualityPrint = True
securitySettings.PermitModifyDocument = False
securitySettings.PermitPrint = True
' Create an empty page
Dim page As PdfPage = document.AddPage
' Get an XGraphics object for drawing
Dim gfx As XGraphics = XGraphics.FromPdfPage(page)
Dim img As XImage = XImage.FromGdiPlusImage(imgPermit)
gfx.DrawImage(img, 20, 20)
Dim stream As New MemoryStream()
document.Save(stream, False)
Dim xStream As System.IO.Stream = stream
SendEmail(sEmail, xStream)

メールメッセージでは、これと同様に構築されます

Dim xStream As New Attachment(pdf, "FILE" + Date.Now.ToString("MM.dd.yyyy") + ".pdf")
mm.Attachments.Add(xStream)
于 2012-12-20T18:23:50.830 に答える
0

懸念の分離が最善の解決策ですが、迅速な解決策が必要な場合 (良い解決策ではありません)、クラスと関数をパブリックにして、他のクラスと同様に呼び出します。

于 2012-12-20T19:29:21.837 に答える