Translate

2012年5月11日 星期五

PDF Form


PDF Form檔寫完後,當使用者按下按鈕,可以跳出列印,並跳出資訊,希望能將聯絡資訊回傳予我們

參考頁面→
http://www.pdfill.com/pdf_action.html#4
Acrobat JavaScript Scripting Guide:  http://www.pdfill.com/download/Acro6JSGuide.pdfAcrobat JavaScript Scripting Reference:  http://www.pdfill.com/download/AcroJS.pdf


總之,先下載→http://www.adobe.com/tw/downloads/
Acrobat® X Pro

然後再用此檔案開啟PDF檔,目前先將PDF javascript語法留在此

//列印的語法

this.print(true);

//詢問的語法
var nButton = app.alert({
cMsg: "是否提供您的姓名及電話做為通知使用?",
cTitle: "詢問",
nIcon: 2, nType: 2
});

★1跟★2代表的是不同的兩種方法

★1//當確認的話,直接使用連結,並將值傳回給Server(GET Method)
if (nButton == 4) {
    var namevalue = this.getField("name").value;   //將name control的值代入
    app.alert(namevalue);
    var url1 = "http:/localhost//Handler1.ashx?name=" + namevalue;
    app.launchURL(url1 , true);
}


★2//當確認的話,SubmitForm,並將值傳回給Server(Post Method)

if (nButton == 4) {
    var afields = new Array("name");  //將name control的值代入,這裡可以是陣列
    try
    {
       var url1 = "http:/localhost//Handler1.ashx";
     this.submitForm({
          aFields:afields,
          cURL: url1,
          cSubmitAs: "HTML",
          cCharset:"utf-8"}) ;
    }
    catch(e)
    {
        app.alert(e + "因為某些原因造成提供失敗!");
    }
}



=======Handler1.ashx=========


<%@ WebHandler Language="C#" Class="Handler1 " %>

using System;
using System.Web;

    public class Handler1 : IHttpHandler
    {
        public void ProcessRequest(HttpContext context)
        {
            string name = context.Request.Form["name"]; →POST 取得value
            name = context.Request.QueryString["name"]; →Get 取得value
            //do something
            context.Response.Redirect("close.htm");
        }

        public bool IsReusable
        {
            get
            {
                return false;
            }
        }
    }



===============close.htm===================


<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <title></title>
</head>
<body>
  <script type="text/javascript">
      window.opener = null; window.open("", "_self"); window.close();
  </script>
</body>
</html>



*window.opener = null; window.open("", "_self"); window.close();將會不詢問而直接關掉



☆若使用者使用非browser開啟PDF,會有以下反應

→SubmitForm會將html下載到本機的Temp資料夾
→launchURL則只是會再開啟browser另開頁面,但因為傳完資訊會進行關閉的動作

☆若使用者使用broser開啟PDF,會有以下反應


→SubmitForm會將html轉址,最後再到close.html關掉整個頁面
→launchURL則只是會再開啟browser另開頁面,但因為傳完資訊會進行關閉的動作


後續將會持續再找最好的方法/_\



沒有留言:

張貼留言