將檔案傳遞至Forms服務 passing-documents-to-the-formsservice
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檔案傳遞至Forms服務(位於 com.adobe.idp.Document 物件。
步驟摘要 summary-of-steps
若要將從內容服務取得的檔案(已過時)(已過時)傳遞至Forms服務,請執行下列工作:
- 包含專案檔案。
- 建立Forms和Document Management用戶端API物件。
- 從內容服務擷取表單設計(已淘汰)。
- 轉譯互動式PDF表單。
- 對表單資料流執行動作。
包含項目檔案
在您的開發專案中加入必要的檔案。 如果您是使用Java建立客戶端應用程式,請包括必要的JAR檔案。 如果您使用Web服務,請包含代理檔案。
建立Forms和Document Management用戶端API物件
在以程式設計方式執行Forms服務API操作之前,請先建立Forms用戶端API物件。 此外,由於此工作流程會從內容服務擷取XDP檔案(已淘汰),因此請建立檔案管理API物件。
從內容服務擷取表單設計(已淘汰)
使用Java或Web服務API從內容服務擷取XDP檔案(已淘汰)。 在 com.adobe.idp.Document 例項(或 BLOB 例項(若您使用網站服務)。 然後,您就可以傳遞 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檔案。
另請參閱
使用Java API將檔案傳遞至Forms服務 pass-documents-to-the-forms-service-using-the-java-api
使用Forms服務和內容服務(已過時)API(Java)傳遞從內容服務取得的檔案(已過時):
-
包含項目檔案
在您Java專案的類別路徑中包含用戶端JAR檔案,例如adobe-forms-client.jar和adobe-contentservices-client.jar。
-
建立Forms和Document Management用戶端API物件
- 建立
ServiceClientFactory包含連接屬性的對象。 (請參閱 設定連接屬性.) - 建立
FormsServiceClient對象,使用其建構子並傳遞ServiceClientFactory物件。 - 建立
DocumentManagementServiceClientImpl對象,使用其建構子並傳遞ServiceClientFactory物件。
- 建立
-
從內容服務擷取表單設計(已淘汰)
叫用
DocumentManagementServiceClientImpl物件retrieveContent方法,並傳遞下列值:- 一個字串值,它指定添加內容的儲存區。 預設商店為
SpacesStore. 此值是必要參數。 - 指定要檢索的內容的完全限定路徑的字串值(例如,
/Company Home/Form Designs/Loan.xdp)。 此值是必要參數。 - 指定版本的字串值。 此值是選用參數,您可以傳遞空白字串。 在此情況下,會擷取最新版本。
此
retrieveContent方法傳回CRCResult包含XDP檔案的物件。 取得com.adobe.idp.Document執行個體CRCResult物件getDocument方法。 - 一個字串值,它指定添加內容的儲存區。 預設商店為
-
轉譯互動式PDF表單
叫用
FormsServiceClient物件renderPDFForm2方法,並傳遞下列值:- A
com.adobe.idp.Document包含從內容服務擷取的表單設計的物件(已淘汰)。 - A
com.adobe.idp.Document包含要與表單合併資料的物件。 如果您不想合併資料,請傳遞空白com.adobe.idp.Document物件。 - A
PDFFormRenderSpec儲存運行時選項的對象。 此值是選用參數,您可以指定null如果您不想指定執行時選項。 - A
URLSpec包含URI值的對象。 此值是選用參數,您可以指定null. - A
java.util.HashMap儲存檔案附件的物件。 此值是選用參數,您可以指定null如果您不想將檔案附加到表單。
此
renderPDFForm方法傳回FormsResult包含必須寫入客戶端web瀏覽器的表單資料流的對象。 - A
-
使用表單資料流執行動作
- 建立
com.adobe.idp.Document對象,方法是調用FormsResult物件sgetOutputContent方法。 - 取得
com.adobe.idp.Document對象getContentType方法。 - 設定
javax.servlet.http.HttpServletResponse對象的內容類型,方法是調用setContentType方法,並傳遞com.adobe.idp.Document物件。 - 建立
javax.servlet.ServletOutputStream用於通過調用javax.servlet.http.HttpServletResponse物件getOutputStream方法。 - 建立
java.io.InputStream對象,方法是調用com.adobe.idp.Document物件getInputStream方法。 - 建立位元組陣列,並叫用
InputStream物件read方法。 將位元組陣列傳遞為引數。 - 叫用
javax.servlet.ServletOutputStream物件write將表單資料流傳送至用戶端網頁瀏覽器的方法。 將位元組陣列傳遞至write方法。
- 建立
另請參閱
使用網站服務API將檔案傳遞至Forms服務 pass-documents-to-the-forms-service-using-the-web-service-api
使用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例項已完全限定。note note NOTE 取代 localhost包含AEM Forms所在伺服器的IP位址。 -
建立Forms和Document Management用戶端API物件
-
建立
FormsServiceClient物件,使用其預設建構函式。 -
建立
FormsServiceClient.Endpoint.Address物件,使用System.ServiceModel.EndpointAddress建構子。 將指定WSDL的字串值傳遞至AEM Forms服務(例如http://localhost:8080/soap/services/FormsService?WSDL)。 您不需要使用lc_version屬性。 建立服務參考時會使用此屬性。) -
建立
System.ServiceModel.BasicHttpBinding物件,方法是取得FormsServiceClient.Endpoint.Binding欄位。 將傳回值轉換為BasicHttpBinding. -
設定
System.ServiceModel.BasicHttpBinding物件MessageEncoding欄位至WSMessageEncoding.Mtom. 此值可確保使用MTOM。 -
通過執行以下任務來啟用基本HTTP身份驗證:
- 將AEM表單使用者名稱指派給欄位
FormsServiceClient.ClientCredentials.UserName.UserName. - 為欄位分配相應的密碼值
FormsServiceClient.ClientCredentials.UserName.Password. - 指派常數值
HttpClientCredentialType.Basic欄位BasicHttpBindingSecurity.Transport.ClientCredentialType.
- 將AEM表單使用者名稱指派給欄位
-
指派常數值
BasicHttpSecurityMode.TransportCredentialOnly欄位BasicHttpBindingSecurity.Security.Mode.
note note NOTE 對 DocumentManagementServiceClient服務客戶端。 -
-
從內容服務擷取表單設計(已淘汰)
叫用
DocumentManagementServiceClient物件retrieveContent方法並傳遞下列值:- 一個字串值,它指定添加內容的儲存區。 預設商店為
SpacesStore. 此值是必要參數。 - 指定要檢索的內容的完全限定路徑的字串值(例如,
/Company Home/Form Designs/Loan.xdp)。 此值是必要參數。 - 指定版本的字串值。 此值是選用參數,您可以傳遞空白字串。 在此情況下,會擷取最新版本。
- 儲存瀏覽連結值的字串輸出參數。
- A
BLOB儲存內容的輸出參數。 您可以使用此輸出參數來擷取內容。 - A
ServiceReference1.MyMapOf_xsd_string_To_xsd_anyType儲存內容屬性的輸出參數。 - A
CRCResult輸出參數。 您可以使用BLOB輸出參數來取得內容。
- 一個字串值,它指定添加內容的儲存區。 預設商店為
-
轉譯互動式PDF表單
叫用
FormsServiceClient物件renderPDFForm2方法,並傳遞下列值:- A
BLOB包含從內容服務擷取的表單設計的物件(已淘汰)。 - A
BLOB包含要與表單合併資料的物件。 如果您不想合併資料,請傳遞空白BLOB物件。 - A
PDFFormRenderSpec儲存運行時選項的對象。 此值是選用參數,您可以指定null如果您不想指定執行時選項。 - A
URLSpec包含URI值的對象。 此值是選用參數,您可以指定null. - A
Map儲存檔案附件的物件。 此值是選用參數,您可以指定null如果您不想將檔案附加到表單。 - 用於儲存頁數的長輸出參數。
- 用於儲存地區設定值的字串輸出參數。
- A
FormsResult用於儲存交互PDF表單的輸出參數.
此
renderPDFForm2方法傳回FormsResult包含互動式PDF表單的物件。 - A
-
使用表單資料流執行動作
- 建立
BLOB包含表單資料的物件,方法是取得FormsResult物件outputContent欄位。 - 建立
System.IO.FileStream對象,方法是調用其建構子。 傳遞一個字串值,該字串值表示交互PDF文檔的檔案位置以及開啟檔案的模式。 - 建立位元組陣列,用於儲存
BLOB從FormsResult物件。 取得BLOB物件MTOM資料成員。 - 建立
System.IO.BinaryWriter對象,調用其建構子並傳遞System.IO.FileStream物件。 - 調用
System.IO.BinaryWriter物件Write方法,並傳遞位元組陣列。
- 建立
另請參閱