AEM Forms服務會將互動式PDF forms轉譯給用戶端裝置(通常是網頁瀏覽器),以收集使用者的資訊。 互動式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
的內容服務(已廢止)節點中,如下圖所示。
您可以以程式設計方式從內容服務(已淘汰)擷取Loan.xdp(已淘汰),並將XDP檔案傳遞至com.adobe.idp.Document
物件內的Forms服務。
如需Forms服務的詳細資訊,請參閱AEM Forms的服務參考。
若要將從內容服務取得的檔案(已過時)(已過時)傳遞至Forms服務,請執行下列工作:
包含項目檔案
在您的開發專案中加入必要的檔案。 如果您是使用Java建立客戶端應用程式,請包括必要的JAR檔案。 如果您使用Web服務,請包含代理檔案。
建立Forms和Document Management用戶端API物件
在以程式設計方式執行Forms服務API操作之前,請先建立Forms用戶端API物件。 此外,由於此工作流程會從內容服務擷取XDP檔案(已淘汰),因此請建立檔案管理API物件。
從內容服務擷取表單設計(已淘汰)
使用Java或Web服務API從「內容服務」擷取XDP檔案(已淘汰)。 在com.adobe.idp.Document
實例(或BLOB
實例(如果您使用Web服務)中返回XDP檔案。 然後,您可以將com.adobe.idp.Document
例項傳遞至Forms服務。
轉譯互動式PDF表單
若要轉譯互動式表單,請將從內容服務(已過時)傳回的com.adobe.idp.Document
例項傳遞至Forms服務。
您可以將包含表單設計的com.adobe.idp.Document
傳遞至Forms服務。 名為renderPDFForm2
和renderHTMLForm2
的兩種新方法接受包含表單設計的com.adobe.idp.Document
對象。
使用表單資料流執行動作
根據客戶端應用程式的類型,您可以將表單寫入客戶端Web瀏覽器,或將表單另存為PDF檔案。 基於Web的應用程式通常會將表單寫入Web瀏覽器。 不過,案頭應用程式通常會將表單儲存為PDF檔案。
另請參閱
使用Forms服務和內容服務(已過時)API(Java)傳遞從內容服務取得的檔案(已過時):
包含項目檔案
在您Java專案的類別路徑中包含用戶端JAR檔案,例如adobe-forms-client.jar和adobe-contentservices-client.jar。
建立Forms和Document Management用戶端API物件
ServiceClientFactory
對象。 (請參閱設定連接屬性。)ServiceClientFactory
物件,以建立FormsServiceClient
物件。ServiceClientFactory
物件,以建立DocumentManagementServiceClientImpl
物件。從內容服務擷取表單設計(已淘汰)
調用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
物件,包含從內容服務擷取的表單設計(已廢止)。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
方法,建立用於將表單資料流寫入客戶端Web瀏覽器的javax.servlet.ServletOutputStream
對象。com.adobe.idp.Document
對象的getInputStream
方法,建立java.io.InputStream
對象。InputStream
物件的read
方法,建立位元組陣列,並填入表單資料流。 將位元組陣列傳遞為引數。javax.servlet.ServletOutputStream
對象的write
方法,將表單資料流發送到客戶端Web瀏覽器。 將位元組陣列傳遞至write
方法。另請參閱
快速入門(SOAP模式):使用Java API將檔案傳遞至Forms服務
使用Forms服務與內容服務(已過時)API(網站服務),傳遞從內容服務取得的檔案(已過時):
包含項目檔案
建立使用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
資料類型時,請完全限定該資料類型。 在相應的Web服務快速入門中,所有BLOB
實例都完全限定。
將localhost
替換為托管AEM Forms之伺服器的IP位址。
建立Forms和Document Management用戶端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
服務客戶端重複這些步驟。
從內容服務擷取表單設計(已淘汰)
叫用DocumentManagementServiceClient
物件的retrieveContent
方法並傳遞下列值,以擷取內容:
SpacesStore
。 此值是必要參數。/Company Home/Form Designs/Loan.xdp
)。 此值是必要參數。BLOB
輸出參數。 您可以使用此輸出參數來擷取內容。ServiceReference1.MyMapOf_xsd_string_To_xsd_anyType
輸出參數。CRCResult
輸出參數。 您可以使用BLOB
輸出參數來取得內容,而不使用此物件。轉譯互動式PDF表單
調用FormsServiceClient
對象的renderPDFForm2
方法並傳遞以下值:
BLOB
物件,包含從內容服務擷取的表單設計(已廢止)。BLOB
物件,包含要與表單合併的資料。 如果您不想合併資料,請傳遞空白的BLOB
物件。PDFFormRenderSpec
對象。 此值是可選參數,如果不想指定運行時選項,可以指定null
。URLSpec
對象。 此值是選用參數,您可以指定null
。Map
對象。 此值是可選參數,如果不想將檔案附加到表單,則可以指定null
。.
的FormsResult
輸出參數renderPDFForm2
方法返回包含互動式PDF表單的FormsResult
對象。
使用表單資料流執行動作
FormsResult
對象的outputContent
欄位的值,建立包含表單資料的BLOB
對象。System.IO.FileStream
對象的建構子以建立對象。 傳遞一個字串值,該字串值表示互動式PDF文檔的檔案位置以及開啟檔案的模式。FormsResult
對象檢索到的BLOB
對象的內容。 獲取BLOB
對象的MTOM
資料成員的值,以填充位元組陣列。System.IO.FileStream
對象來建立System.IO.BinaryWriter
對象。System.IO.BinaryWriter
對象的Write
方法並傳遞位元組陣列,將位元組陣列的內容寫入PDF檔案。另請參閱