диалоговое окно подтверждения (оповещение) после отправки формы - PullRequest
3 голосов
/ 03 мая 2009

Мне было интересно, есть ли способ уведомить пользователя в Adobe Reader что PDF-форма была отправлена ​​на сервер? Я отправляю нормальная форма http / html для php-скрипта нет ничего сложного, прямо, но в документации, на форумах и т. д. существует большая "черная дыра" что происходит при отправке формы.

Нет ли способа вызвать предупреждение JavaScript после того, как я отправил форма?? Я не хочу возвращать еще один PDF, который говорит "спасибо", это немного безвкусно. Я очень плохо знаком с PDF-формами, так что я думаю, там должен быть способ вернуть FDF в исходный документ, который имеет некоторые javascript в нем, который выполняется, например, alert ('спасибо за ваш обратная связь!) ..

Это должно быть прямо вперед, я предположил, что Adobes сильно раздут Технология PDF была намного более дружественной и доступной для разработчиков ..

Есть идеи? (О, и, пожалуйста, не спрашивайте, почему я использую pdf-формы, а не в Интернете, это из "The Top", так что как разработчику я просто должен это сделать ..)

Ответы [ 4 ]

5 голосов
/ 01 октября 2009

Серверный скрипт, на который вы отправляете сообщение, должен ответить с этим типом содержимого в заголовке 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 недели своей жизни на поиск решения ...

1 голос
/ 28 апреля 2011

Я спорил с этим несколько дней, пытаясь понять, почему, когда я отправлял FDF с использованием response.write, он просто не отображался в Reader. Я попытался отправить как созданный вручную FDF, так и установить инструментарий FDF для создания ответа FDF. Мне удалось создать действительный FDF, поскольку я мог открываться локально в Reader и правильно отображать всплывающее окно, но не мог заставить его работать всю жизнь, отправляя FDF со своей страницы ASP.NET.

Затем пришло вдохновение. В одной из моих попыток отправить FDF я сохранил FDF в файле и попытался использовать потоковый ридер, чтобы вставить его в ответ. После многих неудачных попыток использовать response.write, по какой-то причине я попытался response.redirect к сохраненному файлу fdf, и это сработало. Ранее я добавлял fdf в качестве зарегистрированного расширения MIME для своего веб-сайта, используя application / vnd.fdf в качестве типа MIME. Теперь пользователь получает всплывающее окно после успешной отправки. Простое решение в C # выглядит следующим образом:

Page.Response.Redirect("success.fdf");
1 голос
/ 12 октября 2009

Спасибо за это! Я тоже искал решение этой проблемы часами! Это было крайне неприятно. Похоже, излишне устанавливать FDF Toolkit просто для того, чтобы получить простое диалоговое окно подтверждения после отправки PDF.

Я в конечном итоге при помощи метода проб и ошибок придумал следующее (кажется, в сети нет абсолютно никакой документации по этому поводу):

%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

Выше будет представлено (или должно появиться) диалоговое окно в Adobe Reader без отображения предупреждения «Предупреждение: окно JavaScript».

Надеюсь, это пригодится кому-то.

0 голосов
/ 04 мая 2009

Мне удалось встретиться с ответом после 3-х дней поиска, добавив заголовок для файла fdf в скрипт php, добавив '#FDF' к концу URL в acrobat, похоже, решение было;

% FDF-1,2 1 0 объектов << / FDF << / JavaScript << / Док 2 0 р / После (verifySend ();) </p>

> > > endobj 2 0 объектов [ (подтвердитьОтправить) 3 0 R ] endobj 3 0 объектов << > поток функция verifySend () { app.alert («Форма была успешно отправлена ​​\ nСпасибо за отзыв!», 3); } endstream endobj прицеп << / Root 1 0 R > %% EOF

...