Nach dieser SO-Lösung here, um Clients über ein Klickereignis in einem PDF-Dokument zu informieren, wie ist es möglich, den Client zu benachrichtigen, wenn die PDF-Datei vom Client mit this.myPDF.submitForm ("localhost/Handler ? .ashx r = 2) FunktionPDF-HostContainer-Rückruf
die PDF-Datei in einem Benutzersteuer dann in ein HTML-Objekt gerendert erstellt wird:
string container = ("<object data='/myfile.pdf' type='application/pdf'></object>");
die in der PDF-Datei beigefügt JS wie dies geschehen ist:
var webClient = new WebClient();
string htmlContent = webClient.DownloadString(fileurl + "pdf_script.js");
PdfAction action = PdfAction.JavaScript(htmlContnent, pdfstamper.Writer);
pdfstamper.Writer.SetOpenAction(action);
Und der Inhalt der js-Datei:
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);
}
}
Wenn der submitForm Aufruf der PDF-Inhalte (Formularfelder) gemacht wird erfolgreich gerettet werden und eine Warnung im PDF-Format ist, indem Sie diese angezeigt:
message = "%FDF-1.2
1 0 obj
<<
/FDF
<<
/Status("Success!")
>>
>>
endobj
trailer
<</Root 1 0 R>>
%%EOF");
return message;
Was ich versuche zu tun, ist die PDF zurückrufen den Client nach dem Formular senden Anruf von diesem Client, eine Möglichkeit, den Client, dass das Formular übermittelt wurde, nicht in Form einer Warnung, aber eher, eine Möglichkeit, eine Funktion im Host auszulösen (der Container, ein Iframe, Objekt ... usw.).
Ich vermisse einige Informationen zu diesem Schritt: "Wenn der submitForm-Aufruf erfolgt, wird die PDF-Datei erfolgreich erstellt und eine Warnung wird in der PDF-Datei angezeigt, indem Sie Folgendes tun:". Ich nehme an, dass ein PDF auf dem Server erstellt und auf dem Client angezeigt wird, aber vielleicht liege ich falsch. Vielleicht gibt der Server eine FDF-Datei zurück. Könntest Du das erläutern? –
Hoppla, mein Fehler, der submitForm-Aufruf wird gemacht, um den Inhalt der PDF zu speichern nicht erstellen, es ist bereits in einem Benutzer-Steuerelement gerendert und eingebettet in eine
Ich verstehe oben nicht, wo ist sagt "if (! this.hostContainer.messageHandler);" Warum hat diese Zeile am Ende ein Semikolon? Ist das ein Fehler? wenn nicht, was ist der Zweck dieser Linie? Danke vielmals! –