2011-09-02 58 views

回答

1

是的,這是可能的。您需要在表單上提交按鈕。在提交按鈕的屬性中,選擇FDF作爲數據類型。 PDF文檔中的每個字段都會有一個名稱。 Textbox1,Textbox2等,您將收到名稱 - 值對。有些庫可以幫助處理返回的數據。

我在控制器(ASP.NET MVC應用程序)收到了完整的PDF文檔如下:

string filename = Path.Combine(Server.MapPath(rootPath), name); 
using (FileStream fs = new FileStream(filename, FileMode.CreateNew)) 
{ 
    byte[] bytes = new byte[8192]; 
    int bytesRead; 
    while ((bytesRead = Request.InputStream.Read(bytes, 0, bytes.Length)) > 0) 
    { 
     fs.Write(bytes, 0, bytesRead); 
    } 
} 

在這種情況下,文件名是位於一個臨時區域(ROOTPATH),在那裏我有寫一個臨時文件名訪問。另一種解決方案是將文件寫入MemoryStream,然後用它發送電子郵件。

+0

謝謝。我會看看。點擊PDF上的「提交」按鈕後,是否可以直接通過電子郵件發送填好的表單?現在,當我點擊「電子郵件表格」提交按鈕時,它正在嘗試打開Outlook發送電子郵件。我想繞過並直接發送到指定的電子郵件地址。 – nav100

+0

我不認爲這是可能的。作爲您可以執行的所有操作的屬性的最後一個選項卡。我發現唯一可用的是「提交表單」。所以我選擇將填好的表格提交到服務器,然後我可以通過電子郵件發送。提交表單操作有幾個設置用於接收不同的內容。我使用PDF,但您也可以獲得FDF,HTML或XFDF。使用最適合你的那個。 – Leons

+0

Leons,你能解釋更多關於提交填充表單到服務器然後發送電子郵件嗎?我必須寫一些腳本嗎? – nav100

1

我會推薦查看一個PDF庫,如iTextSharp。 This entry會告訴你如何遍歷PDF中的所有表單域。並this entry將告訴你如何獲得一個給定的名稱字段。

+0

Chris,是否可以通過電子郵件將填好的表格發送到指定的電子郵件地址而無需提示Outlook?謝謝。 – nav100

+0

我猜你只是在談論Adobe Acrobat和/或Reader,所以答案是否定的電子郵件。每個人都害怕將SMTP引擎整合到他們的程序中,因此他們總是依賴於其他人,這就是Outlook,OE,Entourage等被調用的原因。您可以讓該人員手動上傳PDF或按照@Leons的說法進行操作。 –

0

您可以使用FDFToolkit.net到PDF表單提交保存到數據庫:

http://www.fdftoolkit.net

下面是用ASP.net(VB.net),ADO.net和SQL的例子:

If Not IsPostBack Then 
    Dim fdfApp As New FDFApp.FDFApp_Class() 
    Dim fdfDoc As New FDFApp.FDFDoc_Class() 
    fdfDoc = fdfApp.FDFOpenFromStream(Request.InputStream, True, True) 
    Dim dr As DataRow 
    Dim ds As New DataSet 
    Dim da As New System.Data.SqlClient.SqlDataAdapter("SELECT * FROM TABLENAME", "CONNECTION STRING") 
    da.Fill(ds, "TABLENAME") 
    dr = ds.Tables(0).NewRow 
    'SET VALUES THAT MATCH NAMES IN TABLE & IN PDF 
    'fdfDoc.FDFSetDataRowFromValues(dr) 
    dr("FIELD_NAME1") = fdfDoc.FDFGetValue("PDF_FIELD_NAME1") 
    dr("FIELD_NAME2") = fdfDoc.FDFGetValue("PDF_FIELD_NAME2") 
    ' DUMP XML FILE TO FIELD 
    dr("FIELD_DUMP_XML") = fdfDoc.FDFSavetoStr(FDFDoc_Class.FDFType.XML, True) 
    ds.Tables(0).Rows.Add(dr) 
    da.Update(ds, "TABLENAME") 
    fdfDoc.FDFClose() 
    fdfDoc.Dispose() 
End If 
+1

請在帖子中提及您推薦自己的產品,否則您的帖子可能會被標記爲垃圾郵件。 –

0

要通過電子郵件自動發送填充數據,你可以做到以下幾點:

  1. 添加PDF按鈕( 「提交」)
  2. 右擊 - > PDF選項 - >字段屬性
  3. 選擇 「操作」 選項卡
  4. 選擇在網址欄中輸入的mailto提交表單類型
  5. [email protected] .COM
  6. 在提交格式選擇FDF或格式你想

DONE!

當用戶點擊它時,它會自動將數據文件附加到電子郵件。它會詢問用戶是否使用默認電子郵件或網絡郵件。

您將收到FDF文件或任何其他格式,必須解析才能提取數據。

我知道這是舊的,但有人可能正在尋找這個答案。