使用自訂CSS檔案轉換HTMLForms

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

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. 建立FormsJava API物件。
  3. 參考CSS檔案。
  4. 演算HTML表格。
  5. 將表單資料流寫入用戶端網頁瀏覽器。

包含專案檔案

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

建立FormsJava API物件

在以寫程式方式執行Forms服務支援的操作之前,必須建立Forms客戶端對象。

參考CSS檔案

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

轉換HTML表格

要渲染HTML表單,必須指定在Designer中建立並另存為XDP檔案的表單設計。 您還必須選擇HTML轉換類型。 例如,您可以指定轉換Internet Explorer 5.0或更新版本動態HTML的HTML轉換類型。

轉換HTML表格也需要值,例如轉換其他表格類型所需的URI值。

將表單資料串流寫入用戶端網頁瀏覽器

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

另請參閱

使用Java API演算使用CSS檔案的HTML表格

包含AEM FormsJava庫檔案

設定連接屬性

Forms服務API快速入門

轉換互動式PDF forms

將Forms轉換為HTML

建立轉譯Forms的Web應用程式

使用Java API演算使用CSS檔案的HTML表格

使用FormsAPI(Java)演算使用自訂CSS檔案的HTML表格:

  1. 包含專案檔案

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

  2. 建立FormsJava 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
    • TransformTo列舉值,指定HTML偏好設定類型。 例如,若要轉譯與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. 將表單資料串流寫入用戶端網頁瀏覽器

    • 通過調用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方法,建立javax.servlet.ServletOutputStream物件,用來將表單資料串流寫入用戶端Web瀏覽器。
    • 調用com.adobe.idp.Document物件的getInputStream方法,以建立java.io.InputStream物件。
    • 建立位元組陣列,並以InputStream物件的read方法來填入表單資料流,並將位元組陣列傳入為引數。
    • 叫用javax.servlet.ServletOutputStream物件的write方法,將表單資料串流傳送至用戶端網頁瀏覽器。 將位元組陣列傳遞到write方法。

另請參閱

使用自訂CSS檔案轉換HTMLForms

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

包含AEM FormsJava庫檔案

設定連接屬性

使用web service API轉換使用CSS檔案的HTML表格

使用FormsAPI(web service)演算使用自訂CSS檔案的HTML表格:

  1. 包含專案檔案

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

    建立FormsService對象並設定驗證值。

  3. 參考CSS檔案

    • 使用其建構子建立HTMLRenderSpec對象。
    • 若要轉換使用自訂CSS檔案的HTML表單,請叫用HTMLRenderSpec物件的setCustomCSSURI方法,並傳遞指定CSS檔案位置和名稱的字串值。
  4. 轉換HTML表格

    叫用FormsService物件的(Deprecated) renderHTMLForm方法並傳遞下列值:

    • 指定表單設計名稱的字串值,包括檔案副檔名。 如果您參考屬於Forms應用程式的表單設計,請確定您指定完整路徑,例如Applications/FormsApplication/1.0/FormsFolder/Loan.xdp
    • TransformTo列舉值,指定HTML偏好設定類型。 例如,若要轉譯與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. 將表單資料串流寫入用戶端網頁瀏覽器

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

另請參閱

使用自訂CSS檔案轉換HTMLForms

使用Base64編碼叫用AEM Forms

本頁內容

Adobe Summit Banner

A virtual event April 27-28.

Expand your skills and get inspired.

Register for free
Adobe Summit Banner

A virtual event April 27-28.

Expand your skills and get inspired.

Register for free
Adobe Maker Awards Banner

Time to shine!

Apply now for the 2021 Adobe Experience Maker Awards.

Apply now
Adobe Maker Awards Banner

Time to shine!

Apply now for the 2021 Adobe Experience Maker Awards.

Apply now