使用條碼式表單 working-with-barcoded-forms
本檔案中的範例和範例僅適用於JEE環境上的AEM Forms 。
關於條碼式Forms服務 about-the-barcoded-forms-service
條碼式表單服務可自動從填寫並列印的表單中擷取資料,並將擷取的資訊整合到組織的核心IT系統中。
使用條碼式表單服務,您可以將一維與二維條碼新增至互動式PDF forms。 然後,您可以將條碼式表單發佈至網站,或透過電子郵件或CD分發。 當使用者使用Adobe Reader、Acrobat Professional或Acrobat Standard填寫條碼表單時,條碼會自動更新以編碼使用者提供的表單資料。 使用者可以電子方式提交表單,或列印為紙張,並以郵件、傳真或手遞方式提交。 您稍後可以擷取使用者提供的資料,做為自動化工作流程的一部分,在核准程式和業務系統之間路由傳送資料。
如需條碼式表單服務的詳細資訊,請參閱 AEM Forms服務參考.
解碼條碼式表單資料 decoding-barcoded-form-data
您可以使用條碼式表單服務API,將PDF表單或包含條碼之影像中的資料解碼。 解碼表單資料表示擷取條碼中的資料。 在可從PDF表單(或影像)解碼資料之前,使用者必須先將資料填入表單。
步驟摘要 summary-of-steps
若要解碼PDF表單中的資料,請執行下列步驟:
- 包含專案檔案。
- 建立條碼式formsClient API物件。
- 取得包含條碼資料的PDF表單。
- 解碼PDF表單中的資料。
- 將資料轉換為XML資料來源。
- 處理解碼的資料。
包含專案檔案
將必要的檔案納入您的開發專案中。 如果您使用Java建立使用者端應用程式,則請包含必要的JAR檔案。 如果您使用Web服務,請務必包含Proxy檔案。
必須將下列JAR檔案新增至專案的類別路徑:
- adobe-livecycle-client.jar
- adobe-usermanager-client.jar
- adobe-barcodedforms-client.jar
- adobe-utilities.jar (如果AEM Forms部署在JBoss上,則為必要)
- jbossall-client.jar (如果AEM Forms部署在JBoss上,則為必要)
- xercesImpl.jar (位於 <install directory="">/Adobe/Adobe_Experience_Manager_forms/sdk/client-libs\thirdparty)
如果將AEM Forms部署在受支援的J2EE應用程式伺服器(不是JBOSS)上,則您必須將adobe-utilities.jar和jbossall-client.jar取代為特定於已部署AEM Forms之J2EE應用程式伺服器的JAR檔案。 如需有關所有AEM Forms JAR檔案位置的資訊,請參閱 包含AEM Forms Java程式庫檔案.
建立條碼式表單使用者端API物件
您必須先建立條碼式Forms服務使用者端,才能以程式設計方式執行條碼式表單服務作業。 如果您使用Java API,請建立 BarcodedFormsServiceClient
物件。 如果您使用條碼式表單Web服務API,請建立 BarcodedFormsServiceService
物件。
取得包含條碼資料的PDF表單
取得內含已填入使用者資料之條碼的PDF表單。
解碼PDF表單中的資料
取得包含條碼的PDF表單(或影像)後,您就可以將資料解碼。 條碼Forms服務支援下列型別的條碼:
- PDF417條碼。
- 資料矩陣條碼。
- QR碼條碼。
- 程式碼標籤條碼。
- 代碼128條碼。
- 代碼39條碼。
- ean-13條碼。
- EAN-8條碼
在解碼API中將字元集輸入設為十六進位表示,條碼的內容會編碼為十六進位字串。 例如,如果在表單中將UTF-8指定為字元編碼,並在解碼操作中指定十六進位,則條碼的內容會在<中編碼為十六進位字串 xb:content
>已解碼輸出中的element。 您可以在使用者端應用程式中建立應用程式邏輯,轉換此十六進位值以取得原始內容。
將資料轉換為XML資料來源
將表單資料解碼後,可將其轉換為XDP或XFDF資料。 例如,假設您要將資料匯入另一個表單。 若要將資料匯入XFA表單,您必須將資料轉換為XDP資料。 如需詳細資訊,請參閱 匯入表單資料.
處理解碼的資料
您可以處理轉換後的資料,以符合業務需求。 例如,解碼並轉換資料後,您可以將其儲存至檔案、儲存在企業資料庫中、填入其他表單等。 本節討論如何將轉換的資料儲存為XML檔案。
另請參閱
使用Java API將條碼式表單資料解碼 decode-barcoded-form-data-using-the-java-api
使用條碼式Forms API(Java)將表單資料解碼:
-
包含專案檔案
在您的Java專案的類別路徑中包含使用者端JAR檔案。
-
建立條碼式表單使用者端API物件
建立
BarcodedFormsServiceClient
物件,使用它的建構函式傳遞ServiceClientFactory
包含連線屬性的物件。 -
取得包含條碼資料的PDF表單
- 建立
java.io.FileInputStream
物件,使用它的建構函式,並傳遞指定PDF檔案位置的字串值,來代表包含條碼式資料的PDF表單。 - 建立
com.adobe.idp.Document
物件,使用它的建構函式並傳遞java.io.FileInputStream
物件。
- 建立
-
解碼PDF表單中的資料
透過叫用
BarcodedFormsServiceClient
物件的decode
方法並傳遞下列值:- 此
com.adobe.idp.Document
包含PDF表單的物件。 - A
java.lang.Boolean
物件,指定是否要解碼PDF417條碼。 - A
java.lang.Boolean
指定是否要解碼資料矩陣條碼的物件。 - A
java.lang.Boolean
指定是否要解碼QR碼條碼的物件。 - A
java.lang.Boolean
指定是否要解碼程式碼標籤條碼的物件。 - A
java.lang.Boolean
物件,指定是否要解碼程式碼128條碼。 - A
java.lang.Boolean
物件,指定是否要解碼程式碼39條碼。 - A
java.lang.Boolean
物件,指定是否要解碼EAN-13條碼。 - A
java.lang.Boolean
物件,指定是否要解碼EAN-8條碼。 - A
com.adobe.livecycle.barcodedforms.CharSet
列舉值,指定條碼中使用的字元集編碼值。
此
decode
方法傳回org.w3c.dom.Document
包含已解碼表單資料的物件。 - 此
-
將資料轉換為XML資料來源
透過叫用
BarcodedFormsServiceClient
物件的extractToXML
方法並傳遞下列值:- 此
org.w3c.dom.Document
包含已解碼資料的物件(請確定您使用decode
方法的傳回值)。 - A
com.adobe.livecycle.barcodedforms.Delimiter
指定行分隔字元的列舉值。 建議您指定Delimiter.Carriage_Return
. - A
com.adobe.livecycle.barcodedforms.Delimiter
指定欄位分隔字元的列舉值。 例如,指定Delimiter.Tab
. - A
com.adobe.livecycle.barcodedforms.XMLFormat
指定要將條碼資料轉換為XDP或XFDF XML資料的列舉值。 例如,指定XMLFormat.XDP
將資料轉換為XDP資料。
note note NOTE 請勿為行分隔符號和欄位分隔符號引數指定相同的值。 此
extractToXML
方法傳回java.util.List
每個元素為的物件org.w3c.dom.Document
物件。 位於表單上的每個條碼都有個別的元素。 也就是說,如果表單上有四個條碼,則傳回的元素有四個java.util.List
物件。 - 此
-
處理解碼的資料
- 逐一檢視
java.util.List
物件以取得每個org.w3c.dom.Document
清單中的物件。 - 針對清單中的每個元素,將
org.w3c.dom.Document
物件至com.adobe.idp.Document
物件。 (可轉換org.w3c.dom.Document
將物件放入com.adobe.idp.Document
物件在使用Java API範例解碼條碼式表單資料中顯示)。 - 透過呼叫
com.adobe.idp.Document
物件的copyToFile
,並傳遞代表XML檔案的File物件。
- 逐一檢視
另請參閱
快速入門(SOAP模式):使用Java API將條碼式表單資料解碼
使用網站服務API將條碼式表單資料解碼 decode-barcoded-form-data-using-the-web-service-api
使用條碼式Forms API (Web服務)將表單資料解碼:
-
包含專案檔案
- 建立使用條碼式表單服務WSDL的Microsoft .NET使用者端元件。 如需詳細資訊,請參閱 使用Base64編碼叫用AEM Forms.
- 參考Microsoft .NET使用者端元件。 如需詳細資訊,請參閱以下的「參照.NET使用者端元件」: 使用Base64編碼叫用AEM Forms.
-
建立條碼式表單使用者端API物件
使用使用條碼式表單服務WSDL的Microsoft .NET使用者端元件,建立
BarcodedFormsServiceService
物件(透過叫用其預設建構函式)。 -
取得包含條碼資料的PDF表單
- 建立
BLOB
物件(使用其建構函式)。 此BLOB
物件可用來儲存包含條碼的PDF檔案。 - 建立
System.IO.FileStream
物件,方法是叫用其建構函式,並傳遞代表PDF檔案檔案位置及開啟檔案的模式的字串值。 - 建立位元組陣列,儲存
System.IO.FileStream
物件。 您可以取得System.IO.FileStream
物件的Length
屬性。 - 透過叫用
System.IO.FileStream
物件的Read
方法,並傳遞位元組陣列、起始位置以及要讀取的資料流長度。 - 填入
BLOB
物件,透過指派其binaryData
包含位元組陣列內容的屬性。
- 建立
-
解碼PDF表單中的資料
透過叫用
BarcodedFormsServiceService
物件的decode
方法並傳遞下列值:- 此
BLOB
包含PDF表單的物件。 - A
Boolean
物件,指定是否要解碼PDF417條碼。 - A
Boolean
指定是否要解碼資料矩陣條碼的物件。 - A
Boolean
指定是否要解碼QR碼條碼的物件。 - A
Boolean
指定是否要解碼程式碼標籤條碼的物件。 - A
Boolean
物件,指定是否要解碼程式碼128條碼。 - A
Bolean
物件,指定是否要解碼程式碼39條碼。 - A
Boolean
物件,指定是否要解碼EAN-13條碼。 - A
Boolean
物件,指定是否要解碼EAN-8條碼。 - A
CharSet
列舉值,指定條碼中使用的字元集編碼值。
此
decode
方法會傳回包含已解碼表單資料的字串值。 - 此
-
將資料轉換為XML資料來源
透過叫用
BarcodedFormsServiceService
物件的extractToXML
方法並傳遞下列值:- 包含已解碼資料的字串值(務必使用
decode
方法的傳回值)。 - A
Delimiter
指定行分隔字元的列舉值。 建議您指定Delimiter.Carriage_Return
. - A
Delimiter
指定欄位分隔字元的列舉值。 例如,指定Delimiter.Tab
. - A
XMLFormat
指定要將條碼資料轉換為XDP或XFDF XML資料的列舉值。 例如,指定XMLFormat.XDP
將資料轉換為XDP資料。
note note NOTE 請勿為行分隔符號和欄位分隔符號引數指定相同的值。 此
extractToXML
方法傳回Object
陣列,其中每個元素為BLOB
執行個體。 位於表單上的每個條碼都有個別的元素。 也就是說,如果表單上有四個條碼,則傳回的元素有四個Object
陣列。 - 包含已解碼資料的字串值(務必使用
-
處理解碼的資料
- 建立
System.IO.FileStream
物件,方法是叫用其建構函式,並傳遞代表受保護PDF檔案之檔案位置的字串值。 - 建立位元組陣列,儲存
BLOB
物件,由encryptPDFUsingPassword
方法。 透過取得BLOB
物件的binaryData
資料成員。 - 建立
System.IO.BinaryWriter
物件,方法是叫用其建構函式,然後傳遞System.IO.FileStream
物件。 - 透過叫用將位元組陣列的內容寫入PDF檔案
System.IO.BinaryWriter
物件的Write
方法並傳遞位元組陣列。
- 建立
另請參閱