在此处遵循此 SO 解决方案以通知客户端 PDF 文档中的单击事件,当客户端使用 this.myPDF.submitForm("localhost/Handler.ashx?r=2 ) 功能?
PDF 文件在用户控件中创建,然后呈现为 HTML 对象:
string container = ("<object data='/myfile.pdf' type='application/pdf'></object>");
附加到 PDF 的 JS 文件是这样完成的:
 var webClient = new WebClient();
 string htmlContent = webClient.DownloadString(fileurl + "pdf_script.js");
 PdfAction action = PdfAction.JavaScript(htmlContnent, pdfstamper.Writer);
 pdfstamper.Writer.SetOpenAction(action);
以及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);
    }
}
进行 submitForm 调用后,PDF 内容(表单字段)将成功保存,并通过执行以下操作在 PDF 中显示警报:
message = "%FDF-1.2
                   1 0 obj
                   <<
                   /FDF
                   <<
                      /Status("Success!")
                   >>
                   >>
                   endobj
                   trailer
                   <</Root 1 0 R>>
           %%EOF");
return message;
我想要做的是让 PDF 在从该客户端发送表单提交调用后回调客户端,这是一种确认客户端已提交表单的方式,而不是以警报的形式,而是,一种在主机(容器、iframe、对象...等)中触发功能的方法。