本檔案中的範例和範例僅適用於JEE環境上的AEM Forms 。
轉譯表單時,您可以設定執行階段選項,以最佳化Forms服務的效能。 另一個您可以執行以改善Forms服務效能的工作是將XDP檔案儲存在存放庫中。 不過,本節並未說明如何執行此工作。 (請參閱 使用Java使用者端程式庫叫用服務.)
如需Forms服務的詳細資訊,請參閱 AEM Forms服務參考.
若要最佳化Forms服務在呈現表單時的效能,請執行以下工作:
包含專案檔案
將必要的檔案納入您的開發專案中。 如果您使用Java建立使用者端應用程式,請包含必要的JAR檔案。 如果您使用Web服務,請確定您包含Proxy檔案。
建立Forms使用者端API物件
您必須先建立Forms服務使用者端,才能以程式設計方式執行Forms服務使用者端API作業。 如果您使用Java API,請建立 FormsServiceClient
物件。 如果您使用Forms Web服務API,請建立 FormsService
物件。
設定效能執行階段選項
您可以設定下列效能執行階段選項,以改善Forms服務的效能:
true
,這會導致表單轉譯時不含狀態資訊。 如果您想要將互動式表單轉譯給一般使用者,然後這些使用者在表單中輸入資訊,並將表單提交回Forms服務,則需要狀態資訊。 Forms服務接著會執行計算操作,並將表單轉譯回使用者,結果會顯示在表單中。 如果將沒有狀態資訊的表單提交回Forms服務,則只有XML資料可用,並且不會執行伺服器端計算。演算表單
若要在設定效能選項後轉譯表單,您可以使用與轉譯沒有效能選項的表單相同的應用程式邏輯。
將表單資料流寫入使用者端網頁瀏覽器
Forms服務轉譯表單後,會傳回您必須寫入使用者端網頁瀏覽器的表單資料流。 寫入使用者端網頁瀏覽器時,使用者可看見表單。
另請參閱
使用Forms API (Java)呈現具有最佳化效能的表單:
包含專案檔案
在您的Java專案的類別路徑中包含使用者端JAR檔案,例如adobe-forms-client.jar。
建立Forms使用者端API物件
ServiceClientFactory
包含連線屬性的物件。FormsServiceClient
物件,使用它的建構函式並傳遞 ServiceClientFactory
物件。設定效能執行階段選項
PDFFormRenderSpec
物件(使用其建構函式)。PDFFormRenderSpec
物件的 setCacheEnabled
方法和傳遞 true
.PDFFormRenderSpec
物件的 setLinearizedPDF
方法和傳遞 true.
演算表單
叫用 FormsServiceClient
物件的 renderPDFForm
方法並傳遞下列值:
com.adobe.idp.Document
包含要與表單合併之資料的物件。 如果您不想合併資料,請傳遞空白字元 com.adobe.idp.Document
物件。PDFFormRenderSpec
儲存執行階段選項以改善效能的物件。URLSpec
包含Forms服務所需URI值的物件。java.util.HashMap
儲存檔案附件的物件。 此為選用引數,您可以指定 null
如果您不想將檔案附加至表單。此 renderPDFForm
方法傳回 FormsResult
包含必須寫入使用者端Web瀏覽器的表單資料流的物件。
將表單資料流寫入使用者端網頁瀏覽器
javax.servlet.ServletOutputStream
用來將表單資料流傳送至使用者端網頁瀏覽器的物件。com.adobe.idp.Document
物件(透過叫用 FormsResult
物件 getOutputContent
方法。java.io.InputStream
物件(透過叫用 com.adobe.idp.Document
物件的 getInputStream
方法。InputStream
物件的 read
方法,並將位元組陣列作為引數傳遞。javax.servlet.ServletOutputStream
物件的 write
將表單資料流傳送至使用者端web瀏覽器的方法。 將位元組陣列傳遞至 write
方法。另請參閱
使用Forms API (Web服務)呈現具有最佳化效能的表單:
包含專案檔案
建立Forms使用者端API物件
建立 FormsService
物件並設定驗證值。
設定效能執行階段選項
PDFFormRenderSpec
物件(使用其建構函式)。PDFFormRenderSpec
物件的 setCacheEnabled
方法並傳遞true。PDFFormRenderSpec
物件的 setStandAlone
方法並傳遞true。PDFFormRenderSpec
物件的 setLinearizedPDF
方法並傳遞true。演算表單
叫用 FormsService
物件的 renderPDFForm
方法並傳遞下列值:
BLOB
包含要與表單合併之資料的物件。 如果您不想合併資料,請傳遞 null
.PDFFormRenderSpecc
儲存執行階段選項的物件。URLSpec
包含Forms服務所需URI值的物件。java.util.HashMap
儲存檔案附件的物件。 此為選用引數,您可以指定 null
如果您不想將檔案附加至表單。com.adobe.idp.services.holders.BLOBHolder
由方法填入的物件。 這可用來儲存轉譯的PDF表單。javax.xml.rpc.holders.LongHolder
由方法填入的物件。 (此引數會儲存表單中的頁數)。javax.xml.rpc.holders.StringHolder
由方法填入的物件。 (此引數將會儲存地區設定值)。com.adobe.idp.services.holders.FormsResultHolder
將包含此作業結果的物件。此 renderPDFForm
方法填入 com.adobe.idp.services.holders.FormsResultHolder
以表單資料流傳遞作為最後一個引數值的物件,必須寫入使用者端Web瀏覽器。
將表單資料流寫入使用者端網頁瀏覽器
FormResult
物件,方法是取得 com.adobe.idp.services.holders.FormsResultHolder
物件的 value
資料成員。javax.servlet.ServletOutputStream
用來將表單資料流傳送至使用者端網頁瀏覽器的物件。BLOB
包含表單資料的物件(透過叫用 FormsResult
物件的 getOutputContent
方法。BLOB
物件的 getBinaryData
方法。 此任務會指派 FormsResult
物件至位元組陣列。javax.servlet.http.HttpServletResponse
物件的 write
將表單資料流傳送至使用者端web瀏覽器的方法。 將位元組陣列傳遞至 write
方法。另請參閱