使用自訂CSS檔案呈現HTMLForms

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

Forms服務會回應來自網頁瀏覽器的HTTP要求而轉譯HTML表單。 轉譯HTML表單時,Forms服務可參考自訂CSS檔案。 您可以建立自訂CSS檔案,以符合您的業務需求,並在使用Forms服務轉譯HTML表單時參考該CSS檔案。

Forms服務會以靜默方式解析自訂CSS檔案。 也就是說,如果自訂CSS檔案不符合CSS標準,Forms服務不會報告可能遇到的錯誤。 在此情況下,Forms服務會忽略樣式,並繼續處理CSS檔案中剩餘的樣式。

下列清單指定自訂CSS檔案支援的樣式:

  • 類別層級選取器樣式配對:如果自訂CSS檔案中存在,則會使用HTML表單中作為類別樣式使用的選取器。未使用的類樣式被忽略。
  • 識別碼層級選取器樣式配對:如果在HTML表單中使用了所有識別碼樣式,則會使用這些樣式。
  • 元素層級選取器樣式配對:如果在HTML表單中使用所有元素樣式,則會使用這些樣式。
  • 樣式優先順序:樣式優先順序(如重要)受支援,可用於自訂CSS檔案。
  • 媒體類型:一或多個選取器樣式組可以包裝@media樣式以定義媒體類型。Forms服務不會檢查指定的媒體類型是否受支援。 自訂CSS檔案中指定的媒體類型會合併為HTML表單。

您可以使用FormsIVS應用程式擷取範例CSS檔案。 上傳表單,在「測試表單設計」頁面中選取該表單,然後按一下「產生CSS」。 在按一下按鈕之前,您不需要設定HTML轉換類型。 下一步選擇「保存」。 您可以編輯此CSS檔案以符合您的業務需求。

注意

在轉譯使用自訂CSS檔案的HTML表單之前,請務必對轉譯HTML表單有充分的了解。 (請參閱將Forms呈現為HTML。)

注意

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

步驟的摘要

要呈現使用CSS檔案的HTML表單,請執行以下任務:

  1. 包含專案檔案。
  2. 建立Forms Java API物件。
  3. 參考CSS檔案。
  4. 轉譯HTML表單。
  5. 將表單資料流寫入客戶端Web瀏覽器。

包含項目檔案

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

建立Forms Java API物件

您必須先建立Forms用戶端物件,才能以程式設計方式執行Forms服務支援的操作。

參考CSS檔案

若要呈現使用自訂CSS檔案的HTML表單,請確定您參考現有的CSS檔案。

轉譯HTML表單

要呈現HTML表單,必須指定在「設計器」中建立並另存為XDP檔案的表單設計。 您也必須選取HTML轉換類型。 例如,您可以指定HTML轉換類型,為Internet Explorer 5.0或更新版本轉譯動態HTML。

呈現HTML表單還需要值,如呈現其他表單類型所需的URI值。

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

Forms服務轉譯HTML表單時,會傳回表單資料流,您必須將此資料流寫入用戶端網頁瀏覽器,才能讓使用者看到HTML表單。

另請參閱

使用Java API轉譯使用CSS檔案的HTML表單

包含AEM Forms Java程式庫檔案

設定連接屬性

Forms服務API快速入門

轉譯互動式PDF forms

將Forms轉譯為HTML

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

使用Java API呈現使用CSS檔案的HTML表單

使用Forms API(Java)演算使用自訂CSS檔案的HTML表單:

  1. 包含項目檔案

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

  2. 建立Forms Java API物件

    • 建立包含連接屬性的ServiceClientFactory對象。
    • 使用其建構子並傳遞ServiceClientFactory物件,以建立FormsServiceClient物件。
  3. 參考CSS檔案

    • 使用其建構子建立HTMLRenderSpec物件。
    • 要呈現使用自定義CSS檔案的HTML表單,請調用HTMLRenderSpec對象的setCustomCSSURI方法並傳遞一個字串值,該字串值指定CSS檔案的位置和名稱。
  4. 轉譯HTML表單

    調用FormsServiceClient對象的(Deprecated) (Deprecated) renderHTMLForm方法並傳遞以下值:

    • 指定表單設計名稱的字串值,包括檔案名副檔名。 如果您參考屬於Forms應用程式一部分的表單設計,請務必指定完整路徑,例如Applications/FormsApplication/1.0/FormsFolder/Loan.xdp
    • 指定HTML首選項類型的TransformTo枚舉值。 例如,要呈現與Internet Explorer 5.0或更高版本的動態HTML相容的HTML表單,請指定TransformTo.MSDHTML
    • com.adobe.idp.Document物件,包含要與表單合併的資料。 如果您不想合併資料,請傳遞空白的com.adobe.idp.Document物件。
    • 儲存HTML運行時選項的HTMLRenderSpec對象。
    • 指定HTTP_USER_AGENT標題值(如Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322))的字串值。
    • URLSpec物件,用於儲存呈現HTML表單所需的URI值。
    • 儲存檔案附件的java.util.HashMap對象。 這是可選參數,如果不想將檔案附加到表單,可以指定null

    (Deprecated) renderHTMLForm方法返回一個FormsResult對象,該對象包含必須寫入客戶端Web瀏覽器的表單資料流。

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

    • 調用FormsResult對象s getOutputContent方法,建立com.adobe.idp.Document對象。
    • 調用getContentType方法,獲取com.adobe.idp.Document對象的內容類型。
    • 通過調用setContentType方法並傳遞com.adobe.idp.Document對象的內容類型來設定javax.servlet.http.HttpServletResponse對象的內容類型。
    • 通過調用javax.servlet.h\ttp.HttpServletResponse對象的getOutputStream方法,建立用於將表單資料流寫入客戶端Web瀏覽器的javax.servlet.ServletOutputStream對象。
    • 調用com.adobe.idp.Document對象的getInputStream方法,建立java.io.InputStream對象。
    • 叫用InputStream物件的read方法,並將位元組陣列傳遞為引數,借此建立位元組陣列,並填入表單資料流。
    • 調用javax.servlet.ServletOutputStream對象的write方法,將表單資料流發送到客戶端Web瀏覽器。 將位元組陣列傳遞至write方法。

另請參閱

使用自訂CSS檔案轉譯HTML Forms

快速入門(SOAP模式):使用Java API轉譯使用CSS檔案的HTML表單

包含AEM Forms Java程式庫檔案

設定連接屬性

使用Web服務API呈現使用CSS檔案的HTML表單

使用Forms API(網站服務)轉譯使用自訂CSS檔案的HTML表單:

  1. 包含項目檔案

    • 建立使用Forms服務WSDL的Java代理類。
    • 在類路徑中包含Java代理類。
  2. 建立Forms Java API物件

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

  3. 參考CSS檔案

    • 使用其建構子建立HTMLRenderSpec物件。
    • 要呈現使用自定義CSS檔案的HTML表單,請調用HTMLRenderSpec對象的setCustomCSSURI方法並傳遞一個字串值,該字串值指定CSS檔案的位置和名稱。
  4. 轉譯HTML表單

    調用FormsService對象的(Deprecated) renderHTMLForm方法並傳遞以下值:

    • 指定表單設計名稱的字串值,包括檔案名副檔名。 如果您參考屬於Forms應用程式一部分的表單設計,請務必指定完整路徑,例如Applications/FormsApplication/1.0/FormsFolder/Loan.xdp
    • 指定HTML首選項類型的TransformTo枚舉值。 例如,要呈現與Internet Explorer 5.0或更高版本的動態HTML相容的HTML表單,請指定TransformTo.MSDHTML
    • BLOB物件,包含要與表單合併的資料。 如果您不想合併資料,請傳遞null。 (請參閱使用可流動配置預填Forms。)
    • 儲存HTML運行時選項的HTMLRenderSpec對象。
    • 指定HTTP_USER_AGENT標題值(如Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322))的字串值。 如果您不想設定此值,可以傳遞空白字串。
    • URLSpec物件,用於儲存呈現HTML表單所需的URI值。
    • 儲存檔案附件的java.util.HashMap對象。 這是可選參數,如果不想將檔案附加到表單,可以指定null
    • (Deprecated) renderHTMLForm方法填入的空com.adobe.idp.services.holders.BLOBHolder物件。 此參數值儲存呈現的表單。
    • (Deprecated) renderHTMLForm方法填入的空com.adobe.idp.services.holders.BLOBHolder物件。 此參數儲存輸出XML資料。
    • (Deprecated) renderHTMLForm方法填入的空javax.xml.rpc.holders.LongHolder物件。 此引數會儲存表單中的頁數。
    • (Deprecated) renderHTMLForm方法填入的空javax.xml.rpc.holders.StringHolder物件。 此參數儲存地區設定值。
    • (Deprecated) renderHTMLForm方法填入的空javax.xml.rpc.holders.StringHolder物件。 此引數會儲存所使用的HTML呈現值。
    • 將包含此操作結果的空com.adobe.idp.services.holders.FormsResultHolder對象。

    (Deprecated) renderHTMLForm方法會以必須寫入用戶端網頁瀏覽器的表單資料流填入作為最後一個引數值傳遞的com.adobe.idp.services.holders.FormsResultHolder物件。

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

    • 獲取com.adobe.idp.services.holders.FormsResultHolder對象的value資料成員的值,以建立FormResult對象。
    • 調用FormsResult對象的getOutputContent方法,建立包含表單資料的BLOB對象。
    • 調用getContentType方法,獲取BLOB對象的內容類型。
    • 通過調用setContentType方法並傳遞BLOB對象的內容類型來設定javax.servlet.http.HttpServletResponse對象的內容類型。
    • 通過調用javax.servlet.http.HttpServletResponse對象的getOutputStream方法,建立用於將表單資料流寫入客戶端Web瀏覽器的javax.servlet.ServletOutputStream對象。
    • 建立位元組陣列,並調用BLOB對象的getBinaryData方法來填入。 此任務將FormsResult對象的內容分配給位元組陣列。
    • 調用javax.servlet.http.HttpServletResponse對象的write方法,將表單資料流發送到客戶端Web瀏覽器。 將位元組陣列傳遞至write方法。

另請參閱

使用自訂CSS檔案轉譯HTML Forms

使用Base64編碼叫用AEM Forms

本頁內容