步驟摘要

若要根據片段轉譯表單,請執行下列工作:

  1. 包含專案檔案。
  2. 建立Forms用戶端API物件。
  3. 指定URI值。
  4. 轉譯表單。
  5. 將表單資料流寫入客戶端Web瀏覽器。

包含項目檔案

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

建立Forms用戶端API物件

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

指定URI值

若要根據片段成功轉譯表單,您必須確定Forms服務可以找到表單設計所參考的表單和片段(XDP檔案)。 例如,假設表單名為PO.xdp,且此表單使用名為FooterUS.xdp和FooterCanada.xdp的兩個片段。 在此情況下,Forms服務必須能夠找到所有三個XDP檔案。

您可以將表單放在一個位置,並將片段放在另一個位置,借此組織表單及其片段,或將所有XDP檔案放在相同位置。 就本節而言,假設所有XDP檔案都位於AEM Forms存放庫。 如需將XDP檔案放入AEM Forms存放庫的相關資訊,請參閱 編寫資源.

根據片段轉譯表單時,您只能參考表單本身,不能參考片段。 例如,您必須參考PO.xdp,而非FooterUS.xdp或FooterCanada.xdp。 請確定您將片段放置在Forms服務可找到的位置。

轉譯表單

基於片段的表單可以與非碎片表單相同的方式呈現。 也就是說,您可以將表單轉譯為「PDF」、「HTML」或「表單指南」(已廢止)。 本節中的範例會根據片段轉譯表單,作為互動式PDF表單。 (請參閱 轉譯互動式PDF forms.)

將表單資料流寫入客戶端Web瀏覽器

Forms服務轉譯表單時,會傳回您必須寫入用戶端網頁瀏覽器的表單資料流。 寫入客戶端Web瀏覽器時,用戶可以看到該表單。

另請參閱

使用Java API根據片段呈現表單

使用網站服務API根據片段轉譯表單

包含AEM Forms Java程式庫檔案

設定連接屬性

Forms服務API快速入門

轉譯互動式PDF forms

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

使用Java API根據片段呈現表單

使用Forms API(Java)根據片段轉譯表單:

  1. 包含項目檔案

    在Java專案的類別路徑中加入用戶端JAR檔案,例如adobe-forms-client.jar。

  2. 建立Forms用戶端API物件

    • 建立 ServiceClientFactory 包含連接屬性的對象。
    • 建立 FormsServiceClient 對象,使用其建構子並傳遞 ServiceClientFactory 物件。
  3. 指定URI值

    • 建立 URLSpec 使用其建構子儲存URI值的物件。
    • 叫用 URLSpec 物件 setApplicationWebRoot 方法,並傳遞代表應用程式網頁根的字串值。
    • 叫用 URLSpec 物件 setContentRootURI 方法,並傳遞指定內容根URI值的字串值。 請確定表單設計和片段位於內容根URI中。 否則,Forms服務會擲回例外狀況。 要引用儲存庫,請指定 repository://.
    • 叫用 URLSpec 物件 setTargetURL 方法,並傳遞字串值,指定表單資料張貼到的目標URL值。 如果您在表單設計中定義目標URL,則可以傳遞空字串。 您也可以指定表單要傳送到哪個URL,以執行計算。
  4. 轉譯表單

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

    • 指定表單設計名稱的字串值,包括檔案名副檔名。 如果您參考屬於Forms應用程式一部分的表單設計,請務必指定完整路徑,例如 Applications/FormsApplication/1.0/FormsFolder/Loan.xdp.
    • A com.adobe.idp.Document 包含要與表單合併資料的物件。 如果您不想合併資料,請傳遞空白 com.adobe.idp.Document 物件。
    • A PDFFormRenderSpec 儲存運行時選項的對象。
    • A URLSpec 包含Forms服務根據片段轉譯表單所需URI值的物件。
    • A java.util.HashMap 儲存檔案附件的物件。 這是選用參數,您可以指定 null 如果您不想將檔案附加到表單。

    renderPDFForm 方法傳回 FormsResult 包含必須寫入客戶端web瀏覽器的表單資料流的對象。

  5. 將表單資料流寫入客戶端Web瀏覽器

    • 建立 com.adobe.idp.Document 對象,方法是調用 FormsResult 物件s getOutputContent 方法。
    • 取得 com.adobe.idp.Document 對象 getContentType 方法。
    • 設定 javax.servlet.http.HttpServletResponse 對象的內容類型,方法是調用 setContentType 方法,並傳遞 com.adobe.idp.Document 物件。
    • 建立 javax.servlet.ServletOutputStream 用於通過調用 javax.servlet.http.HttpServletResponse 物件 getOutputStream 方法。
    • 建立 java.io.InputStream 對象,方法是調用 com.adobe.idp.Document 物件 getInputStream 方法。
    • 叫用 InputStream 物件 read方法,並將位元組陣列傳遞為引數。
    • 叫用 javax.servlet.ServletOutputStream 物件 write 將表單資料流傳送至用戶端網頁瀏覽器的方法。 將位元組陣列傳遞至 write 方法。