最佳化Forms服務的效能 optimizing-the-performance-of-theforms-service

本檔案中的範例和範例僅適用於JEE環境上的AEM Forms。

最佳化Forms服務的效能 optimizing-the-performance-of-the-forms-service

轉譯表單時,您可以設定執行階段選項,以最佳化Forms服務的效能。 另一個您可以執行以改善Forms服務效能的工作是將XDP檔案儲存在存放庫中。 不過,本節並未說明如何執行此工作。 (請參閱使用Java使用者端程式庫叫用服務。)

NOTE
如需Forms服務的詳細資訊,請參閱AEM Forms服務參考

步驟摘要 summary-of-steps

若要最佳化Forms服務在呈現表單時的效能,請執行以下工作:

  1. 包含專案檔案。
  2. 建立Forms使用者端API物件。
  3. 設定效能執行階段選項。
  4. 演算表單。
  5. 將表單資料流寫入使用者端網頁瀏覽器。

包含專案檔

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

建立Forms使用者端API物件

您必須先建立Forms服務使用者端,才能以程式設計方式執行Forms服務使用者端API作業。 如果您使用Java API,請建立FormsServiceClient物件。 如果您使用Forms Web服務API,請建立FormsService物件。

設定效能執行階段選項

您可以設定下列效能執行階段選項,以改善Forms服務的效能:

  • 表單快取:您可以快取在伺服器快取中呈現為PDF的表單。 每個表單在首次產生後都會進行快取。 在後續轉譯時,如果快取表單比表單設計的時間戳記新,則會從快取中擷取表單。 透過快取表單,您可以改善Forms服務的效能,因為它不需要從存放庫擷取表單設計。
  • 表單參考線(已棄用)的轉譯時間可能比其他轉換型別長。 建議您快取表單參考線(已棄用)以提高效能。
  • 獨立選項:如果您不需要Forms服務來執行伺服器端計算,您可以將「獨立」選項設為true,這會產生沒有狀態資訊的表單轉譯。 如果您想要將互動式表單轉譯給一般使用者,然後這些使用者在表單中輸入資訊,並將表單提交回Forms服務,則需要狀態資訊。 Forms服務接著會執行計算操作,並將表單轉譯回使用者,結果會顯示在表單中。 如果將沒有狀態資訊的表單提交回Forms服務,則只有XML資料可用,並且不會執行伺服器端計算。
  • 線性化PDF:已組織線性化PDF檔案,以便在網路環境中啟用有效的增量存取。 PDF檔案在所有方面都是有效的PDF,並與所有現有的檢視器和其他PDF應用程式相容。 也就是說,線性PDF可在下載時檢視。
  • 此選項無法改善在使用者端上轉譯PDF表單時的效能。
  • GuideRSL選項:啟用使用執行階段共用程式庫產生表單指南(已棄用)。 這表示第一個要求會下載較小的SWF檔案,加上儲存在瀏覽器快取中的較大共用程式庫。 如需詳細資訊,請參閱Flex檔案中的RSL 。
  • 您也可以在使用者端上呈現表單,以改善Forms服務的效能。 (請參閱在使用者端轉譯Forms。)

轉譯表單

若要在設定效能選項後轉譯表單,您可以使用與轉譯沒有效能選項的表單相同的應用程式邏輯。

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

Forms服務轉譯表單後,會傳回您必須寫入使用者端網頁瀏覽器的表單資料流。 寫入使用者端網頁瀏覽器時,使用者可看見表單。

另請參閱

包含AEM Forms Java程式庫檔案

設定連線屬性

Forms服務API快速入門

呈現互動式PDF forms

將Forms轉譯為HTML

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

使用Java API最佳化效能 optimize-the-performance-using-the-java-api

使用Forms API (Java)呈現具有最佳化效能的表單:

  1. 包含專案檔案

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

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

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

    • 使用物件的建構函式建立PDFFormRenderSpec物件。
    • 透過叫用PDFFormRenderSpec物件的setCacheEnabled方法並傳遞true來設定表單快取選項。
    • 透過叫用PDFFormRenderSpec物件的setLinearizedPDF方法並傳遞true.來設定線性化選項
  4. 演算表單

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

    • 字串值,指定表單設計名稱,包括副檔名。
    • 包含要與表單合併之資料的com.adobe.idp.Document物件。 如果您不想合併資料,請傳遞空的com.adobe.idp.Document物件。
    • 儲存執行階段選項以改善效能的PDFFormRenderSpec物件。
    • 包含Forms服務所需URI值的URLSpec物件。
    • 儲存檔案附件的java.util.HashMap物件。 這是選用引數,如果您不想將檔案附加至表單,可以指定null

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

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

    • 建立用來傳送表單資料流至使用者端網頁瀏覽器的javax.servlet.ServletOutputStream物件。
    • 呼叫FormsResult物件的getOutputContent方法,以建立com.adobe.idp.Document物件。
    • 呼叫com.adobe.idp.Document物件的getInputStream方法,以建立java.io.InputStream物件。
    • 呼叫InputStream物件的read方法,並將位元組陣列作為引數傳遞,以建立位元組陣列並以表單資料串流填入。
    • 叫用javax.servlet.ServletOutputStream物件的write方法,將表單資料流傳送至使用者端網頁瀏覽器。 將位元組陣列傳遞至write方法。

另請參閱

快速入門(SOAP模式):使用Java API最佳化效能

包含AEM Forms Java程式庫檔案

設定連線屬性

使用網站服務API最佳化效能 optimize-the-performance-using-the-web-service-api

使用Forms API (Web服務)呈現具有最佳化效能的表單:

  1. 包含專案檔案

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

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

  3. 設定效能執行階段選項

    • 使用物件的建構函式建立PDFFormRenderSpec物件。
    • 呼叫PDFFormRenderSpec物件的setCacheEnabled方法並傳遞true,以設定表單快取選項。
    • 透過叫用PDFFormRenderSpec物件的setStandAlone方法並傳遞true來設定獨立選項。
    • 呼叫PDFFormRenderSpec物件的setLinearizedPDF方法並傳遞true,以設定線性化的選項。
  4. 演算表單

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

    • 字串值,指定表單設計名稱,包括副檔名。
    • 包含要與表單合併之資料的BLOB物件。 如果您不想合併資料,請傳遞null
    • 儲存執行階段選項的PDFFormRenderSpecc物件。
    • 包含Forms服務所需URI值的URLSpec物件。
    • 儲存檔案附件的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物件。

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

    • 取得com.adobe.idp.services.holders.FormsResultHolder物件之value資料成員的值,以建立FormResult物件。
    • 建立用來傳送表單資料流至使用者端網頁瀏覽器的javax.servlet.ServletOutputStream物件。
    • 呼叫FormsResult物件的getOutputContent方法,建立包含表單資料的BLOB物件。
    • 建立位元組陣列,並透過叫用BLOB物件的getBinaryData方法來填入該陣列。 此工作會將FormsResult物件的內容指派給位元組陣列。
    • 叫用javax.servlet.http.HttpServletResponse物件的write方法,將表單資料流傳送至使用者端網頁瀏覽器。 將位元組陣列傳遞至write方法。

另請參閱

使用Base64編碼叫用AEM Forms

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