轉譯已啟用許可權的Forms rendering-rights-enabled-forms

Forms服務可轉譯已套用使用許可權的表單。 使用許可權與Acrobat中預設提供的功能有關,但不適用於Adobe Reader,例如新增註解至表單或填寫表單欄位及儲存表單的功能。 已套用使用許可權的Forms稱為許可權啟用表單。 在Adobe Reader中開啟許可權啟用表單的使用者,可以執行為該表單啟用的操作。

若要將使用許可權套用至表單,Acrobat Reader DC擴充功能服務必須是AEM表單安裝的一部分。 此外,您必須具備有效的認證,才能將使用許可權套用至PDF檔案。 也就是說,您必須先正確設定Acrobat Reader DC擴充功能服務,才能轉譯啟用許可權的表單。 (請參閱關於Acrobat Reader DC擴充功能服務。)

NOTE
若要呈現包含使用許可權的表單,您必須使用XDP檔案作為輸入,而非PDF檔案。 如果您使用PDF檔案作為輸入,表單仍會呈現;但是,它不會是啟用許可權的表單。
NOTE
當您指定下列使用許可權時,無法預先填入XML資料的表單: enableCommentsenableCommentsOnlineenableEmbeddedFilesenableDigitalSignatures。 (請參閱使用可流動配置預先填入Forms。)
NOTE
如需Forms服務的詳細資訊,請參閱AEM Forms服務參考

步驟摘要 summary-of-steps

若要轉譯啟用許可權的表單,請執行下列工作:

  1. 包含專案檔案。
  2. 建立Forms使用者端API物件。
  3. 設定使用許可權執行階段選項。
  4. 轉譯啟用許可權的表單。
  5. 將啟用許可權的表單寫入使用者端網頁瀏覽器。

包含專案檔

將必要的檔案納入您的開發專案中。 如果您使用Java建立使用者端應用程式,請包含必要的JAR檔案。 如果您使用Web服務,請確定您包含Proxy檔案。

建立Forms使用者端API物件

您必須先建立Forms服務使用者端,才能以程式設計方式執行Forms服務使用者端API作業。

設定使用許可權執行階段選項

設定使用許可權執行階段選項,以顯示啟用許可權的表單。 指定用來套用使用許可權至表單的認證別名。 指定別名值之後,您即可指定要套用至表單的每個使用許可權。

轉譯啟用許可權的表單

若要轉譯已啟用許可權的表單,您可以使用與轉譯沒有使用許可權的表單相同的應用程式邏輯。 唯一的區別是,您必須確保使用許可權執行階段選項包含在應用程式邏輯中。

NOTE
使用Forms Web服務API轉譯啟用許可權的表單時,您無法將檔案附加至表單。

將表單資料流寫入使用者端網頁瀏覽器

Forms服務轉譯啟用許可權的表單時,會傳回您必須寫入使用者端網頁瀏覽器的表單資料流。 將表單寫入使用者端網頁瀏覽器後,使用者即可看到表單。 在Adobe Reader中檢視許可權啟用表單的使用者,可執行針對該表單啟用的操作。

另請參閱

使用Java API轉譯啟用許可權的表單

使用網站服務API轉譯啟用許可權的表單

包含AEM Forms Java程式庫檔案

設定連線屬性

Forms服務API快速入門

呈現互動式PDF forms

建立轉譯Forms的網頁應用程式

使用Java API轉譯啟用許可權的表單 render-rights-enabled-forms-using-the-java-api

使用Forms API (Java)轉譯已啟用許可權的表單:

  1. 包含專案檔案

    在您的Java專案的類別路徑中包含使用者端JAR檔案,例如adobe-forms-client.jar。

  2. 建立Forms使用者端API物件

    • 建立包含連線屬性的ServiceClientFactory物件。
    • 使用它的建構函式並傳遞ServiceClientFactory物件來建立FormsServiceClient物件。
  3. 設定使用許可權執行階段選項

    • 使用物件的建構函式建立ReaderExtensionSpec物件。
    • 透過叫用ReaderExtensionSpec物件的setReCredentialAlias方法來指定認證的別名,並指定代表別名值的字串值。
    • 透過叫用屬於ReaderExtensionSpec物件的對應方法來設定每個使用權利。 不過,只有當您參照的認證可讓您進行時,才能設定使用許可權。 也就是說,如果認證不允許您設定使用方式,您就無法設定使用方式。 例如。 若要設定使用許可權,讓使用者能夠填寫表單欄位並儲存表單,請叫用ReaderExtensionSpec物件的setReFillIn方法並傳遞true
    note note
    NOTE
    不需要叫用ReaderExtensionSpec物件的setReCredentialPassword方法。 Forms服務不使用此方法。
  4. 轉譯啟用許可權的表單

    叫用FormsServiceClient物件的renderPDFFormWithUsageRights方法,並傳遞下列值:

    • 字串值,指定表單設計名稱,包括副檔名。 如果您參照的表單設計屬於Forms應用程式的一部分,請確定您指定完整路徑,例如Applications/FormsApplication/1.0/FormsFolder/Loan.xdp
    • 包含要與表單合併之資料的com.adobe.idp.Document物件。 如果您不想合併資料,請傳遞空的com.adobe.idp.Document物件。
    • 儲存執行階段選項的PDFFormRenderSpec物件。
    • 儲存使用許可權執行階段選項的ReaderExtensionSpec物件。
    • 包含Forms服務所需URI值的URLSpec物件。

    renderPDFFormWithUsageRights方法傳回FormsResult物件,其中包含必須寫入使用者端網頁瀏覽器的表單資料流。

  5. 將表單資料流寫入使用者端網頁瀏覽器

    • 呼叫FormsResult物件的getOutputContent方法,以建立com.adobe.idp.Document物件。
    • 透過叫用物件的getContentType方法,取得com.adobe.idp.Document物件的內容型別。
    • 透過叫用其setContentType方法並傳遞com.adobe.idp.Document物件的內容型別來設定javax.servlet.http.HttpServletResponse物件的內容型別。
    • 呼叫javax.servlet.http.HttpServletResponse物件的getOutputStream方法,建立用來將表單資料流寫入使用者端網頁瀏覽器的javax.servlet.ServletOutputStream物件。
    • 呼叫com.adobe.idp.Document物件的getInputStream方法,以建立java.io.InputStream物件。
    • 呼叫InputStream物件的read方法,並將位元組陣列作為引數傳遞,以表單資料流填入位元組陣列。
    • 叫用javax.servlet.ServletOutputStream物件的write方法,將表單資料流傳送至使用者端網頁瀏覽器。 將位元組陣列傳遞至write方法。

另請參閱

快速入門(SOAP模式):使用Java API轉譯已啟用許可權的表單

包含AEM Forms Java程式庫檔案

設定連線屬性

使用網站服務API轉譯啟用許可權的表單 render-rights-enabled-forms-using-the-web-service-api

使用Forms API (Web服務)轉譯啟用許可權的表單:

  1. 包含專案檔案

    • 建立使用Forms服務WSDL的Java Proxy類別。
    • 將Java Proxy類別納入您的類別路徑中。
  2. 建立Forms使用者端API物件

    建立FormsService物件並設定驗證值。

  3. 設定使用許可權執行階段選項

    • 使用物件的建構函式建立ReaderExtensionSpec物件。
    • 透過叫用ReaderExtensionSpec物件的setReCredentialAlias方法來指定認證的別名,並指定代表別名值的字串值。
    • 透過叫用屬於ReaderExtensionSpec物件的對應方法來設定每個使用權利。 不過,只有當您參照的認證可讓您進行時,才能設定使用許可權。 也就是說,如果認證不允許您設定使用方式,您就無法設定使用方式。 若要設定使用許可權,讓使用者能夠填寫表單欄位並儲存表單,請叫用ReaderExtensionSpec物件的setReFillIn方法並傳遞true
  4. 轉譯啟用許可權的表單

    叫用FormsService物件的renderPDFFormWithUsageRights方法,並傳遞下列值:

    • 字串值,指定表單設計名稱,包括副檔名。 如果您參照的表單設計屬於Forms應用程式的一部分,請確定您指定完整路徑,例如Applications/FormsApplication/1.0/FormsFolder/Loan.xdp
    • 包含要與表單合併之資料的BLOB物件。 如果您不想將資料與表單合併,您必須傳遞以空白XML資料來源為基礎的BLOB物件。 您無法傳遞null的BLOB物件;否則,會擲回例外狀況。
    • 儲存執行階段選項的PDFFormRenderSpec物件。
    • 儲存使用許可權執行階段選項的ReaderExtensionSpec物件。
    • 包含Forms服務所需URI值的URLSpec物件。

    renderPDFFormWithUsageRights方法傳回FormsResult物件,其中包含必須寫入使用者端網頁瀏覽器的表單資料流。

  5. 將表單資料流寫入使用者端網頁瀏覽器

    • 呼叫FormsResult物件的getOutputContent方法,建立包含表單資料的BLOB物件。
    • 透過叫用物件的getContentType方法,取得BLOB物件的內容型別。
    • 透過叫用其setContentType方法並傳遞BLOB物件的內容型別來設定javax.servlet.http.HttpServletResponse物件的內容型別。
    • 呼叫javax.servlet.http.HttpServletResponse物件的getOutputStream方法,建立用來將表單資料流寫入使用者端網頁瀏覽器的javax.servlet.ServletOutputStream物件。
    • 建立位元組陣列,並透過叫用BLOB物件的getBinaryData方法來填入該陣列。 此工作會將FormsResult物件的內容指派給位元組陣列。
    • 叫用javax.servlet.http.HttpServletResponse物件的write方法,將表單資料流傳送至使用者端網頁瀏覽器。 將位元組陣列傳遞至write方法。

另請參閱

轉譯已啟用許可權的Forms

使用Base64編碼叫用AEM Forms

recommendation-more-help
19ffd973-7af2-44d0-84b5-d547b0dffee2