AEM Forms服務會將互動式PDF表單轉譯至用戶端裝置(通常是網頁瀏覽器),以收集使用者的資訊。 互動式PDF表格是以表格設計為基礎,通常會儲存為XDP檔案,並在Designer中建立。 從AEM Forms開始,您就可以將包含表單設計的com.adobe.idp.Document
物件傳遞至Forms服務。 然後,Forms服務會呈現位於com.adobe.idp.Document
物件中的表單設計。
將com.adobe.idp.Document
物件傳遞至Forms服務的好處是,其他服務作業會傳回com.adobe.idp.Document
例項。 也就是說,您可以從其他服務操作中獲取一個com.adobe.idp.Document
實例並進行渲染。 例如,假設XDP檔案儲存在名為/Company Home/Form Designs
的Content Services(已過時)節點中,如下圖所示。
您可以以程式設計方式從Content Services(不建議使用)擷取Loan.xdp,並將XDP檔案傳遞至com.adobe.idp.Document
物件內的Forms服務。
如需Forms服務的詳細資訊,請參閱AEM Forms的服務參考。
若要將從Content Services(已過時)(已過時)取得的檔案傳遞至Forms服務,請執行下列工作:
包含專案檔案
在您的開發專案中加入必要的檔案。 如果要使用Java建立客戶端應用程式,請包括必要的JAR檔案。 如果您使用web services,請加入proxy檔案。
建立表單和檔案管理用戶端API物件
在以程式設計方式執行Forms服務API操作之前,請先建立Forms Client API物件。 此外,由於此工作流程會從Content Services擷取XDP檔案(已停用),因此請建立Document Management API物件。
從Content Services擷取表單設計(已過時)
使用Java或web service API從Content Services(已過時)擷取XDP檔案。 在com.adobe.idp.Document
實例(或在使用web services時為BLOB
實例)中返回XDP檔案。 然後,您可以將com.adobe.idp.Document
實例傳遞至Forms服務。
轉換互動式PDF表單
若要轉譯互動式表單,請將從Content Services(不建議使用)傳回的com.adobe.idp.Document
例項傳遞至Forms服務。
您可以將包含表單設計的com.adobe.idp.Document
傳遞至Forms服務。 名為renderPDFForm2
和renderHTMLForm2
的兩種新方法接受包含表單設計的com.adobe.idp.Document
物件。
使用表單資料流執行動作
視用戶端應用程式類型而定,您可將表單寫入用戶端網頁瀏覽器,或將表單儲存為PDF檔案。 網頁型應用程式通常會將表單寫入網頁瀏覽器。 不過,案頭應用程式通常會將表單儲存為PDF檔案。
另請參閱
使用Forms服務和Content Services(不建議使用)API(Java)傳遞從Content Services(不建議使用)取得的檔案:
包含專案檔案
在Java專案的類別路徑中包含用戶端JAR檔案,例如adobe-forms-client.jar和adobe-contentservices-client.jar。
建立表單和檔案管理用戶端API物件
ServiceClientFactory
對象。 (請參閱設定連接屬性。)ServiceClientFactory
對象,建立FormsServiceClient
對象。ServiceClientFactory
對象,建立DocumentManagementServiceClientImpl
對象。從Content Services擷取表單設計(已過時)
叫用DocumentManagementServiceClientImpl
物件的retrieveContent
方法並傳遞下列值:
SpacesStore
。 此值為必要參數。/Company Home/Form Designs/Loan.xdp
)。 此值為必要參數。retrieveContent
方法返回包含XDP檔案的CRCResult
對象。 調用CRCResult
物件的getDocument
方法,以取得com.adobe.idp.Document
例項。
轉換互動式PDF表單
叫用FormsServiceClient
物件的renderPDFForm2
方法並傳遞下列值:
com.adobe.idp.Document
物件,包含從Content Services擷取的表單設計(已過時)。com.adobe.idp.Document
物件,包含要與表單合併的資料。 如果您不想合併資料,請傳遞空白的com.adobe.idp.Document
物件。PDFFormRenderSpec
對象。 此值為可選參數,如果您不想指定運行時選項,可以指定null
。URLSpec
對象。 此值是可選參數,您可以指定null
。java.util.HashMap
對象。 此值是可選參數,如果您不想將檔案附加到表單,則可以指定null
。renderPDFForm
方法返回一個FormsResult
對象,該對象包含必須寫入客戶端Web瀏覽器的表單資料流。
使用表單資料流執行動作
FormsResult
對象「s getOutputContent
」方法建立com.adobe.idp.Document
對象。getContentType
方法獲取com.adobe.idp.Document
對象的內容類型。setContentType
方法並傳遞com.adobe.idp.Document
物件的內容類型,以設定javax.servlet.http.HttpServletResponse
物件的內容類型。javax.servlet.http.HttpServletResponse
物件的getOutputStream
方法,建立javax.servlet.ServletOutputStream
物件,用來將表單資料串流寫入用戶端Web瀏覽器。com.adobe.idp.Document
物件的getInputStream
方法,以建立java.io.InputStream
物件。InputStream
物件的read
方法,以表單資料流填入。 將位元組陣列作為引數傳遞。javax.servlet.ServletOutputStream
物件的write
方法,將表單資料串流傳送至用戶端網頁瀏覽器。 將位元組陣列傳遞到write
方法。另請參閱
快速入門(SOAP模式):使用Java API將檔案傳送至Forms Service
使用Forms服務和Content Services(不建議使用)API(web service)傳遞從Content Services(不建議使用)取得的檔案:
包含專案檔案
建立使用MTOM的Microsoft .NET專案。 由於此用戶端應用程式會叫用兩個AEM Forms服務,因此請建立兩個服務參考。 對與Forms服務關聯的服務引用使用以下WSDL定義:http://localhost:8080/soap/services/FormsService?WSDL&lc_version=9.0.1
。
對與「文檔管理」服務關聯的服務引用使用以下WSDL定義:http://localhost:8080/soap/services/DocumentManagementService?WSDL&lc_version=9.0.1
。
由於BLOB
資料類型對於兩個服務引用都很常見,因此使用BLOB
資料類型時可完全限定<a1/>資料類型。 在相應的Web服務快速啟動中,所有BLOB
實例都完全限定。
將localhost
取代為代管AEM Forms之伺服器的IP位址。
建立表單和檔案管理用戶端API物件
使用其預設建構子建立FormsServiceClient
對象。
使用System.ServiceModel.EndpointAddress
建構函式建立FormsServiceClient.Endpoint.Address
物件。 將指定WSDL的字串值傳遞至AEM Forms服務(例如http://localhost:8080/soap/services/FormsService?WSDL
)。 您不需要使用lc_version
屬性。 建立服務參考時,將使用此屬性。)
獲取FormsServiceClient.Endpoint.Binding
欄位的值,建立System.ServiceModel.BasicHttpBinding
對象。 將返回值轉換為BasicHttpBinding
。
將System.ServiceModel.BasicHttpBinding
物件的MessageEncoding
欄位設為WSMessageEncoding.Mtom
。 此值可確保使用MTOM。
執行下列工作以啟用基本HTTP驗證:
FormsServiceClient.ClientCredentials.UserName.UserName
。FormsServiceClient.ClientCredentials.UserName.Password
。HttpClientCredentialType.Basic
分配給欄位BasicHttpBindingSecurity.Transport.ClientCredentialType
。將常數值BasicHttpSecurityMode.TransportCredentialOnly
分配給欄位BasicHttpBindingSecurity.Security.Mode
。
對DocumentManagementServiceClient
服務客戶端重複這些步驟。
從Content Services擷取表單設計(已過時)
叫用DocumentManagementServiceClient
物件的retrieveContent
方法並傳遞下列值,以擷取內容:
SpacesStore
。 此值為必要參數。/Company Home/Form Designs/Loan.xdp
)。 此值為必要參數。BLOB
輸出參數。 您可以使用此輸出參數來擷取內容。ServiceReference1.MyMapOf_xsd_string_To_xsd_anyType
輸出參數。CRCResult
輸出參數。 您可以使用BLOB
輸出參數來取得內容,而不是使用此物件。轉換互動式PDF表單
叫用FormsServiceClient
物件的renderPDFForm2
方法並傳遞下列值:
BLOB
物件,包含從Content Services擷取的表單設計(已過時)。BLOB
物件,包含要與表單合併的資料。 如果您不想合併資料,請傳遞空白的BLOB
物件。PDFFormRenderSpec
對象。 此值為可選參數,如果您不想指定運行時選項,可以指定null
。URLSpec
對象。 此值是可選參數,您可以指定null
。Map
對象。 此值是可選參數,如果您不想將檔案附加到表單,則可以指定null
。.
的FormsResult
輸出參數renderPDFForm2
方法會傳回包含互動式PDF表單的FormsResult
物件。
使用表單資料流執行動作
FormsResult
物件的outputContent
欄位值,建立包含表單資料的BLOB
物件。System.IO.FileStream
對象的建構子建立<a0/>對象。 傳遞一個字串值,代表互動式PDF檔案的檔案位置以及開啟檔案的模式。FormsResult
對象檢索的BLOB
對象的內容。 獲取BLOB
對象MTOM
資料成員的值,以填充位元組陣列。System.IO.BinaryWriter
對象的建構子並傳遞System.IO.FileStream
對象,以建立<a0/>對象。System.IO.BinaryWriter
物件的Write
方法並傳遞位元組陣列,將位元組陣列的內容寫入PDF檔案。另請參閱