2009-05-03 118 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");