2009-05-03 18 views
2

Je me demandais s'il y a un moyen d'aviser un utilisateur dans Adobe Reader qu'un formulaire PDF a été soumis au serveur? Je soumets un formulaire http/html normal à un script PHP pas grave, mais il semble y avoir un gros "trou noir" dans la documentation, les forums, etc. quant à ce qui se passe lorsque le formulaire est soumis.boîte de dialogue de confirmation (alerte) après soumettre le formulaire

N'existe-t-il pas un moyen de déclencher une alerte javascript après avoir envoyé un formulaire ?? Je ne veux pas retourner un autre pdf qui dit "merci", qui est un peu ringard. Je suis très nouveau pour les formulaires pdf donc je devine là doit être un moyen de retourner FDF au document original qui a quelques javascript dans ce qui est exécuté par exemple alerte ('merci pour votre commentaires!') ..

Cela devrait être simple, je suppose Adobes beaucoup de technologie hype PDF était beaucoup plus développeur symphatique et accessible ..

Toutes les idées ?? (Oh et s'il vous plaît ne demandez pas pourquoi j'utilise des formulaires pdf et pas le web, cela vient de "The Top", donc en tant que développeur, je dois le faire ..)

Répondre

4

Le script serveur que vous envoyez des messages doit répondre à ce type de contenu dans l'en-tête HTTP:

'Type de contenu: application/vnd.fdf'

par exemple. Si vous utilisez PHP:

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

suivi par le correspondant bâtarde-pdf-javascript-mutant-demi-pain qui déclenchera la boîte de dialogue d'alerte().

%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 

J'espère que vous recevez ce message, comme je l'ai perdu près de 2 semaines de ma vie trouver une solution ...

+0

+1000, merci de me sauver 2 semaines de ma vie. :) –

+0

Cela semble être une solution ASP.NET pertinente: https://stackoverflow.com/a/25172000/478765 – ed22

0

J'ai réussi à arriver la réponse après 3 jours de recherche, en ajoutant un en-tête pour le fichier fdf dans le script php, ajouter '#FDF' à la fin de l'url dans acrobat semble avoir été la solution;

% 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 < < > flux fonction confirmSend() { app.alert ("Le formulaire a été soumis avec succès vous \ nMerci pour vos commentaires!", 3); } endstream endobj remorque < < /Root 1 0 R > %% EOF

1

Merci pour cela! Moi aussi, j'ai cherché une solution à cela pendant des heures! C'était extrêmement frustrant. Il semble être trop compliqué d'installer le FDF Toolkit juste pour obtenir une simple boîte de dialogue de confirmation après que le PDF a été soumis.

Je suis finalement venu avec les éléments suivants par essais et erreurs (il semble qu'il n'y a absolument aucune documentation à ce sujet sur le net):

%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 

La volonté ci-dessus présente (ou devrait présenter) une boîte de dialogue Adobe Reader sans afficher l'avertissement "Avertissement: Fenêtre JavaScript".

Espérons que cela finira par être utile à quelqu'un.

1

J'ai lutté avec cela pendant des jours, essayant de comprendre pourquoi quand j'ai envoyé le FDF en utilisant response.write, il ne s'afficherait pas dans Reader. J'ai essayé d'envoyer à la fois FDF artisanal et l'installation de la boîte à outils FDF pour créer la réponse FDF. J'ai été capable de créer un FDF valide, car j'ai pu ouvrir localement dans Reader et avoir l'affichage pop-up correctement, mais je n'ai pas pu le faire fonctionner pendant toute la vie de l'envoi de FDF depuis ma page ASP.NET.

Puis l'inspiration a frappé. Dans une de mes tentatives d'envoyer le FDF, j'ai stocké le FDF dans un fichier et essayé d'utiliser un lecteur de flux pour le pomper dans la réponse. Après de nombreuses tentatives infructueuses pour utiliser response.write, sur un coup de tête, j'ai essayé response.redirect pour le fichier fdf enregistré et cela a fonctionné. J'avais précédemment ajouté fdf comme extension MIME enregistrée pour mon site web, avec application/vnd.fdf comme type MIME. Maintenant, l'utilisateur reçoit la pop-up après la soumission réussie. La solution simple, en C#, ressemble à ceci:

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