步驟摘要
若要根據片段轉譯表單,請執行下列工作:
- 包含專案檔案。
- 建立Forms用戶端API物件。
- 指定URI值。
- 轉譯表單。
- 將表單資料流寫入客戶端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根據片段呈現表單
使用Forms API(Java)根據片段轉譯表單:
-
包含項目檔案
在Java專案的類別路徑中加入用戶端JAR檔案,例如adobe-forms-client.jar。
-
建立Forms用戶端API物件
- 建立
ServiceClientFactory包含連接屬性的對象。 - 建立
FormsServiceClient對象,使用其建構子並傳遞ServiceClientFactory物件。
- 建立
-
指定URI值
- 建立
URLSpec使用其建構子儲存URI值的物件。 - 叫用
URLSpec物件setApplicationWebRoot方法,並傳遞代表應用程式網頁根的字串值。 - 叫用
URLSpec物件setContentRootURI方法,並傳遞指定內容根URI值的字串值。 請確定表單設計和片段位於內容根URI中。 否則,Forms服務會擲回例外狀況。 要引用儲存庫,請指定repository://. - 叫用
URLSpec物件setTargetURL方法,並傳遞字串值,指定表單資料張貼到的目標URL值。 如果您在表單設計中定義目標URL,則可以傳遞空字串。 您也可以指定表單要傳送到哪個URL,以執行計算。
- 建立
-
轉譯表單
叫用
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瀏覽器的表單資料流的對象。 - 指定表單設計名稱的字串值,包括檔案名副檔名。 如果您參考屬於Forms應用程式一部分的表單設計,請務必指定完整路徑,例如
-
將表單資料流寫入客戶端Web瀏覽器
- 建立
com.adobe.idp.Document對象,方法是調用FormsResult物件sgetOutputContent方法。 - 取得
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方法。
- 建立