Po tym zgłoszeniu SO here powiadamia klientów o zdarzeniu kliknięcia w dokumencie PDF, w jaki sposób można powiadomić klienta, gdy plik PDF zostanie przesłany przez klienta za pomocą this.myPDF.submitForm ("localhost/Handler ? .ashx r = 2 funkcja)Klient w PDF Kontohentailer callback
plik PDF jest tworzony wewnątrz formantu użytkownika będzie renderowane do obiektu HTML:
string container = ("<object data='/myfile.pdf' type='application/pdf'></object>");
plik JS dołączony do pliku PDF odbywa się to tak:
var webClient = new WebClient();
string htmlContent = webClient.DownloadString(fileurl + "pdf_script.js");
PdfAction action = PdfAction.JavaScript(htmlContnent, pdfstamper.Writer);
pdfstamper.Writer.SetOpenAction(action);
a zawartość pliku JS:
this.disclosed = true;
if (this.external && this.hostContainer) {
function onMessageFunc(stringArray) {
try {
this.myPDF.submitForm("http://localhost/Handler.ashx?EmpNo=12345" + "#FDF", false);
}
catch (e) {
}
}
function onErrorFunc(e) {
console.show();
console.println(e.toString());
}
try {
if (!this.hostContainer.messageHandler);
this.hostContainer.messageHandler = new Object();
this.hostContainer.messageHandler.myPDF = this;
this.hostContainer.messageHandler.onMessage = onMessageFunc;
this.hostContainer.messageHandler.onError = onErrorFunc;
this.hostContainer.messageHandler.onDisclose = function() { return true; };
}
catch (e) {
onErrorFunc(e);
}
}
Kiedy rozmowa submitForm jest zawartość PDF (pola formularza) zostaną zapisane pomyślnie i alarm jest wyświetlany w formacie PDF, wykonując to:
message = "%FDF-1.2
1 0 obj
<<
/FDF
<<
/Status("Success!")
>>
>>
endobj
trailer
<</Root 1 0 R>>
%%EOF");
return message;
Co próbuję zrobić, to pobrać plik PDF do oddzwaniania klienta po wysłaniu formularza wysłanego przez tego klienta, sposób potwierdzenia, że formularz został przesłany, a nie w formie alertu, ale raczej sposób wyzwalania funkcji na hoście (kontener, element iframe, obiekt ... itd.).
Brak niektórych informacji dotyczących tego kroku: "Po wywołaniu submitForm plik PDF zostanie pomyślnie utworzony, a w pliku PDF zostanie wyświetlony alert:". Zakładam, że plik PDF jest tworzony na serwerze i wyświetlany na kliencie, ale może się mylę. Może serwer zwraca plik FDF. Możesz wyjaśnić? –
Ooops, mój błąd, wywołanie submitForm powoduje zapisanie zawartości pliku PDF, który nie jest tworzony, jest już renderowany w formancie użytkownika i przeprojektowany za
Nie rozumiem powyżej, gdzie jest napisane "if (! this.hostContainer.messageHandler);" Dlaczego linia ta ma na końcu średnik? Czy to błąd? jeśli nie, jaki jest cel tej linii? Wielkie dzięki! –