2009-05-03 121 views
2

我想知道是否有任何的方式來通知在Adobe Reader 用戶一個PDF表單被提交到服務器?我提交 正常的HTTP/HTML形式的PHP腳本沒什麼大不了的,向前伸直, 但似乎有一個大「黑洞」中的文檔,論壇等 作爲對錶單提交時會發生什麼。確認對話框(警告)提交

是不是有我已提交 一個表格後觸發JavaScript警告的方式?我不想返回另一個說「謝謝」的pdf, ,這有點俗氣。我對PDF格式很陌生,所以我猜這裏 必須是一種將FDF返回到原始文檔的方法,該文檔有一些 javascript,例如警報('thank you for your feedback!')..

這應該真的是直線前進,我認爲Adobe的大肆宣傳 PDF技術是更開發商和間友好訪問..

任何想法? (哦,請不要問爲什麼我使用PDF表單,而不是網頁,這是從「頂」來了,所以作爲一個開發者,我只是要做到這一點..)

回答

4

您所張貼到必須用在HTTP頭部此內容類型回覆的服務器腳本:

'Content-Type:application/vnd.fdf'

例如,如果您使用的是PHP:

header('Content-Type: application/vnd.fdf') 

後面跟着相關的bastardized-pdf-javascript-mutant-half-bread會觸發alert()對話框。

%FDF-1.2 
1 0 obj 
<< 
/FDF 
    << 
    /JavaScript 
     << 
     /Doc 2 0 R 
     /After (confirmSend();) 
     >> 
    >> 
>> 
endobj 
2 0 obj 
[ 
(confirmSend) 3 0 R 
] 
endobj 
3 0 obj 
<< 
>> 
stream 
function confirmSend() 
{ 
app.alert({ 
    cTitle : 'title of the window', 
    cMsg : 'message', 
    nIcon : 3 
}); 
} 
endstream 
endobj 
trailer 
<< 
/Root 1 0 R 
>> 
%%EOF 

我希望你收到此消息,因爲我浪費了近2周以後我的生活找到一個解決辦法...

+0

+1000,謝謝你救了我2周的生命。 :) – 2015-03-05 20:27:11

0

我設法在發生搜索後3天的答案,將在PHP腳本FDF文件頭,加入「#FDF」到Acrobat中的網址的結尾似乎已經解決;

%FDF-1.2 1 0 OBJ < < /FDF < < /JavaScript的 < < /文件2 0 R /後(confirmSend();)

> > > endobj 2 0 OBJ [ (confirmSend)3 0 R ] endobj 3 0 OBJ < < > 流 功能confirmSend(){ app.alert( 「形式已成功提交\ n非常感謝您的寶貴意見!」 3); } endstream endobj 拖車 < < /根1 0 R > %% EOF

1

感謝這個!我也一直在尋找解決這個問題的好幾個小時!這非常令人沮喪。在提交PDF之後,安裝FDF Toolkit似乎過於簡單,只是爲了獲得一個簡單的確認對話框。

我終於想出了通過試驗和錯誤以下的(這似乎是絕對沒有在網​​絡上對本文檔):

%FDF-1.2 
%âãÏÓ 
1 0 obj 
<< 
/FDF 
    << 
    /Status(Thank you. Your details have been submitted and someone will get in touch with regarding your application.) 
    >> 
>> 
endobj 
trailer 
<</Root 1 0 R>> 
%%EOF 

以上會存在(或應該存在)對話框未顯示「警告:JavaScript窗口」警告的Adobe Reader。

希望這最終會對某人有用。

1

我爲此爭吵了好幾天,試圖弄清楚爲什麼當我使用response.write發送FDF時,它不會在Reader中顯示。我嘗試發送兩個手工製作的FDF並安裝FDF工具包以創建FDF響應。我能夠創建有效的FDF,因爲我可以在Reader中本地打開並正確顯示彈出式窗口,但是我無法在我的ASP.NET頁面上發送FDF時使用它。

然後靈感來襲。在我嘗試發送FDF的一個嘗試中,我將FDF存儲在一個文件中,並嘗試使用流讀取器將其抽入響應中。經過許多不成功的嘗試使用response.write,奇怪的時候我嘗試了response.redirect到保存的fdf文件,它工作。我之前已經將fdf添加爲我的網站的註冊MIME擴展名,其中application/vnd.fdf作爲MIME類型。現在用戶在成功提交後會收到彈出窗口。簡單的解決方案,在C#中,看起來像這樣:

Page.Response.Redirect("success.fdf");