建立文檔輸出流

關於輸出服務

「輸出」服務可讓您將檔案輸出為PDF(包括PDF/A檔案)、PostScript、印表機控制語言(PCL),以及下列標籤格式:

  • Zebra - ZPL
  • Intermec - IPL
  • Datamax - DPL
  • TecToshiba - TPCL

使用「輸出」服務,您可以將XML表單資料與表單設計合併,並將檔案輸出至網路印表機或檔案。

有兩種方式可讓您將表單設計(XDP檔案)傳遞至輸出服務。 您可以將包含表單設計的com.adobe.idp.Document實例傳遞至Output服務。 或者,您可以傳遞指定表單設計位置的URI值。 在​使用AEM表單進行程式設計​中,會討論這兩種方式。

注意

輸出服務不支援包含應用程式物件特定指令碼的Acroform PDF檔案。 不會轉譯包含應用程式物件特定指令碼的Acroform PDF檔案。

以下各節說明如何使用URI值將表單設計傳遞至輸出服務:

以下各節說明如何在com.adobe.idp.Document實例中傳遞表單設計:

在決定要使用哪種技巧時,有一個考量是,如果您要從其他AEM Forms服務取得表單設計,然後在com.adobe.idp.Document例項中傳遞它。 將檔案傳遞至輸出服務​和​「使用片段建立PDF檔案」兩節都說明如何從其他AEM Forms服務取得表單設計。​第一個區段會從Content Services擷取表單設計(已過時)。 第二部分從Assembler服務檢索表單設計。

如果從固定位置(如檔案系統)獲取表單設計,則可以使用其中一種技術。 也就是說,可以為XDP檔案指定URI值,或使用com.adobe.idp.Document實例。

要在建立PDF文檔時傳遞指定表單設計位置的URI值,請使用generatePDFOutput方法。 同樣地,要在建立PDF文檔時將com.adobe.idp.Document實例傳遞到Output服務,請使用generatePDFOutput2方法。

將輸出流發送到網路打印機時,您也可以使用其中一種技術。 要通過傳遞包含表單設計的com.adobe.idp.Document實例將輸出流發送到打印機,請使用sendToPrinter2方法。 要通過傳遞URI值向打印機發送輸出流,請使用sendToPrinter方法。 向打印機發送打印流​部分使用sendToPrinter方法。

您可以使用輸出服務完成以下任務:

注意

如需Output服務的詳細資訊,請參閱AEM Forms的服務參考

建立PDF檔案

您可以使用「輸出」服務來建立以您提供的表單設計和XML表單資料為基礎的PDF檔案。 由輸出服務建立的PDF檔案不是互動式PDF檔案;用戶不能輸入或修改表單資料。

如果您想要建立適用於長期儲存的PDF檔案,建議您建立PDF/A檔案。 (請參閱建立PDF/A檔案)。

若要建立可讓使用者輸入資料的互動式PDF表單,請使用Forms服務。 (請參閱轉換互動式PDF表單)。

注意

如需Output服務的詳細資訊,請參閱AEM Forms的服務參考

步驟摘要

要建立PDF文檔,請執行以下步驟:

  1. 包含專案檔案。
  2. 建立輸出客戶端對象。
  3. 參考XML資料來源。
  4. 設定PDF執行時期選項。
  5. 設定演算執行時期選項。
  6. 產生PDF檔案。
  7. 檢索操作的結果。

包含專案檔案

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

必須將以下JAR檔案添加到項目的類路徑中:

  • adobe-livecycle-client.jar
  • adobe-usermanager-client.jar
  • adobe-output-client.jar
  • adobe-utilities.jar(若AEM Forms部署在JBoss上,則為必要項)
  • jbossall-client.jar(如果AEM Forms部署在JBoss上,則為必要)

如果AEM Forms部署在非JBoss的支援J2EE應用程式伺服器上,您將需要將adobe-utilities.jar和jbossall-client.jar檔案取代為JAR檔案,這些檔案是部署AEM Forms的J2EE應用程式伺服器專屬檔案。

建立輸出客戶端對象

在以寫程式方式執行輸出服務操作之前,必須建立輸出服務客戶端對象。 如果您使用Java API,請建立OutputClient物件。 如果您使用Output web service API,請建立OutputServiceService物件。

參考XML資料來源

若要將資料與表單設計合併,您必須參考包含資料的XML資料來源。 您計畫填入資料的每個表單欄位都必須有XML元素。 XML元素名稱必須與欄位名稱相符。 如果XML元素與表單欄位不對應,或XML元素名稱與欄位名稱不符,則會忽略它。 如果指定了所有XML元素,則不需要匹配XML元素的顯示順序。

請考慮以下貸款申請表示例。

cp_cp_loanformdata

要將資料合併到此表單設計中,必須建立與表單對應的XML資料源。 以下XML代表與範例抵押申請表格對應的XDP XML資料來源。

 <?xml version="1.0" encoding="UTF-8" ?>
 - <xfa:datasets xmlns:xfa="https://www.xfa.org/schema/xfa-data/1.0/">
 - <xfa:data>
 - <data>
     - <Layer>
         <closeDate>1/26/2007</closeDate>
         <lastName>Johnson</lastName>
         <firstName>Jerry</firstName>
         <mailingAddress>JJohnson@NoMailServer.com</mailingAddress>
         <city>New York</city>
         <zipCode>00501</zipCode>
         <state>NY</state>
         <dateBirth>26/08/1973</dateBirth>
         <middleInitials>D</middleInitials>
         <socialSecurityNumber>(555) 555-5555</socialSecurityNumber>
         <phoneNumber>5555550000</phoneNumber>
     </Layer>
     - <Mortgage>
         <mortgageAmount>295000.00</mortgageAmount>
         <monthlyMortgagePayment>1724.54</monthlyMortgagePayment>
         <purchasePrice>300000</purchasePrice>
         <downPayment>5000</downPayment>
         <term>25</term>
         <interestRate>5.00</interestRate>
     </Mortgage>
 </data>
 </xfa:data>
 </xfa:datasets>

設定PDF執行時期選項

在建立PDF文檔時設定檔案URI選項。 此選項指定輸出服務所生成的PDF檔案的名稱和位置。

注意

您不必設定檔案URI執行時期選項,而是可以程式設計方式從Output服務傳回的複雜資料類型擷取PDF檔案。 不過,透過設定檔案URI執行時期選項,您不需要建立以程式設計方式擷取PDF檔案的應用程式邏輯。

設定渲染運行時選項

建立PDF檔案時,您可以設定演算執行時期選項。 雖然這些選項不是必要的(與PDF執行時期選項不同),但您可以執行例如改善輸出服務的效能等工作。 例如,您可以快取輸出服務使用的表單設計,以提升其效能。

如果您使用標籤的Acrobat表單作為輸入,則無法使用Output服務Java或web service API來關閉標籤的設定。 如果您嘗試以程式設計方式將此選項設為false,則結果PDF檔案仍會加上標籤。

注意

如果您未指定演算執行時期選項,則會使用預設值。 有關渲染運行時選項的資訊,請參見RenderOptionsSpec類參考。 (請參閱AEM Forms API Reference)。

產生PDF檔案

在您參考包含表單資料的有效XML資料來源並設定執行時期選項後,就可以叫用「輸出」服務,以產生PDF檔案。

當產生PDF檔案時,您會指定「輸出」服務建立PDF檔案所需的URI值。 表單設計可儲存在伺服器檔案系統等位置,或是AEM Forms應用程式的一部分。 使用內容根URI值repository:///可以參考作為Forms應用程式一部分的表單設計(或其他資源,例如影像檔案)。 例如,請考慮以下名為​Loan.xdp​的表單設計,它位於名為​Applications/FormsApplication​的Forms應用程式中:

cp_cp_formrepository

若要存取上圖中所示的Loan.xdp檔案,請指定repository:///Applications/FormsApplication/1.0/FormsFolder/作為傳遞至OutputClient物件generatePDFOutput方法的第三個參數。 指定表單名稱(Loan.xdp)作為傳遞至OutputClient物件generatePDFOutput方法的第二個參數。

如果XDP檔案包含影像(或其他資源,例如片段),請將資源放置在與XDP檔案相同的應用程式資料夾中。 AEM Forms會使用內容根URI做為解析影像參照的基本路徑。 例如,如果Loan.xdp檔案包含影像,請確定您將影像置入Applications/FormsApplication/1.0/FormsFolder/

注意

在調用OutputClient物件的generatePDFOutputgeneratePrintedOutput方法時,您可以參考Forms應用程式URI。

注意

要查看通過引用Forms應用程式中的XDP建立PDF文檔的完整快速入門,請參閱快速入門(EJB模式):使用Java API根據應用程式XDP檔案建立PDF檔案。

檢索操作的結果

輸出服務執行操作後,它返回各種資料項,如指定操作是否成功的狀態XML資料。

另請參閱

使用Java API建立PDF檔案

使用web service API建立PDF檔案

包含AEM Forms Java程式庫檔案

設定連接屬性

Output Service API快速入門

使用Java API建立PDF檔案

使用輸出API(Java)建立PDF檔案:

  1. 包含專案檔案。

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

  2. 建立輸出客戶端對象。

    • 建立包含連接屬性的ServiceClientFactory對象。
    • 使用其建構子並傳遞ServiceClientFactory對象,建立OutputClient對象。
  3. 參考XML資料來源。

    • 建立java.io.FileInputStream對象,該對象表示XML資料源,該資料源使用其建構子並傳遞一個字串值,該字串值指定XML檔案的位置。
    • 使用其建構子建立com.adobe.idp.Document對象。 傳遞java.io.FileInputStream物件。
  4. 設定PDF執行時期選項。

    • 使用其建構子建立PDFOutputOptionsSpec對象。
    • 調用PDFOutputOptionsSpec物件的setFileURI方法,以設定「檔案URI」選項。 傳遞一個字串值,指定輸出服務所產生PDF檔案的位置。 「檔案URI」選項是相對於代管AEM Forms的J2EE應用程式伺服器,而非用戶端電腦。
  5. 設定演算執行時期選項。

    • 使用其建構子建立RenderOptionsSpec對象。
    • 快取表單設計,以叫用RenderOptionsSpec物件的setCacheEnabled並傳遞true來改善輸出服務的效能。
    注意

    如果輸入檔案是Acrobat表單(在Acrobat中建立的表單)或已簽署或認證的XFA檔案,則無法使用RenderOptionsSpec物件的setPdfVersion方法來設定PDF檔案版本。 輸出PDF檔案會保留原始PDF版本。 同樣地,如果輸入檔案是Acrobat表單或已簽署或認證的XFA檔案,您也無法叫用RenderOptionsSpec物件的setTaggedPDF方法來設定標籤的Adobe PDF選項。

    注意

    如果輸入的PDF檔案經過認證或數位簽署,則無法使用RenderOptionsSpec物件的setLinearizedPDF方法來設定線性化的PDF選項。 (請參閱數位簽署PDF檔案​。)

  6. 產生PDF檔案。

    呼叫OutputClient物件的generatePDFOutput方法並傳遞下列值,以建立PDF檔案:

    • TransformationFormat枚舉值。 若要產生PDF檔案,請指定TransformationFormat.PDF
    • 指定表單設計名稱的字串值。
    • 指定表單設計所在內容根目錄的字串值。
    • 包含PDF執行時期選項的PDFOutputOptionsSpec物件。
    • RenderOptionsSpec物件,包含轉譯執行時期選項。
    • com.adobe.idp.Document物件,包含XML資料來源,其中包含要與表單設計合併的資料。

    generatePDFOutput方法返回包含操作結果的OutputResult對象。

    注意

    當呼叫generatePDFOutput方法產生PDF檔案時,請注意,您無法將資料與已簽署或認證的XFA PDF表單合併。 (請參閱數位簽署和認證檔案​。)

    注意

    OutputResult物件的getRecordLevelMetaDataList方法傳回​null

    注意

    您也可以叫用OutputClient物件的generatePDFOutput2方法來建立PDF檔案。 (請參閱將位於Content Services中的檔案(已過時)傳遞至Output Service 。)

  7. 檢索操作的結果。

    • 通過調用OutputResult對象的getStatusDoc方法來檢索表示generatePDFOutput操作狀態的com.adobe.idp.Document對象。 此方法返回指定操作是否成功的狀態XML資料。
    • 建立包含操作結果的java.io.File對象。 請確定副檔名為。xml。
    • 叫用com.adobe.idp.Document物件的copyToFile方法,將com.adobe.idp.Document物件的內容複製至檔案(請確定您使用getStatusDoc方法傳回的com.adobe.idp.Document物件)。

    雖然「輸出」服務會將PDF檔案寫入由傳遞至PDFOutputOptionsSpec物件setFileURI方法的引數所指定的位置,但您仍可以叫用OutputResult物件的getGeneratedDoc方法,以程式設計方式擷取PDF/A檔案。

另請參閱

步驟摘要

快速啟動(EJB模式):使用Java API建立PDF檔案

快速入門(SOAP模式):使用Java API建立PDF檔案

包含AEM Forms Java程式庫檔案

設定連接屬性

使用web service API建立PDF檔案

使用輸出API(web service)建立PDF檔案:

  1. 包含專案檔案。

    建立使用MTOM的Microsoft .NET專案。 請確定您使用下列WSDL定義:http://localhost:8080/soap/services/OutputService?WSDL&lc_version=9.0.1

    注意

    localhost取代為代管AEM Forms之伺服器的IP位址。

  2. 建立輸出客戶端對象。

    • 使用其預設建構子建立OutputServiceClient對象。

    • 使用System.ServiceModel.EndpointAddress建構函式建立OutputServiceClient.Endpoint.Address物件。 將指定WSDL的字串值傳遞至AEM Forms服務(例如http://localhost:8080/soap/services/OutputService?blob=mtom)。 您不需要使用lc_version屬性。 建立服務參考時,將使用此屬性。 不過,請指定?blob=mtom以使用MTOM。

    • 獲取OutputServiceClient.Endpoint.Binding欄位的值,建立System.ServiceModel.BasicHttpBinding對象。 將返回值轉換為BasicHttpBinding

    • System.ServiceModel.BasicHttpBinding物件的MessageEncoding欄位設為WSMessageEncoding.Mtom。 此值可確保使用MTOM。

    • 執行下列工作以啟用基本HTTP驗證:

      • 將AEM表單使用者名稱指派給欄位OutputServiceClient.ClientCredentials.UserName.UserName
      • 將相應的口令值分配給欄位OutputServiceClient.ClientCredentials.UserName.Password
      • 將常數值HttpClientCredentialType.Basic分配給欄位BasicHttpBindingSecurity.Transport.ClientCredentialType
      • 將常數值BasicHttpSecurityMode.TransportCredentialOnly分配給欄位BasicHttpBindingSecurity.Security.Mode
  3. 參考XML資料來源。

    • 使用其建構子建立BLOB對象。 BLOB物件用來儲存將與PDF檔案合併的XML資料。
    • 通過調用System.IO.FileStream對象的建構子並傳遞一個字串值,該字串值表示包含表單資料的XML檔案的檔案位置。
    • 建立儲存System.IO.FileStream對象內容的位元組陣列。 您可以取得System.IO.FileStream物件的Length屬性,以判斷位元組陣列的大小。
    • 調用System.IO.FileStream物件的Read方法,並傳遞要讀取的位元組陣列、開始位置和串流長度,以串流資料填入位元組陣列。
    • 通過為MTOM對象的欄位分配位元組陣列的內容來填充BLOB對象。
  4. 設定PDF執行時期選項

    • 使用其建構子建立PDFOutputOptionsSpec對象。
    • 指定字串值來設定「檔案URI」選項,該字串值會指定「輸出」服務產生的PDF檔案在PDFOutputOptionsSpec物件的fileURI資料成員上的位置。 「檔案URI」選項是相對於代管AEM Forms的J2EE應用程式伺服器,而非用戶端電腦。
  5. 設定演算執行時期選項。

    • 使用其建構子建立RenderOptionsSpec對象。
    • 快取表單設計,將值true指派給RenderOptionsSpec物件的cacheEnabled資料成員,以改善輸出服務的效能。
    注意

    如果輸入檔案是Acrobat表單(在Acrobat中建立的表單)或已簽署或認證的XFA檔案,則無法使用RenderOptionsSpec物件的setPdfVersion方法來設定PDF檔案版本。 輸出PDF檔案會保留原始PDF版本。 同樣地,如果輸入檔案是Acrobat表單或已簽署或認證的XFA檔案,您也無法叫用RenderOptionsSpec物件的setTaggedPDF方法來設定標籤的Adobe PDF選項。

    注意

    如果輸入的PDF檔案經過認證或數位簽章,則無法使用RenderOptionsSpec物件的linearizedPDF成員來設定線性化的PDF選項。 (請參閱數位簽署PDF檔案​。)

  6. 產生PDF檔案。

    呼叫OutputServiceService物件的generatePDFOutput方法並傳遞下列值,以建立PDF檔案:

    • TransformationFormat枚舉值。 若要產生PDF檔案,請指定TransformationFormat.PDF
    • 指定表單設計名稱的字串值。
    • 指定表單設計所在內容根目錄的字串值。
    • 包含PDF執行時期選項的PDFOutputOptionsSpec物件。
    • RenderOptionsSpec物件,包含轉譯執行時期選項。
    • BLOB物件,包含XML資料來源,其中包含要與表單設計合併的資料。
    • generatePDFOutput方法填充的BLOB對象。 generatePDFOutput方法會以描述檔案的產生中繼資料填入此物件。 (此參數值僅適用於Web服務調用)。
    • generatePDFOutput方法填充的BLOB對象。 generatePDFOutput方法會以結果資料填入此物件。 (此參數值僅適用於Web服務調用)。
    • 包含操作結果的OutputResult對象。 (此參數值僅適用於Web服務調用)。
    注意

    當呼叫generatePDFOutput方法產生PDF檔案時,請注意,您無法將資料與已簽署或認證的XFA PDF表單合併。 (請參閱數位簽署和認證檔案​。)

    注意

    您也可以叫用OutputClient物件的generatePDFOutput2方法來建立PDF檔案。 (請參閱將位於Content Services中的檔案(已過時)傳遞至Output Service 。)

  7. 檢索操作的結果。

    • 通過調用System.IO.FileStream對象的建構子並傳遞一個字串值,該字串值表示包含結果資料的XML檔案位置。 請確定副檔名為。xml。
    • 建立位元組陣列,儲存由OutputServiceService物件的generatePDFOutput方法(第8個參數)填入結果資料之BLOB物件的資料內容。 取得BLOB物件的MTOM field值,以填入位元組陣列。
    • 調用System.IO.BinaryWriter對象的建構子並傳遞System.IO.FileStream對象,以建立<a0/>對象。
    • 調用System.IO.BinaryWriter物件的Write方法並傳遞位元組陣列,將位元組陣列的內容寫入XML檔案。

    另請參閱

    步驟摘要

    使用MTOM叫用AEM Forms

    使用SwaRef叫用AEM表格

    注意

    OutputServiceService物件的generateOutput方法已過時。

建立PDF/A檔案

您可以使用「輸出」服務來建立PDF/A檔案。 由於PDF/A是長期保存檔案內容的封存格式,所以所有字型都已內嵌,檔案也未壓縮。 因此,PDF/A檔案通常比標準PDF檔案大。 此外,PDF/A檔案不包含音訊和視訊內容。 如同其他「輸出」服務工作,您提供表單設計和資料,以便與表單設計合併以建立PDF/A檔案。

PDF/A-1規格包含兩個符合等級,即a和b。兩者之間的主要區別在於邏輯結構(可訪問性)支援,而邏輯結構(可訪問性)支援對於符合性級別b不是必需的。無論符合程度如何,PDF/A-1都規定所有字型都內嵌在產生的PDF/A檔案中。

雖然PDF/A是封存PDF檔案的標準,但是如果標準PDF檔案符合您公司的需求,就不必使用PDF/A進行封存。 PDF/A標準的目的,在於建立可長期儲存的PDF檔案,並符合檔案保存要求。 例如,URL無法內嵌在PDF/A中,因為URL可能會隨著時間變成無效。

您的組織必須評估自己的需求、您希望保存文檔的時間長度、檔案大小考慮因素,並確定自己的歸檔策略。 您可以使用DocConverter服務,以程式設計方式判斷PDF檔案是否符合PDF/A規範。 (請參閱程式設計決定PDF/A相容性)。

PDF/A檔案必須使用在表單設計中指定的字型,且字型無法取代。 因此,如果位於PDF檔案中的字型無法在主機作業系統(OS)上使用,則會發生例外情況。

在Acrobat中開啟PDF/A檔案時,會顯示一則訊息,確認該檔案為PDF/A檔案,如下圖所示。

cp_cp_pdfamessage

注意

AIIM網站有PDF/A常見問答區段,您可從https://www.aiim.org/documents/standards/19005-1_FAQ.pdf存取。

注意

如需Output服務的詳細資訊,請參閱AEM Forms的服務參考

步驟摘要

要建立PDF/A文檔,請執行以下步驟:

  1. 包含專案檔案。
  2. 建立輸出客戶端對象。
  3. 參考XML資料來源。
  4. 設定PDF/A執行時期選項。
  5. 設定演算執行時期選項。
  6. 產生PDF/A檔案。
  7. 檢索操作的結果。

包含專案檔案

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

必須將下列JAR檔案添加到項目的類路徑中:

  • adobe-livecycle-client.jar
  • adobe-usermanager-client.jar
  • adobe-output-client.jar
  • adobe-utilities.jar(若AEM Forms部署在JBoss上,則為必要項)
  • jbossall-client.jar(如果AEM Forms部署在JBoss上,則為必要)

如果AEM Forms部署在非JBoss的支援J2EE應用程式伺服器上,您將需要將adobe-utilities.jar和jbossall-client.jar檔案取代為JAR檔案,這些檔案是部署AEM Forms的J2EE應用程式伺服器專屬檔案。

建立輸出客戶端對象

在以寫程式方式執行輸出服務操作之前,必須建立輸出服務客戶端對象。 如果您使用Java API,請建立OutputClient物件。 如果您使用Output web service API,請建立OutputServiceService物件。

參考XML資料來源

若要將資料與表單設計合併,您必須參考包含資料的XML資料來源。 每個要填入資料的表單欄位都必須有XML元素。 XML元素名稱必須與欄位名稱相符。 如果XML元素與表單欄位不對應,或XML元素名稱與欄位名稱不符,則會忽略它。 如果指定了所有XML元素,則不需要匹配XML元素的顯示順序。

設定PDF/A執行時期選項

在建立PDF/A文檔時,可以設定「檔案URI」選項。 URI是相對於代管AEM Forms的J2EE應用程式伺服器。 也就是說,如果設定C:\Adobe,則檔案將寫入到伺服器上的資料夾,而不是客戶端電腦。 URI指定輸出服務所生成的PDF/A檔案的名稱和位置。

設定渲染運行時選項

您可以在建立PDF/A檔案時設定演算執行時期選項。 您可以設定的兩個PDF/A相關選項是PDFAConformancePDFARevisionNumber值。 PDFAConformance值是指PDF檔案如何符合指定長期電子檔案保留的要求。 此選項的有效值為AB。 有關a級和b級符合性的資訊,請參閱標題為​ISO 19005-1檔案管理​的PDF/A-1 ISO規格。

PDFARevisionNumber值是指PDF/A檔案的修訂號。 有關PDF/A文檔修訂號的資訊,請參閱標題為​ISO 19005-1文檔管理​的PDF/A-1 ISO規範。

注意

建立PDF/A 1A檔案時,無法將標籤的Adobe PDF選項設定為false。 PDF/A 1A永遠是標籤的PDF檔案。 此外,建立PDF/A 1B檔案時,您無法將標籤的Adobe PDF選項設為true。 PDF/A 1B永遠是未標籤的PDF檔案。

產生PDF/A檔案

參考包含表單資料的有效XML資料來源並設定執行時期選項後,您可以叫用「輸出」服務,使其產生PDF/A檔案。

檢索操作的結果

輸出服務執行操作後,它返回各種資料項,如指定操作是否成功的XML資料。

另請參閱

使用Java API建立PDF/A檔案

使用web service API建立PDF/A檔案

包含AEM Forms Java程式庫檔案

設定連接屬性

Output Service API快速入門

使用Java API建立PDF/A檔案

使用輸出API(Java)建立PDF/A檔案:

  1. 包含專案檔案。

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

  2. 建立輸出客戶端對象。

    • 建立包含連接屬性的ServiceClientFactory對象。
    • 使用其建構子並傳遞ServiceClientFactory對象,建立OutputClient對象。
  3. 參考XML資料來源。

    • 建立java.io.FileInputStream對象,該對象表示XML資料源,該資料源使用其建構子並傳遞指定XML檔案位置的字串值來填充PDF/A文檔。
    • 使用其建構子並傳遞java.io.FileInputStream對象,建立com.adobe.idp.Document對象。
  4. 設定PDF/A執行時期選項。

    • 使用其建構子建立PDFOutputOptionsSpec對象。
    • 調用PDFOutputOptionsSpec物件的setFileURI方法,以設定「檔案URI」選項。 傳遞一個字串值,指定輸出服務所產生PDF檔案的位置。 「檔案URI」選項是相對於代管AEM Forms的J2EE應用程式伺服器,而非用戶端電腦。
  5. 設定演算執行時期選項。

    • 使用其建構子建立RenderOptionsSpec對象。
    • 通過調用RenderOptionsSpec對象的setPDFAConformance方法並傳遞指定一致性級別的PDFAConformance枚舉值來設定PDFAConformance值。 例如,要指定符合性級別A,請傳遞PDFAConformance.A
    • 調用RenderOptionsSpec物件的setPDFARevisionNumber方法並傳遞PDFARevisionNumber.Revision_1,以設定PDFARevisionNumber值。
    注意

    PDF/A檔案的PDF版本為1.4,不論您為RenderOptionsSpec物件的​setPdfVersion方法指定哪個值。

  6. 產生PDF/A檔案。

    叫用OutputClient物件的generatePDFOutput方法並傳遞下列值,以建立PDF/A檔案:

    • TransformationFormat枚舉值。 若要產生PDF/A檔案,請指定TransformationFormat.PDFA
    • 指定表單設計名稱的字串值。
    • 指定表單設計所在內容根目錄的字串值。
    • 包含PDF執行時期選項的PDFOutputOptionsSpec物件。
    • RenderOptionsSpec物件,包含轉譯執行時期選項。
    • 包含XML資料來源的com.adobe.idp.Document物件,其中包含要與表單設計合併的資料。

    generatePDFOutput方法返回包含操作結果的OutputResult對象。

    注意

    OutputResult物件的getRecordLevelMetaDataList方法會傳回null

    注意

    您也可以叫用OutputClient物件的generatePDFOutput2方法,以建立PDF/A檔案。 (請參閱將位於Content Services中的檔案(已過時)傳遞至Output Service。)

  7. 檢索操作的結果。

    • 通過調用OutputResult對象的getStatusDoc方法,建立表示generatePDFOutput方法狀態的com.adobe.idp.Document對象。
    • 建立包含操作結果的java.io.File對象。 請確定副檔名為。xml。
    • 叫用com.adobe.idp.Document物件的copyToFile方法,將com.adobe.idp.Document物件的內容複製至檔案(請確定您使用getStatusDoc方法傳回的com.adobe.idp.Document物件)。
    注意

    雖然「輸出」服務會將PDF/A檔案寫入至傳遞至PDFOutputOptionsSpec物件setFileURI方法之引數所指定的位置,但您仍可以呼叫OutputResult物件的getGeneratedDoc方法,以程式設計方式擷取PDF/A檔案。

另請參閱

步驟摘要

快速入門(SOAP模式):使用Java API建立PDF/A檔案

包含AEM Forms Java程式庫檔案

設定連接屬性

使用web service API建立PDF/A檔案

使用輸出API(web service)建立PDF/A檔案:

  1. 包含專案檔案。

    建立使用MTOM的Microsoft .NET專案。 請確定您使用下列WSDL定義:http://localhost:8080/soap/services/OutputService?WSDL&lc_version=9.0.1

    注意

    localhost取代為代管AEM Forms之伺服器的IP位址。

  2. 建立輸出客戶端對象。

    • 使用其預設建構子建立OutputServiceClient對象。

    • 使用System.ServiceModel.EndpointAddress建構函式建立OutputServiceClient.Endpoint.Address物件。 將指定WSDL的字串值傳遞至AEM Forms服務(例如http://localhost:8080/soap/services/OutputService?blob=mtom)。 您不需要使用lc_version屬性。 建立服務參考時,將使用此屬性。 不過,請指定?blob=mtom以使用MTOM。

    • 獲取OutputServiceClient.Endpoint.Binding欄位的值,建立System.ServiceModel.BasicHttpBinding對象。 將返回值轉換為BasicHttpBinding

    • System.ServiceModel.BasicHttpBinding物件的MessageEncoding欄位設為WSMessageEncoding.Mtom。 此值可確保使用MTOM。

    • 執行下列工作以啟用基本HTTP驗證:

      • 將AEM表單使用者名稱指派給欄位OutputServiceClient.ClientCredentials.UserName.UserName
      • 將相應的口令值分配給欄位OutputServiceClient.ClientCredentials.UserName.Password
      • 將常數值HttpClientCredentialType.Basic分配給欄位BasicHttpBindingSecurity.Transport.ClientCredentialType
      • 將常數值BasicHttpSecurityMode.TransportCredentialOnly分配給欄位BasicHttpBindingSecurity.Security.Mode
  3. 參考XML資料來源。

    • 使用其建構子建立BLOB對象。 BLOB物件用來儲存將與PDF/A檔案合併的資料。
    • 通過調用其建構子並傳遞一個字串值來建立System.IO.FileStream對象,該字串值表示要加密的PDF文檔的檔案位置以及開啟檔案的模式。
    • 建立儲存System.IO.FileStream對象內容的位元組陣列。 您可以取得System.IO.FileStream物件的Length屬性,以判斷位元組陣列的大小。
    • 調用System.IO.FileStream物件的Read方法,並傳遞要讀取的位元組陣列、開始位置和串流長度,以串流資料填入位元組陣列。
    • 通過為MTOM對象的欄位分配位元組陣列內容來填充BLOB對象。
  4. 設定PDF/A執行時期選項。

    • 使用其建構子建立PDFOutputOptionsSpec對象。
    • 指定字串值來設定「檔案URI」選項,該字串值會指定「輸出」服務產生的PDF檔案在PDFOutputOptionsSpec物件的fileURI資料成員上的位置。 「檔案URI」選項是相對於代管AEM Forms的J2EE應用程式伺服器,而非用戶端電腦
  5. 設定演算執行時期選項。

    • 使用其建構子建立RenderOptionsSpec對象。
    • PDFAConformance列舉值指派給RenderOptionsSpec物件的PDFAConformance資料成員,以設定PDFAConformance值。 例如,要指定符合性級別A,請為此資料成員分配PDFAConformance.A
    • PDFARevisionNumber列舉值指派給RenderOptionsSpec物件的PDFARevisionNumber資料成員,以設定PDFARevisionNumber值。 將PDFARevisionNumber.Revision_1分配給此資料成員。
    注意

    PDF/A檔案的PDF版本為1.4,不論您指定的值為何。

  6. 產生PDF/A檔案。

    呼叫OutputServiceService物件的generatePDFOutput方法並傳遞下列值,以建立PDF檔案:

    • TransformationFormat枚舉值。 若要產生PDF檔案,請指定TransformationFormat.PDFA
    • 指定表單設計名稱的字串值。
    • 指定表單設計所在內容根目錄的字串值。
    • 包含PDF執行時期選項的PDFOutputOptionsSpec物件。
    • RenderOptionsSpec物件,包含轉譯執行時期選項。
    • BLOB物件,包含XML資料來源,其中包含要與表單設計合併的資料。
    • generatePDFOutput方法填充的BLOB對象。 generatePDFOutput方法會以描述檔案的產生中繼資料填入此物件。 (此參數值僅適用於Web服務調用。)
    • generatePDFOutput方法填充的BLOB對象。 generatePDFOutput方法會以結果資料填入此物件。 (此參數值僅適用於Web服務調用。)
    • 包含操作結果的OutputResult對象。 (此參數值僅適用於Web服務調用。)
    注意

    您也可以叫用OutputClient物件的generatePDFOutput2方法,以建立PDF/A檔案。 (請參閱將位於Content Services中的檔案(已過時)傳遞至Output Service。)

  7. 檢索操作的結果。

    • 通過調用System.IO.FileStream對象的建構子並傳遞一個字串值,該字串值表示包含結果資料的XML檔案位置。 請確定副檔名為。xml。
    • 建立位元組陣列,儲存由OutputServiceService物件的generatePDFOutput方法(第8個參數)填入結果資料之BLOB物件的資料內容。 取得BLOB物件的MTOM欄位值,以填入位元組陣列。
    • 調用System.IO.BinaryWriter對象的建構子並傳遞System.IO.FileStream對象,以建立<a0/>對象。
    • 調用System.IO.BinaryWriter物件的Write方法並傳遞位元組陣列,將位元組陣列的內容寫入XML檔案。

另請參閱

步驟摘要

使用MTOM叫用AEM Forms

使用SwaRef叫用AEM表格

將位於Content Services中的檔案(已過時)傳遞至Output Service

「輸出」服務會轉譯非互動式PDF表單,該表單以通常儲存為XDP檔案並在Designer中建立的表單設計為基礎。 您可以將包含表單設計的com.adobe.idp.Document物件傳遞至Output服務。 然後,輸出服務將呈現位於com.adobe.idp.Document對象中的表單設計。

com.adobe.idp.Document物件傳遞至Output服務的好處是,其他AEM 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物件內的Output服務。

注意

如需Forms服務的詳細資訊,請參閱AEM Forms的服務參考

步驟摘要

要將從Content Services(不建議使用)獲取的文檔傳遞到Output服務,請執行以下任務:

  1. 包含專案檔案。
  2. 建立輸出和檔案管理用戶端API物件。
  3. 從Content Services擷取表單設計(已過時)。
  4. 轉換非互動式PDF表單。
  5. 對資料流執行動作。

包含專案檔案

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

建立輸出和文檔管理客戶端API對象

在以程式設計方式執行輸出服務API操作之前,請先建立輸出用戶端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實例傳遞到Output服務。

轉換非互動式PDF表單

若要轉換非互動式表單,請將從Content Services(不建議使用)傳回的com.adobe.idp.Document例項傳遞至Output服務。

注意

名為generatePDFOutput2和g eneratePrintedOutput2的兩種新方法接受包含表單設計的com.adobe.idp.Document物件。 在將打印流發送到網路打印機時,還可以將包含表單設計的com.adobe.idp.Document傳遞到Output服務。

使用表單資料流執行動作

您可以將非互動式表單儲存為PDF檔案。 您可在Adobe Reader或Acrobat中檢視表格。

另請參閱

使用Java API將檔案傳送至輸出服務

使用web service API將檔案傳遞至Output Service

包含AEM Forms Java程式庫檔案

設定連接屬性

Output Service API快速入門

使用片段建立PDF檔案

使用Java API將檔案傳遞至輸出服務

使用輸出服務和內容服務(已過時)API(Java)傳遞從Content Services(已過時)擷取的檔案:

  1. 包含專案檔案。

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

  2. 建立「輸出」和「檔案管理用戶端API」物件。

    • 建立包含連接屬性的ServiceClientFactory對象。 (請參閱設定連接屬性。)
    • 使用其建構子並傳遞ServiceClientFactory對象,建立OutputClient對象。
    • 使用其建構子並傳遞ServiceClientFactory對象,建立DocumentManagementServiceClientImpl對象。
  3. 從Content Services擷取表單設計(已過時)。

    叫用DocumentManagementServiceClientImpl物件的retrieveContent方法並傳遞下列值:

    • 一個字串值,它指定添加內容的儲存。 預設商店為SpacesStore。 此值為必要參數。
    • 一個字串值,它指定要檢索的內容的完全限定路徑(例如/Company Home/Form Designs/Loan.xdp)。 此值為必要參數。
    • 指定版本的字串值。 此值為可選參數,您可以傳遞空字串。 在這種情況下,將檢索最新版本。

    retrieveContent方法返回包含XDP檔案的CRCResult對象。 調用CRCResult物件的getDocument方法,擷取com.adobe.idp.Document例項。

  4. 轉換非互動式PDF表單。

    叫用OutputClient物件的generatePDFOutput2方法並傳遞下列值:

    • TransformationFormat枚舉值。 若要產生PDF檔案,請指定TransformationFormat.PDF
    • 一個字串值,它指定附加資源(如影像)所在的內容根目錄。
    • 代表表單設計的com.adobe.idp.Document物件(使用CRCResult物件的getDocument方法傳回的例項)。
    • 包含PDF執行時期選項的PDFOutputOptionsSpec物件。
    • RenderOptionsSpec物件,包含轉譯執行時期選項。
    • com.adobe.idp.Document物件,包含XML資料來源,其中包含要與表單設計合併的資料。

    generatePDFOutput2方法返回包含操作結果的OutputResult對象。

  5. 對表單資料流執行動作。

    • 調用OutputResult物件的getGeneratedDoc方法,擷取代表非互動式表單的com.adobe.idp.Document物件。
    • 建立包含操作結果的java.io.File對象。 請確定副檔名為。pdf。
    • 叫用com.adobe.idp.Document物件的copyToFile方法,將com.adobe.idp.Document物件的內容複製至檔案(請確定您使用getGeneratedDoc方法傳回的com.adobe.idp.Document物件)。

另請參閱

步驟摘要

快速啟動(EJB模式):使用Java API將檔案傳送至輸出服務

快速入門(SOAP模式):使用Java API將檔案傳送至輸出服務

包含AEM Forms Java程式庫檔案

設定連接屬性

使用web service API將檔案傳遞至Output Service

使用輸出服務和內容服務(已過時)API(web service)傳遞從Content Services(已過時)檢索的文檔:

  1. 包含專案檔案。

    建立使用MTOM的Microsoft .NET專案。 由於此用戶端應用程式會叫用兩個AEM Forms服務,因此請建立兩個服務參考。 對與「輸出」服務關聯的服務引用使用以下WSDL定義:http://localhost:8080/soap/services/OutputService?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位址。

  2. 建立「輸出」和「檔案管理用戶端API」物件。

    • 使用其預設建構子建立OutputServiceClient對象。

    • 使用System.ServiceModel.EndpointAddress建構函式建立OutputServiceClient.Endpoint.Address物件。 將指定WSDL的字串值傳遞至Forms服務(例如http://localhost:8080/soap/services/OutputService?blob=mtom)。 您不需要使用lc_version屬性。 建立服務參考時,將使用此屬性。)

    • 獲取OutputServiceClient.Endpoint.Binding欄位的值,建立System.ServiceModel.BasicHttpBinding對象。 將返回值轉換為BasicHttpBinding

    • System.ServiceModel.BasicHttpBinding物件的MessageEncoding欄位設為WSMessageEncoding.Mtom。 此值可確保使用MTOM。

    • 執行下列工作以啟用基本HTTP驗證:

      • 將AEM表單使用者名稱指派給欄位OutputServiceClient.ClientCredentials.UserName.UserName
      • 將相應的口令值分配給欄位OutputServiceClient.ClientCredentials.UserName.Password
      • 將常數值HttpClientCredentialType.Basic分配給欄位BasicHttpBindingSecurity.Transport.ClientCredentialType
    • 將常數值BasicHttpSecurityMode.TransportCredentialOnly分配給欄位BasicHttpBindingSecurity.Security.Mode

    注意

    DocumentManagementServiceClient服務客戶端重複這些步驟。

  3. 從Content Services擷取表單設計(已過時)。

    叫用DocumentManagementServiceClient物件的retrieveContent方法並傳遞下列值,以擷取內容:

    • 一個字串值,它指定添加內容的儲存。 預設商店為SpacesStore。 此值為必要參數。
    • 一個字串值,它指定要檢索的內容的完全限定路徑(例如/Company Home/Form Designs/Loan.xdp)。 此值為必要參數。
    • 指定版本的字串值。 此值為可選參數,您可以傳遞空字串。 在這種情況下,將檢索最新版本。
    • 儲存瀏覽連結值的字串輸出參數。
    • 儲存內容的BLOB輸出參數。 您可以使用此輸出參數來擷取內容。
    • 儲存內容屬性的ServiceReference1.MyMapOf_xsd_string_To_xsd_anyType輸出參數。
    • CRCResult輸出參數。 您可以使用BLOB輸出參數來擷取內容,而不是使用此物件。
  4. 轉換非互動式PDF表單。

    叫用OutputServiceClient物件的generatePDFOutput2方法並傳遞下列值:

    • TransformationFormat枚舉值。 若要產生PDF檔案,請指定TransformationFormat.PDF
    • 一個字串值,它指定附加資源(如影像)所在的內容根目錄。
    • 代表表單設計的BLOB物件(使用Content Services傳回的BLOB例項(已過時))。
    • 包含PDF執行時期選項的PDFOutputOptionsSpec物件。
    • RenderOptionsSpec物件,包含轉譯執行時期選項。
    • BLOB物件,包含XML資料來源,其中包含要與表單設計合併的資料。
    • generatePDFOutput2方法填充的輸出BLOB對象。 generatePDFOutput2方法會以描述檔案的產生中繼資料填入此物件。 (此參數值僅適用於Web服務調用)。
    • 包含操作結果的輸出OutputResult對象。 (此參數值僅適用於Web服務調用)。

    generatePDFOutput2方法會傳回包含非互動式PDF表單的BLOB物件。

  5. 對表單資料流執行動作。

    • 通過調用System.IO.FileStream對象的建構子建立<a0/>對象。 傳遞一個字串值,代表互動式PDF檔案的檔案位置以及開啟檔案的模式。
    • 建立一個位元組陣列,用於儲存從generatePDFOutput2方法檢索到的BLOB對象的內容。 獲取BLOB對象MTOM資料成員的值,以填充位元組陣列。
    • 調用System.IO.BinaryWriter對象的建構子並傳遞System.IO.FileStream對象,以建立<a0/>對象。
    • 調用System.IO.BinaryWriter物件的Write方法並傳遞位元組陣列,將位元組陣列的內容寫入PDF檔案。

另請參閱

步驟摘要

使用MTOM叫用AEM Forms

將儲存庫中的文檔傳遞到輸出服務

「輸出」服務會轉譯非互動式PDF表單,該表單以通常儲存為XDP檔案並在Designer中建立的表單設計為基礎。 您可以將包含表單設計的com.adobe.idp.Document物件傳遞至Output服務。 然後,輸出服務將呈現位於com.adobe.idp.Document對象中的表單設計。

com.adobe.idp.Document物件傳遞至Output服務的好處是,其他AEM Forms服務作業會傳回com.adobe.idp.Document例項。 也就是說,您可以從其他服務操作中獲取一個com.adobe.idp.Document實例並進行渲染。 例如,假設XDP檔案儲存在AEM Forms儲存庫中,如下圖所示。

pd_pd_formrepository

FormsFolder​資料夾是AEM Forms存放庫中的使用者定義位置(此位置為範例,預設不存在)。 在此示例中,名為Loan.xdp的表單設計位於此資料夾中。 除了表單設計外,其他表單文宣(例如影像)也可以儲存在此位置。 位於AEM Forms儲存庫中的資源路徑為:

Applications/Application-name/Application-version/Folder.../Filename

您可從AEM Forms存放庫以程式設計方式擷取Loan.xdp,並將它傳送至com.adobe.idp.Document物件中的Output服務。

您可以使用兩種方式之一,根據位於儲存庫中的XDP檔案建立PDF。 您可以通過引用傳遞XDP位置,也可以通過寫程式方式從儲存庫中檢索XDP並將其傳遞到XDP檔案中的Output服務。

快速啟動(EJB模式):使用Java API根據應用程式XDP檔案建立PDF檔案 (顯示如何參考傳遞XDP檔案的位置)。

快速啟動(EJB模式):使用Java API將AEM Forms Repository中的檔案傳遞至「輸出」服務 (說明如何以程式設計方式從AEM Forms Repository擷取XDP檔案,並將它傳送至例項中的「輸出」服務 com.adobe.idp.Document )。(本節討論如何執行此任務)

注意

如需Forms服務的詳細資訊,請參閱AEM Forms的服務參考

步驟摘要

若要將從AEM Forms儲存庫取得的檔案傳遞至Output服務,請執行下列工作:

  1. 包含專案檔案。
  2. 建立輸出和檔案管理用戶端API物件。
  3. 從AEM Forms存放庫擷取表單設計。
  4. 轉換非互動式PDF表單。
  5. 對資料流執行動作。

包含專案檔案

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

建立輸出和文檔管理客戶端API對象

在以程式設計方式執行輸出服務API操作之前,請先建立輸出用戶端API物件。 此外,由於此工作流程會從Content Services擷取XDP檔案(已停用),因此請建立Document Management API物件。

從AEM Forms Repository擷取表單設計

使用Repository API從AEM Forms Repository擷取XDP檔案。 (請參閱閱讀資源。)

com.adobe.idp.Document實例(或在使用web services時為BLOB實例)中返回XDP檔案。 然後,可以將com.adobe.idp.Document實例傳遞到Output服務。

轉換非互動式PDF表單

若要轉譯非互動式表單,請傳遞使用AEM Forms Repository API傳回的com.adobe.idp.Document例項。

注意

名為generatePDFOutput2generatePrintedOutput2的兩種新方法接受包含表單設計的com.adobe.idp.Document物件。 在將打印流發送到網路打印機時,還可以將包含表單設計的com.adobe.idp.Document傳遞到Output服務。

使用表單資料流執行動作

您可以將非互動式表單儲存為PDF檔案。 您可在Adobe Reader或Acrobat中檢視表格。

另請參閱

使用Java API將儲存庫中的文檔傳遞到輸出服務

包含AEM Forms Java程式庫檔案

設定連接屬性

Output Service API快速入門

ResourceRepositoryClient

使用Java API將儲存庫中的文檔傳遞到輸出服務

使用輸出服務和儲存庫API(Java)傳遞從儲存庫檢索到的文檔:

  1. 包含專案檔案。

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

  2. 建立「輸出」和「檔案管理用戶端API」物件。

    • 建立包含連接屬性的ServiceClientFactory對象。 (請參閱設定連接屬性。)
    • 使用其建構子並傳遞ServiceClientFactory對象,建立OutputClient對象。
    • 使用其建構子並傳遞ServiceClientFactory對象,建立DocumentManagementServiceClientImpl對象。
  3. 從AEM Forms Repository擷取表單設計。

    叫用ResourceRepositoryClient物件的readResourceContent方法,並將指定URI位置的字串值傳遞至XDP檔案。 例如,/Applications/FormsApplication/1.0/FormsFolder/Loan.xdp。 此值為必填值。 此方法傳回代表XDP檔案的com.adobe.idp.Document例項。

  4. 轉換非互動式PDF表單。

    叫用OutputClient物件的generatePDFOutput2方法並傳遞下列值:

    • TransformationFormat枚舉值。 若要產生PDF檔案,請指定TransformationFormat.PDF
    • 一個字串值,它指定附加資源(如影像)所在的內容根目錄。 例如,repository:///Applications/FormsApplication/1.0/FormsFolder/
    • 代表表單設計的com.adobe.idp.Document物件(使用ResourceRepositoryClient物件的readResourceContent方法傳回的例項)。
    • 包含PDF執行時期選項的PDFOutputOptionsSpec物件。
    • RenderOptionsSpec物件,包含轉譯執行時期選項。
    • com.adobe.idp.Document物件,包含XML資料來源,其中包含要與表單設計合併的資料。

    generatePDFOutput2方法返回包含操作結果的OutputResult對象。

  5. 對表單資料流執行動作。

    • 調用OutputResult物件的getGeneratedDoc方法,擷取代表非互動式表單的com.adobe.idp.Document物件。
    • 建立包含操作結果的java.io.File對象。 請確定副檔名為。pdf。
    • 叫用com.adobe.idp.Document物件的copyToFile方法,將com.adobe.idp.Document物件的內容複製至檔案(請確定您使用getGeneratedDoc方法傳回的com.adobe.idp.Document物件)。

另請參閱

步驟摘要

快速啟動(EJB模式):使用Java API將AEM Forms Repository中的檔案傳遞至「輸出」服務

包含AEM Forms Java程式庫檔案

設定連接屬性

使用片段建立PDF檔案

您可以使用「輸出」和「匯編器」服務來建立基於片段的輸出流,如PDF文檔。 Assembler服務會根據位於多個XDP檔案中的片段來組合XDP檔案。 組合的XDP檔案會傳遞至Output服務,此服務會建立PDF檔案。 雖然此工作流程顯示正在生成的PDF文檔,但「輸出」服務可以為此工作流生成其他輸出類型,如ZPL。 PDF檔案僅用於討論用途。

下圖顯示此工作流程。

cp_cp_outputsemble片段

在閱讀「使用片段建立PDF檔案」之前,建議您熟悉使用Assembler服務來組合多份XDP檔案。(請參閱組合多個XDP片段)。

注意

您也可以將由Assembler服務組合的表單設計傳遞至Forms服務,而非Output服務。 輸出服務和表單服務的主要差異在於,表單服務會產生互動式PDF檔案,而輸出服務則會產生非互動式PDF檔案。 此外,Forms服務無法產生像ZPL這樣的印表機輸出串流。

注意

如需Output服務的詳細資訊,請參閱AEM Forms的服務參考

步驟摘要

若要根據片段建立PDF檔案,請執行下列步驟:

  1. 包含專案檔案。
  2. 建立Output和Assembler客戶端對象。
  3. 使用Assembler服務生成表單設計。
  4. 使用「輸出」服務來產生PDF檔案。
  5. 將PDF檔案儲存為PDF檔案。

包含專案檔案

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

建立輸出和匯編客戶端對象

在以程式設計方式執行輸出服務API操作之前,請先建立輸出用戶端API物件。 此外,由於此工作流調用Assembler服務來建立表單設計,因此建立Assembler Client API對象。

使用Assembler服務生成表單設計

使用Assembler服務使用片段來產生表單設計。 Assembler服務返回包含表單設計的com.adobe.idp.Document實例。

使用「輸出」服務來產生PDF檔案

您可以使用「輸出」服務,使用Assembler服務建立的表單設計生成PDF文檔。 將Assembler服務返回的com.adobe.idp.Document實例傳遞到Output服務。

將PDF檔案儲存為PDF檔案

在「輸出」服務產生PDF檔案後,您可將它儲存為PDF檔案。

另請參閱

使用Java API根據片段建立PDF檔案

使用web service API,根據片段建立PDF檔案

包含AEM Forms Java程式庫檔案

設定連接屬性

Output Service API快速入門

組合多個XDP片段

建立PDF檔案

使用Java API根據片段建立PDF檔案

使用Output Service API和Assembler Service API(Java),根據片段建立PDF檔案:

  1. 包含專案檔案。

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

  2. 建立Output和Assembler客戶端對象。

    • 建立包含連接屬性的ServiceClientFactory對象。
    • 使用其建構子並傳遞ServiceClientFactory對象,建立OutputClient對象。
    • 使用其建構子並傳遞ServiceClientFactory對象,建立AssemblerServiceClient對象。
  3. 使用Assembler服務生成表單設計。

    叫用AssemblerServiceClient物件的invokeDDX方法並傳遞下列必要值:

    • com.adobe.idp.Document物件,代表要使用的DDX檔案。
    • 包含輸入XDP檔案的java.util.Map對象。
    • 一個com.adobe.livecycle.assembler.client.AssemblerOptionSpec對象,它指定運行時選項,包括預設字型和作業日誌級別。

    invokeDDX方法返回包含已裝配的XDP文檔的com.adobe.livecycle.assembler.client.AssemblerResult對象。 要檢索已裝配的XDP文檔,請執行以下操作:

    • 叫用AssemblerResult物件的getDocuments方法。 此方法返回java.util.Map對象。
    • 重複java.util.Map物件,直到找到結果com.adobe.idp.Document物件。
    • 叫用com.adobe.idp.Document物件的copyToFile方法,擷取已組合的XDP檔案。
  4. 使用「輸出」服務來產生PDF檔案。

    叫用OutputClient物件的generatePDFOutput2方法並傳遞下列值:

    • TransformationFormat枚舉值。 若要產生PDF檔案,請指定TransformationFormat.PDF
    • 一個字串值,它指定附加資源(如影像)所在的內容根目錄
    • 代表表單設計的com.adobe.idp.Document對象(使用Assembler服務返回的實例)
    • 包含PDF執行時期選項的PDFOutputOptionsSpec物件
    • 包含演算執行時期選項的RenderOptionsSpec物件
    • 包含XML資料來源的com.adobe.idp.Document物件,其中包含要與表單設計合併的資料

    generatePDFOutput2方法返回包含操作結果的OutputResult對象

  5. 將PDF檔案儲存為PDF檔案。

    • 叫用OutputResult物件的getGeneratedDoc方法,擷取代表PDF檔案的com.adobe.idp.Document物件。
    • 建立包含操作結果的java.io.File對象。 請確定副檔名為。pdf。
    • 調用com.adobe.idp.Document物件的copyToFile方法,將com.adobe.idp.Document物件的內容複製至檔案。 (請確定您使用getGeneratedDoc方法傳回的com.adobe.idp.Document物件。)

另請參閱

步驟摘要

快速啟動(EJB模式):使用Java API根據片段建立PDF檔案

快速入門(SOAP模式):使用Java API根據片段建立PDF檔案

包含AEM Forms Java程式庫檔案

設定連接屬性

使用web service API根據片段建立PDF檔案

使用Output Service API和Assembler Service API(web service),以片段為基礎建立PDF檔案:

  1. 包含專案檔案。

    建立使用MTOM的Microsoft .NET專案。 對與「輸出」服務關聯的服務引用使用以下WSDL定義:

     http://localhost:8080/soap/services/OutputService?WSDL&lc_version=9.0.1.
    

    對與Assembler服務關聯的服務引用使用以下WSDL定義:

     http://localhost:8080/soap/services/AssemblerService?WSDL&lc_version=9.0.1.
    

    由於BLOB資料類型對於兩個服務引用都很常見,因此使用BLOB資料類型時可完全限定<a1/>資料類型。 在相應的Web服務快速啟動中,所有BLOB實例都完全限定。

    注意

    localhost取代為代管AEM Forms之伺服器的IP位址。

  2. 建立Output和Assembler客戶端對象。

    • 使用其預設建構子建立OutputServiceClient對象。

    • 使用System.ServiceModel.EndpointAddress建構函式建立OutputServiceClient.Endpoint.Address物件。 將指定WSDL的字串值傳遞至AEM Forms服務(例如http://localhost:8080/soap/services/OutputService?blob=mtom)。 您不需要使用lc_version屬性。 建立服務參考時,將使用此屬性。 不過,請指定?blob=mtom以使用MTOM。

    • 獲取OutputServiceClient.Endpoint.Binding欄位的值,建立System.ServiceModel.BasicHttpBinding對象。 將返回值轉換為BasicHttpBinding

    • System.ServiceModel.BasicHttpBinding物件的MessageEncoding欄位設為WSMessageEncoding.Mtom。 此值可確保使用MTOM。

    • 執行下列工作以啟用基本HTTP驗證:

      • 將AEM表單使用者名稱指派至OutputServiceClient.ClientCredentials.UserName.UserName欄位。
      • OutputServiceClient.ClientCredentials.UserName.Password欄位分配相應的口令值。
      • 將常數值HttpClientCredentialType.Basic分配給BasicHttpBindingSecurity.Transport.ClientCredentialType欄位。
    • BasicHttpSecurityMode.TransportCredentialOnly常數值指派給BasicHttpBindingSecurity.Security.Mode欄位。

    注意

    AssemblerServiceClient對象重複這些步驟。

  3. 使用Assembler服務生成表單設計。

    叫用AssemblerServiceClient物件的invokeDDX方法並傳遞下列值:

    • 代表DDX文檔的BLOB對象
    • 包含所需檔案的MyMapOf_xsd_string_To_xsd_anyType對象
    • 指定運行時選項的AssemblerOptionSpec對象

    invokeDDX方法返回一個AssemblerResult對象,該對象包含作業的結果和發生的任何例外。 要獲取新建立的XDP文檔,請執行以下操作:

    • 存取AssemblerResult物件的documents欄位,此欄位是Map物件,包含產生的PDF檔案。
    • 重複Map物件,以擷取已組合的表單設計。 將該陣列成員的value轉換為BLOB。 將此BLOB實例傳遞到Output服務。
  4. 使用「輸出」服務來產生PDF檔案。

    叫用OutputServiceClient物件的generatePDFOutput2方法並傳遞下列值:

    • TransformationFormat枚舉值。 若要產生PDF檔案,請指定TransformationFormat.PDF
    • 一個字串值,它指定附加資源(如影像)所在的內容根目錄。
    • 代表表單設計的BLOB對象(使用Assembler服務返回的BLOB實例)。
    • 包含PDF執行時期選項的PDFOutputOptionsSpec物件。
    • RenderOptionsSpec物件,包含轉譯執行時期選項。
    • BLOB物件,包含XML資料來源,其中包含要與表單設計合併的資料。
    • generatePDFOutput2方法所填充的輸出BLOB對象。 generatePDFOutput2方法會以描述檔案的產生中繼資料填入此物件。 (此參數值僅適用於Web服務調用)。
    • 包含操作結果的輸出OutputResult對象。 (此參數值僅適用於Web服務調用)。

    generatePDFOutput2方法會傳回包含非互動式PDF表單的BLOB物件。

  5. 將PDF檔案儲存為PDF檔案。

    • 通過調用System.IO.FileStream對象的建構子建立<a0/>對象。 傳遞一個字串值,代表互動式PDF檔案的檔案位置以及開啟檔案的模式。
    • 建立一個位元組陣列,用於儲存從generatePDFOutput2方法檢索到的BLOB對象的內容。 獲取BLOB對象MTOM資料成員的值,以填充位元組陣列。
    • 調用System.IO.BinaryWriter對象的建構子並傳遞System.IO.FileStream對象,以建立<a0/>對象。
    • 調用System.IO.BinaryWriter物件的Write方法並傳遞位元組陣列,將位元組陣列的內容寫入PDF檔案。

另請參閱

步驟摘要

使用MTOM叫用AEM Forms

打印到檔案

您可以使用「輸出」服務將PostScript、打印機控制語言(PCL)或以下標籤格式等流打印到檔案:

  • Zebra - ZPL
  • Intermec - IPL
  • Datamax - DPL
  • TecToshiba - TPCL

使用「輸出」服務,您可以將XML資料與表單設計合併,並將表單列印至檔案。 下圖顯示了建立雷射和標籤檔案的輸出服務。

注意

有關向打印機發送打印流的資訊,請參閱向打印機發送打印流

注意

如需Output服務的詳細資訊,請參閱AEM Forms的服務參考

步驟摘要

要打印到檔案,請執行以下步驟:

  1. 包含專案檔案。
  2. 建立輸出客戶端對象。
  3. 參考XML資料來源。
  4. 設定列印至檔案所需的列印執行時間選項。
  5. 將列印串流列印至檔案。
  6. 檢索操作的結果。

包含專案檔案

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

必須將下列JAR檔案添加到項目的類路徑中:

  • adobe-livecycle-client.jar
  • adobe-usermanager-client.jar
  • adobe-output-client.jar
  • adobe-utilities.jar(若AEM Forms部署在JBoss上,則為必要項)
  • jbossall-client.jar(如果AEM Forms部署在JBoss上,則為必要)

如果AEM Forms部署在非JBoss的支援J2EE應用程式伺服器上,您將需要將adobe-utilities.jar和jbossall-client.jar檔案取代為JAR檔案,這些檔案是部署AEM Forms的J2EE應用程式伺服器專屬檔案。 (請參閱包含AEM Forms Java程式庫檔案)。

建立輸出客戶端對象

在以寫程式方式執行輸出服務操作之前,必須建立輸出服務客戶端對象。 如果您使用Java API,請建立OutputClient物件。 如果您使用Output web service API,請建立OutputServiceService物件。

參考XML資料來源

要打印包含資料的文檔,您必須為要填入資料的每個表單欄位引用包含XML元素的XML資料源。 XML元素名稱必須與欄位名稱相符。 如果XML元素與表單欄位不對應,或XML元素名稱與欄位名稱不符,則會忽略它。 如果指定了所有XML元素,則不需要匹配XML元素的顯示順序。

將打印所需的打印運行時選項設定為檔案

要打印到檔案,必須通過指定輸出服務打印到的檔案的位置和名稱來設定檔案URI運行時選項。 例如,若要指示「輸出」服務將名為​MortgageForm.ps​的PostScript檔案列印為C:\Adobe,請指定C:\Adobe\MortgageForm.ps。

注意

您可以定義選用的執行時期選項。 如需您可設定之所有選項的詳細資訊,請參閱AEM Forms API Reference中的PrintedOutputOptionsSpec類別參考。

將列印串流列印至檔案

在參考包含表單資料的有效XML資料來源並設定列印執行時期選項後,您就可以叫用「輸出」服務,讓它列印檔案。

檢索操作的結果

在Output服務執行操作後,它會返回各種資料項,如XML資料,以指定操作是否成功。

另請參閱

使用Java API列印至檔案

使用web service API列印至檔案

包含AEM Forms Java程式庫檔案

設定連接屬性

Output Service API快速入門

使用輸出API(Java)列印至檔案:

  1. 包含專案檔案。

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

  2. 建立輸出客戶端對象。

    • 建立包含連接屬性的ServiceClientFactory對象。
    • 使用其建構子並傳遞ServiceClientFactory對象,建立OutputClient對象。
  3. 參考XML資料來源。

    • 建立java.io.FileInputStream對象,該對象表示XML資料源,該資料源使用其建構子並傳遞指定XML檔案位置的字串值來填充文檔。
    • 使用其建構子並傳遞java.io.FileInputStream對象,建立com.adobe.idp.Document對象。
  4. 設定列印至檔案所需的列印執行時間選項。

    • 使用其建構子建立PrintedOutputOptionsSpec對象。
    • 調用PrintedOutputOptionsSpec對象的setFileURI方法並傳遞代表檔案名稱和位置的字串值,以指定檔案。 例如,如果您想要將「輸出」服務列印為位於C:\Adobe的名為MortgageForm.ps的PostScript檔案,請指定C:\Adobe\MortgageForm.ps。
    • 調用PrintedOutputOptionsSpec物件的setCopies方法並傳遞代表份數的整數值,以指定要列印的份數。
  5. 將列印串流列印至檔案。

    調用OutputClient物件的generatePrintedOutput方法並傳遞下列值,以列印至檔案:

    • PrintFormat列舉值,指定要建立的列印串流格式。 例如,若要建立PostScript列印串流,請傳遞PrintFormat.PostScript
    • 指定表單設計名稱的字串值。
    • 一個字串值,它指定相關輔助檔案(如影像檔案)的位置。
    • 一個字串值,它指定要使用的XDC檔案的位置(如果指定了要使用PrintedOutputOptionsSpec對象的XDC檔案,則可以傳遞null)。
    • PrintedOutputOptionsSpec物件,包含列印至檔案所需的執行時期選項。
    • 包含表單資料的XML資料源的com.adobe.idp.Document對象。

    generatePrintedOutput方法返回包含操作結果的OutputResult對象。

    注意

    OutputResult物件的getRecordLevelMetaDataList方法會傳回null

  6. 檢索操作的結果。

    • 通過調用OutputResult對象的getStatusDoc方法(generatePrintedOutput方法返回OutputResult對象),建立表示generatePrintedOutput方法狀態的com.adobe.idp.Document對象。
    • 建立包含操作結果的java.io.File對象。 請確定副檔名為XML。
    • 叫用com.adobe.idp.Document物件的copyToFile方法,將com.adobe.idp.Document物件的內容複製至檔案(請確定您使用getStatusDoc方法傳回的com.adobe.idp.Document物件)。

另請參閱

步驟摘要

快速入門(SOAP模式):使用Java API列印至檔案

包含AEM Forms Java程式庫檔案

設定連接屬性

使用輸出API(web service)列印至檔案:

  1. 包含專案檔案。

    建立使用MTOM的Microsoft .NET專案。 請確定您使用下列WSDL定義:http://localhost:8080/soap/services/OutputService?WSDL&lc_version=9.0.1

    注意

    localhost取代為代管AEM Forms之伺服器的IP位址。

  2. 建立輸出客戶端對象。

    • 使用其預設建構子建立OutputServiceClient對象。

    • 使用System.ServiceModel.EndpointAddress建構函式建立OutputServiceClient.Endpoint.Address物件。 將指定WSDL的字串值傳遞至AEM Forms服務(例如http://localhost:8080/soap/services/OutputService?blob=mtom)。 您不需要使用lc_version屬性。 建立服務參考時,將使用此屬性。 不過,請指定?blob=mtom以使用MTOM。

    • 獲取OutputServiceClient.Endpoint.Binding欄位的值,建立System.ServiceModel.BasicHttpBinding對象。 將返回值轉換為BasicHttpBinding

    • System.ServiceModel.BasicHttpBinding物件的MessageEncoding欄位設為WSMessageEncoding.Mtom。 此值可確保使用MTOM。

    • 執行下列工作以啟用基本HTTP驗證:

      • 將AEM表單使用者名稱指派給欄位OutputServiceClient.ClientCredentials.UserName.UserName
      • 將相應的口令值分配給欄位OutputServiceClient.ClientCredentials.UserName.Password
      • 將常數值HttpClientCredentialType.Basic分配給欄位BasicHttpBindingSecurity.Transport.ClientCredentialType
      • 將常數值BasicHttpSecurityMode.TransportCredentialOnly分配給欄位BasicHttpBindingSecurity.Security.Mode
  3. 參考XML資料來源。

    • 使用其建構子建立BLOB對象。 BLOB物件用來儲存表單資料。
    • 通過調用System.IO.FileStream對象的建構子並傳遞一個字串值,該字串值指定包含表單資料的XML檔案的位置。
    • 建立儲存System.IO.FileStream對象內容的位元組陣列。 您可以取得System.IO.FileStream物件的Length屬性,以判斷位元組陣列的大小。
    • 調用System.IO.FileStream物件的Read方法,並傳遞要讀取的位元組陣列、開始位置和串流長度,以串流資料填入位元組陣列。
    • 通過為binaryData對象的<a1/>屬性指定位元組陣列的內容來填充BLOB對象。
  4. 設定列印至檔案所需的列印執行時間選項。

    • 使用其建構子建立PrintedOutputOptionsSpec對象。
    • 指定檔案的方式為:將代表檔案位置和名稱的字串值指派給PrintedOutputOptionsSpec物件的fileURI資料成員。 例如,如果您希望輸出服務列印至位於C:\Adobe的名為​MortgageForm.ps​的PostScript檔案,請指定C:\Adobe\MortgageForm.ps。
    • 通過為PrintedOutputOptionsSpec對象的copies資料成員指定表示副本數的整數值,指定要打印的副本數。
  5. 將列印串流列印至檔案。

    調用OutputServiceService物件的generatePrintedOutput方法並傳遞下列值,以列印至檔案:

    • PrintFormat列舉值,指定要建立的列印串流格式。 例如,若要建立PostScript列印串流,請傳遞PrintFormat.PostScript
    • 指定表單設計名稱的字串值。
    • 一個字串值,它指定相關輔助檔案(如影像檔案)的位置。
    • 一個字串值,它指定要使用的XDC檔案的位置(如果指定了要使用PrintedOutputOptionsSpec對象的XDC檔案,則可以傳遞null)。
    • PrintedOutputOptionsSpec物件,包含列印至檔案所需的列印執行時間選項。
    • 包含表單資料的XML資料源的BLOB對象。
    • generatePDFOutput方法填充的BLOB對象。 generatePDFOutput方法會以描述檔案的產生中繼資料填入此物件。 (此參數值僅適用於Web服務調用。)
    • generatePDFOutput方法填充的BLOB對象。 generatePDFOutput方法會以結果資料填入此物件。 (此參數值僅適用於Web服務調用。)
    • 包含操作結果的OutputResult對象。 (此參數值僅適用於Web服務調用。)
  6. 檢索操作的結果。

    • 通過調用System.IO.FileStream對象的建構子並傳遞一個字串值,該字串值表示包含結果資料的XML檔案位置。 請確定副檔名為XML。
    • 建立位元組陣列,儲存由OutputServiceService物件的generatePDFOutput方法(第8個參數)填入結果資料之BLOB物件的資料內容。 獲取BLOB對象MTOM資料成員的值,以填充位元組陣列。
    • 調用System.IO.BinaryWriter對象的建構子並傳遞System.IO.FileStream對象,以建立<a0/>對象。
    • 調用System.IO.BinaryWriter物件的Write方法並傳遞位元組陣列,將位元組陣列的內容寫入XML檔案。

另請參閱

步驟摘要

使用MTOM叫用AEM Forms

使用SwaRef叫用AEM表格

向打印機發送打印流

您可以使用「輸出」服務將打印流(如PostScript、打印機控制語言(PCL)或以下標籤格式)發送到網路打印機:

  • Zebra - ZPL
  • Intermec - IPL
  • Datamax - DPL
  • TecToshiba - TPCL

使用「輸出」服務,您可以將XML資料與表單設計合併,並將表單輸出為列印串流。 例如,您可以建立PostScript列印串流,並將它傳送至網路印表機。 下圖顯示Output服務將打印流發送到網路打印機。

注意

為了演示如何向網路打印機發送打印流,本節使用SharedPrinter打印機協定向網路打印機發送PostScript打印流。

注意

如需Output服務的詳細資訊,請參閱AEM Forms的服務參考

步驟摘要

要向網路打印機發送打印流,請執行以下步驟:

  1. 包含專案檔案。
  2. 建立輸出客戶端對象。
  3. 參考XML資料來源。
  4. 設定列印執行時期選項
  5. 擷取要列印的檔案。
  6. 將文檔發送到網路打印機。

包含專案檔案

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

必須將下列JAR檔案添加到項目的類路徑中:

  • adobe-livecycle-client.jar
  • adobe-usermanager-client.jar
  • adobe-output-client.jar
  • adobe-utilities.jar(若AEM Forms部署在JBoss上,則為必要項)
  • jbossall-client.jar(如果AEM Forms部署在JBoss上,則為必要)

如果AEM Forms部署在非JBoss的支援J2EE應用程式伺服器上,您將需要將adobe-utilities.jar和jbossall-client.jar檔案取代為JAR檔案,這些檔案是部署AEM Forms的J2EE應用程式伺服器專屬檔案。

建立輸出客戶端對象

在以寫程式方式執行輸出服務操作之前,請建立輸出服務客戶端對象。 如果您使用Java API,請建立OutputClient物件。 如果您使用Output web service API,請建立OutputServiceClient物件。

參考XML資料來源

要打印包含資料的文檔,您必須為要填入資料的每個表單欄位引用包含XML元素的XML資料源。 XML元素名稱必須與欄位名稱相符。 如果XML元素與表單欄位不對應,或XML元素名稱與欄位名稱不符,則會忽略它。 如果指定了所有XML元素,則不需要匹配XML元素的顯示順序。

設定列印執行時期選項

將打印流發送到打印機時,可以設定運行時選項,包括以下選項:

  • 副本:指定要發送到打印機的副本數。預設值為1。
  • 訂書:當使用訂書機時,設定XCI選項。此選項可在配置模型中由Staple元素指定,僅用於PS和PCL打印機。
  • OutputJog:當輸出頁面應進行慢動作(在輸出托盤中實際移動)時,會設定XCI選項。此選項僅適用於PS和PCL打印機。
  • OutputBin:用於使打印驅動程式選擇適當輸出站的XCI值。
注意

有關可設定的所有運行時選項的資訊,請參見PrintedOutputOptionsSpec類參考。

擷取要列印的檔案

擷取要傳送至印表機的列印串流。 例如,您可以擷取PostScript檔案並將它傳送至印表機。

如果您的印表機支援PDF,您可以選擇傳送PDF檔案。 但是,將PDF檔案傳送至印表機的問題是,每家印表機製造商都有不同的PDF解譯器實作。 也就是說,有些印刷廠商會使用Adobe PDF轉譯,但是這要視印表機而定。 其他印表機則有其專屬的PDF解譯器。 因此,列印結果可能會有所不同。

傳送PDF檔案至印表機的另一個限制是,它只會列印;它無法訪問雙面打印器、紙盒選擇和裝訂,除非通過打印機上的設定。

要檢索要打印的文檔,請使用generatePrintedOutput方法。 下表指定使用generatePrintedOutput方法時為指定打印流設定的內容類型。

列印格式

說明

DPL

依預設建立dpl203.xdc或自訂xdc輸出串流。

DPL 300 DPI

建立DPL 300 DPI輸出串流。

DPL 406 DPI

建立DPL 400 DPI輸出串流。

DPL 600 DPI

建立DPL 600 DPI輸出串流。

GenericColorPCL

建立通用顏色PCL(5c)輸出流。

GenericPSLevel3

建立一般PostScript Level 3輸出串流。

IPL

建立自訂IPL輸出串流。

IPL 300 DPI

建立IPL 300 DPI輸出串流。

IPL 400 DPI

建立IPL 400 DPI輸出串流。

PCL

建立通用單色PCL(5e)輸出流。

PostScript

建立一般PostScript Level 2輸出串流。

TPCL

建立自定義TPCL輸出流。

TPCL 305 DPI

建立TPCL 305 DPI輸出流。

TPCL 600 DPI

建立TPCL 600 DPI輸出流。

ZPL

建立ZPL 203 DPI輸出流。

ZPL 300 DPI

建立ZPL 300 DPI輸出流。

注意

您也可以使用generatePrintedOutput2方法,將打印流發送到打印機。 但是,與「向打印機發送打印流」部分關聯的快速啟動使用generatePrintedOutput方法。

將打印流發送到網路打印機

擷取要列印的檔案後,您可以叫用「輸出」服務,以便傳送列印串流至網路印表機。 要使「輸出」服務成功找到打印機,必須同時指定打印伺服器和打印機名稱。 此外,您還必須指定打印協定。

注意

如果PDFG已安裝在forms伺服器上,且伺服器在Windows Server 2008上執行,則無法使用SharedPrinter屬性。 在這種情況下,請使用不同的打印機協定。

注意

如果您使用網路打印機,並且訪問機制是SharedPrinter,則需要指定打印機的完整網路路徑。使用Java API將打印流發送到網路打印機

使用輸出API(Java)將打印流發送到網路打印機:

  1. 包含專案檔案。

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

  2. 建立輸出客戶端對象

    • 建立包含連接屬性的ServiceClientFactory對象。
    • 使用其建構子並傳遞ServiceClientFactory對象,建立OutputClient對象。
  3. 參考XML資料來源

    • 建立java.io.FileInputStream對象,該對象表示XML資料源,該資料源使用其建構子並傳遞指定XML檔案位置的字串值來填充文檔。
    • 使用其建構子並傳遞java.io.FileInputStream對象,建立com.adobe.idp.Document對象。
  4. 設定列印執行時期選項

    建立PrintedOutputOptionsSpec對象,該對象表示打印運行時選項。 例如,您可以叫用PrintedOutputOptionsSpec物件的setCopies方法,以指定要列印的份數。

    注意

    如果您要產生ZPL列印串流,則無法使用PrintedOutputOptionsSpec物件的setPagination方法來設定分頁值。 同樣地,您無法為ZPL打印流設定以下選項:OutputJog、PageOffset和Stapler。 setPagination方法對於PostScript產生無效。 它僅適用於PCL生成。

  5. 擷取要列印的檔案

    • 調用OutputClient物件的generatePrintedOutput方法並傳遞下列值,以擷取要列印的檔案:

      • 指定打印流的PrintFormat枚舉值。 例如,若要建立PostScript列印串流,請傳遞PrintFormat.PostScript
      • 指定表單設計名稱的字串值。
      • 一個字串值,它指定相關輔助檔案(如影像檔案)的位置。
      • 一個字串值,它指定要使用的XDC檔案的位置。
      • PrintedOutputOptionsSpec物件,包含列印至檔案所需的執行時期選項。
      • com.adobe.idp.Document物件,代表包含表單資料的XML資料來源,以便與表單設計合併。

      此方法返回包含操作結果的OutputResult對象。

    • 通過調用OutputResult對象「s getGeneratedDoc」方法建立要發送到打印機的com.adobe.idp.Document對象。 此方法返回com.adobe.idp.Document對象。

  6. 將打印流發送到網路打印機

    調用OutputClient物件的sendToPrinter方法並傳遞下列值,將列印串流傳送至網路印表機:

    • com.adobe.idp.Document物件,代表要傳送至印表機的列印串流。
    • PrinterProtocol枚舉值,它指定要使用的打印機協定。 例如,要指定SharedPrinter協定,請傳遞PrinterProtocol.SharedPrinter
    • 指定打印伺服器名稱的字串值。 例如,假設打印伺服器的名稱為PrintSever1,則傳遞\\\PrintSever1
    • 指定打印機名稱的字串值。 例如,假設打印機的名稱為Printer1,則傳遞\\\PrintSever1\Printer1
    注意

    sendToPrinter方法已新增至8.2.1版的AEM Forms API。

使用web service API將打印流發送到打印機

使用Output API(web service)將打印流發送到網路打印機:

  1. 包含專案檔案。

    建立使用MTOM的Microsoft .NET專案。 請確定您使用下列WSDL定義:http://localhost:8080/soap/services/OutputService?WSDL&lc_version=9.0.1

    注意

    localhost取代為代管AEM Forms之伺服器的IP位址。

  2. 建立輸出客戶端對象。

    • 使用其預設建構子建立OutputServiceClient對象。

    • 使用System.ServiceModel.EndpointAddress建構函式建立OutputServiceClient.Endpoint.Address物件。 將指定WSDL的字串值傳遞至AEM Forms服務(例如http://localhost:8080/soap/services/OutputService?blob=mtom)。 您不需要使用lc_version屬性。 建立服務參考時,將使用此屬性。 不過,請指定?blob=mtom以使用MTOM。

    • 獲取OutputServiceClient.Endpoint.Binding欄位的值,建立System.ServiceModel.BasicHttpBinding對象。 將返回值轉換為BasicHttpBinding

    • System.ServiceModel.BasicHttpBinding物件的MessageEncoding欄位設為WSMessageEncoding.Mtom。 此值可確保使用MTOM。

    • 執行下列工作以啟用基本HTTP驗證:

      • 將AEM表單使用者名稱指派給欄位OutputServiceClient.ClientCredentials.UserName.UserName
      • 將相應的口令值分配給欄位OutputServiceClient.ClientCredentials.UserName.Password
      • 將常數值HttpClientCredentialType.Basic分配給欄位BasicHttpBindingSecurity.Transport.ClientCredentialType
      • 將常數值BasicHttpSecurityMode.TransportCredentialOnly分配給欄位BasicHttpBindingSecurity.Security.Mode
  3. 參考XML資料來源。

    • 使用其建構子建立BLOB對象。 BLOB物件用來儲存表單資料。
    • 通過調用System.IO.FileStream對象的建構子建立<a0/>對象。 傳遞指定包含表單資料之XML檔案位置的字串值。
    • 建立儲存System.IO.FileStream對象內容的位元組陣列。 取得System.IO.FileStream物件的Length屬性,以判斷位元組陣列長度。
    • 調用System.IO.FileStream物件的Read方法,並傳遞要讀取的位元組陣列、開始位置和串流長度,以串流資料填入位元組陣列。
    • 通過為MTOM對象的欄位分配位元組陣列的內容來填充BLOB對象。
  4. 設定列印執行時期選項。

    使用其建構子建立PrintedOutputOptionsSpec對象。 例如,您可以指定要列印的份數,方法是指派一個整數值,代表PrintedOutputOptionsSpec物件的copies資料成員的份數。

    注意

    如果您要產生ZPL列印串流,則無法使用PrintedOutputOptionsSpec物件的pagination資料成員來設定分頁值。 同樣地,您無法為ZPL打印流設定以下選項:OutputJog、PageOffset和Stapler。 pagination資料成員對於PostScript產生無效。 它僅適用於PCL生成。

  5. 擷取要列印的檔案。

    • 調用OutputServiceService物件的generatePrintedOutput方法並傳遞下列值,以擷取要列印的檔案:

      • 指定打印流的PrintFormat枚舉值。 例如,若要建立PostScript列印串流,請傳遞PrintFormat.PostScript
      • 指定表單設計名稱的字串值。
      • 一個字串值,它指定相關輔助檔案(如影像檔案)的位置。
      • 一個字串值,它指定要使用的XDC檔案的位置。
      • PrintedOutputOptionsSpec對象包含在向網路打印機發送打印流時使用的打印運行時選項。
      • 包含表單資料的XML資料源的BLOB對象。
      • generatePrintedOutput方法填充的BLOB對象。 generatePrintedOutput方法會以描述檔案的產生中繼資料填入此物件。 (此參數值僅適用於Web服務調用。)
      • generatePrintedOutput方法填充的BLOB對象。 generatePrintedOutput方法會以結果資料填入此物件。 (此參數值僅適用於Web服務調用。)
      • 包含操作結果的OutputResult對象。 (此參數值僅適用於Web服務調用。)
    • 通過獲取OutputResult對象「s generatedDoc」方法的值,建立要發送到打印機的BLOB對象。 此方法傳回包含generatePrintedOutput方法傳回之PostScript資料的BLOB物件。

  6. 將打印流發送到網路打印機。

    調用OutputClient物件的sendToPrinter方法並傳遞下列值,將列印串流傳送至網路印表機:

    • BLOB物件,代表要傳送至印表機的列印串流。
    • PrinterProtocol枚舉值,它指定要使用的打印機協定。 例如,要指定SharedPrinter協定,請傳遞PrinterProtocol.SharedPrinter
    • 一個bool值,它指定是否使用前一個參數值。 傳遞值true。 (此參數值僅適用於Web服務調用。)
    • 指定打印伺服器名稱的字串值。 例如,假設打印伺服器的名稱為PrintSever1,請傳遞\\\PrintSever1
    • 指定打印機名稱的字串值。 例如,假設打印機的名稱為Printer1,請傳遞\\\PrintSever1\Printer1
    注意

    sendToPrinter方法已新增至8.2.1版的AEM Forms API。

建立多個輸出檔案

Output服務可以為XML資料源中的每個記錄或包含所有記錄的單個檔案(預設功能為此功能)建立單獨的文檔。 例如,假設有10個記錄位於XML資料來源中,您會指示「輸出」服務使用「輸出服務API」為每個記錄建立個別的PDF檔案(或其他輸出類型)。 因此,輸出服務會產生十份PDF檔案。 (您可以傳送多個列印串流至印表機,而不是建立檔案。)

下圖還顯示了處理包含多個記錄的XML資料檔案的輸出服務。 不過,假設您指示「輸出」服務建立包含所有資料記錄的單一PDF檔案。 在這種情況下,輸出服務將生成一個包含所有記錄的文檔。

下圖顯示Output服務處理包含多個記錄的XML資料檔案。 假設您指示輸出服務為每個資料記錄建立個別的PDF檔案。 在這種情況下,「輸出」服務會為每個資料記錄產生個別的PDF檔案。

cm_outputbatchmany

以下XML資料顯示包含三個資料記錄的資料檔案範例。

 <?xml version="1.0" encoding="UTF-8"?>
 <batch>
 <LoanRecord>
     <mortgageAmount>500000</mortgageAmount>
     <lastName>Blue</lastName>
     <firstName>Tony</firstName>
     <SSN>555666777</SSN>
     <PositionTitle>Product Manager</PositionTitle>
     <Address>555 No Where Dr</Address>
     <City>New York</City>
     <StateProv>New York</StateProv>
     <ZipCode>51256</ZipCode>
     <Email>TBlue@NoMailServer.com</Email>
     <PhoneNum>555-7418</PhoneNum>
     <FaxNum>555-9981</FaxNum>
     <Description>Buy a home</Description>
 </LoanRecord>
 <LoanRecord>
     <mortgageAmount>300000</mortgageAmount>
     <lastName>White</lastName>
     <firstName>Sam</firstName>
     <SSN>555666222</SSN>
     <PositionTitle>Program Manager</PositionTitle>
     <Address>557 No Where Dr</Address>
     <City>New York</City>
     <StateProv>New York</StateProv>
     <ZipCode>51256</ZipCode>
     <Email>SWhite@NoMailServer.com</Email>
     <PhoneNum>555-7445</PhoneNum>
     <FaxNum>555-9986</FaxNum>
     <Description>Buy a home</Description>
 </LoanRecord>
 <LoanRecord>
     <mortgageAmount>700000</mortgageAmount>
     <lastName>Green</lastName>
     <firstName>Steve</firstName>
     <SSN>55566688</SSN>
     <PositionTitle>Project Manager</PositionTitle>
     <Address>445 No Where Dr</Address>
     <City>New York</City>
     <StateProv>New York</StateProv>
     <ZipCode>51256</ZipCode>
     <Email>SGreeb@NoMailServer.com</Email>
     <PhoneNum>555-2211</PhoneNum>
     <FaxNum>555-2221</FaxNum>
     <Description>Buy a home</Description>
 </LoanRecord>
 </batch>

請注意,啟動和結束每個資料記錄的XML元素為LoanRecord。 此XML元素由產生多個檔案的應用程式邏輯參考。

注意

如需Output服務的詳細資訊,請參閱AEM Forms的服務參考

步驟摘要

若要根據XML資料來源建立多個PDF檔案,請執行下列步驟:

  1. 包含專案檔案。
  2. 建立輸出客戶端對象。
  3. 參考XML資料來源。
  4. 設定PDF執行時期選項。
  5. 設定演算執行時期選項。
  6. 產生多個PDF檔案。
  7. 檢索操作的結果。

包含專案檔案

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

必須將下列JAR檔案添加到項目的類路徑中:

  • adobe-livecycle-client.jar
  • adobe-usermanager-client.jar
  • adobe-output-client.jar
  • adobe-utilities.jar(若AEM Forms部署在JBoss上,則為必要項)
  • jbossall-client.jar(如果AEM Forms部署在JBoss上,則為必要)

如果AEM Forms部署在非JBoss的支援J2EE應用程式伺服器上,您將需要將adobe-utilities.jar和jbossall-client.jar檔案取代為JAR檔案,這些檔案是部署AEM Forms的J2EE應用程式伺服器專屬檔案。

建立輸出客戶端對象

在以寫程式方式執行輸出服務操作之前,必須建立輸出服務客戶端對象。 如果您使用Java API,請建立OutputClient物件。 如果您使用Output web service API,請建立OutputServiceService物件。

參考XML資料來源

參考包含多個記錄的XML資料來源。 必須使用XML元素來分隔資料記錄。 例如,在本節稍早顯示的範例XML資料來源中,分隔資料記錄的XML元素名為LoanRecord

每個要填入資料的表單欄位都必須有XML元素。 XML元素名稱必須與欄位名稱相符。 如果XML元素與表單欄位不對應,或XML元素名稱與欄位名稱不符,則會忽略它。 如果指定了所有XML元素,則不需要匹配XML元素的顯示順序。

設定PDF執行時期選項

您必須為Output服務設定以下運行時選項,才能基於XML資料源成功建立多個檔案:

  • 許多檔案:指定輸出服務是建立單個文檔還是建立多個文檔。您可以指定true或false。 要為XML資料源中的每個資料記錄建立單獨的文檔,請指定true。
  • 檔案URI:指定輸出服務生成的檔案的位置。例如,假設您指定C:\Adobe\forms\Loan.pdf。 在這種情況下,輸出服務會建立名為Loan.pdf的檔案,並將檔案放在C:\Adobe\forms folder檔案夾中。 當有多個檔案時,檔案名稱為Loan0001.pdf、Loan0002.pdf、Loan0003.pdf等。 如果您指定檔案位置,則檔案會放在伺服器上,而非用戶端電腦上。
  • 記錄名稱:指定資料源中用於分隔資料記錄的XML元素名稱。例如,在本節稍早顯示的範例XML資料來源中,分隔資料記錄的XML元素稱為LoanRecord。 (您可以為記錄級別指定數值,以指示包含資料記錄的元素級別,而不是設定「記錄名稱」運行時選項。 不過,您只能設定「記錄名稱」或「記錄層級」。 您不能同時設定這兩個值。)

設定渲染運行時選項

您可以在建立多個檔案時,設定轉譯執行時期選項。 雖然這些選項不是必需的(與輸出運行時選項不同,這些選項是必需的),但您可以執行諸如提高輸出服務的效能之類的任務。 例如,您可以快取Output服務使用的表單設計,以提升效能。

當輸出服務處理批處理記錄時,它以增量方式讀取包含多個記錄的資料。 即,輸出服務將資料讀取到記憶體中,並在處理記錄批時釋放資料。 當設定兩個執行時期選項中的一個時,「輸出」服務會以遞增方式載入資料。 如果設定「記錄名稱」運行時選項,則「輸出」服務以增量方式讀取資料。 同樣地,如果將「記錄級別」運行時間選項設定為2或更大,則「輸出」服務以增量方式讀取資料。

您可以使用PDFOutputOptionsSpecPrintedOutputOptionSpec物件的setLazyLoading方法來控制輸出服務是否執行遞增載入。 您可以將值false傳遞至此方法,以關閉遞增載入。

產生多個PDF檔案

在參考包含多個資料記錄並設定執行時期選項的有效XML資料來源後,您就可以叫用「輸出」服務,以產生多個檔案。 當產生多個記錄時,OutputResult物件的getGeneratedDoc方法會傳回null

檢索操作的結果

輸出服務執行操作後,它返回指定操作是否成功的XML資料。 輸出服務會傳回下列XML。 在這種情況下,輸出服務生成了42個文檔。

 <?xml version="1.0" encoding="UTF-8"?>
 <printResult>
 <status>0</status>
 <requestId>4ad85f9e2</requestId>
 <context/>
 <messages>
 <message>Printed all 42 records successfully.</message>
 </messages>
 <printSpec>
 <input>
 <validated>true</validated>
 <dataFile recordIdField="" recordLevel="0" recordName="LoanRecord"/>
 <sniffRules lookAhead="300"/>
 <formDesign>Loan.xdp</formDesign>
 <contentRoot>C:\Adobe</contentRoot>
 <metadata-spec record="false"/>
 </input>
 <output>
 <format>PDF</format>
 <fileURI>C:\Adobe\forms\Loan.pdf</fileURI>
 <optionString>cacheenabled=true&padebug=false&linearpdf=false&pdfarevisionnumber=1&pdfaconformance=A&taggedpdf=false&TransactionTimeOut=180</optionString>
 <waitForResponse>true</waitForResponse>
 <outputStream>multiple</outputStream>
 </output>
 </printSpec>
 </printResult>

另請參閱

包含AEM Forms Java程式庫檔案

設定連接屬性

Output Service API快速入門

使用Java API建立多個PDF檔案

使用輸出API(Java)建立多個PDF檔案:

  1. 包含專案檔案」

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

  2. 建立輸出客戶端對象

    • 建立包含連接屬性的ServiceClientFactory對象。
    • 使用其建構子並傳遞ServiceClientFactory對象,建立OutputClient對象。
  3. 參考XML資料來源

    • 使用java.io.FileInputStream物件的建構函式並傳遞指定XML檔案位置的字串值,以建立代表包含多個記錄之XML資料來源的<a0/>物件。
    • 使用其建構子並傳遞java.io.FileInputStream對象,建立com.adobe.idp.Document對象。
  4. 設定PDF執行時期選項

    • 使用其建構子建立PDFOutputOptionsSpec對象。
    • 調用PDFOutputOptionsSpec物件的setGenerateManyFiles方法,以設定「多個檔案」選項。 例如,請傳遞值true,以指示Output服務為XML資料來源中的每個記錄建立個別的PDF檔案。 (如果您通過false,輸出服務將生成包含所有記錄的單個PDF文檔)。
    • 調用PDFOutputOptionsSpec物件的setFileUri方法並傳遞字串值,指定輸出服務所產生檔案的位置,以設定檔案URI選項。 「檔案URI」選項是相對於代管AEM Forms的J2EE應用程式伺服器,而非用戶端電腦。
    • 調用OutputOptionsSpec物件的setRecordName方法,並傳遞字串值,指定分隔資料記錄的資料來源中的XML元素名稱,以設定「記錄名稱」選項。 (例如,請考慮本節稍早說明的XML資料來源。 分隔資料記錄的XML元素名稱為LoanRecord)。
  5. 設定渲染運行時選項

    • 使用其建構子建立RenderOptionsSpec對象。
    • 快取表單設計,以調用RenderOptionsSpec物件的setCacheEnabled並傳遞trueBoolean值,以改善輸出服務的效能。
  6. 產生多個PDF檔案

    叫用OutputClient物件的generatePDFOutput方法並傳遞下列值,以產生多個PDF檔案:

    • TransformationFormat列舉值。 若要產生PDF檔案,請指定TransformationFormat.PDF
    • 指定表單設計名稱的字串值。
    • 指定表單設計所在內容根目錄的字串值。
    • 包含PDF執行時期選項的PDFOutputOptionsSpec物件。
    • RenderOptionsSpec物件,包含轉譯執行時期選項。
    • com.adobe.idp.Document物件,包含XML資料來源,其中包含要與表單設計合併的資料。

    generatePDFOutput方法返回包含操作結果的OutputResult對象。

  7. 檢索操作的結果

    • 建立java.io.File對象,該對象表示將包含generatePDFOutput方法結果的XML檔案。 請確定副檔名為。xml。
    • 叫用com.adobe.idp.Document物件的copyToFile方法,將com.adobe.idp.Document物件的內容複製至檔案(請確定您使用applyUsageRights方法傳回的com.adobe.idp.Document物件)。

另請參閱

步驟摘要

快速啟動(EJB模式):使用Java API建立多個PDF檔案

包含AEM Forms Java程式庫檔案

設定連接屬性

使用web service API建立多個PDF檔案

使用輸出API(web service)建立多個PDF檔案:

  1. 包含專案檔案。

    建立使用MTOM的Microsoft .NET專案。 請確定您使用下列WSDL定義:http://localhost:8080/soap/services/OutputService?WSDL&lc_version=9.0.1

    注意

    localhost取代為代管AEM Forms之伺服器的IP位址。

  2. 建立輸出客戶端對象。

    • 使用其預設建構子建立OutputServiceClient對象。

    • 使用System.ServiceModel.EndpointAddress建構函式建立OutputServiceClient.Endpoint.Address物件。 將指定WSDL的字串值傳遞至AEM Forms服務(例如http://localhost:8080/soap/services/OutputService?blob=mtom)。 您不需要使用lc_version屬性。 建立服務參考時,將使用此屬性。 不過,請指定?blob=mtom以使用MTOM。

    • 獲取OutputServiceClient.Endpoint.Binding欄位的值,建立System.ServiceModel.BasicHttpBinding對象。 將返回值轉換為BasicHttpBinding

    • System.ServiceModel.BasicHttpBinding物件的MessageEncoding欄位設為WSMessageEncoding.Mtom。 此值可確保使用MTOM。

    • 執行下列工作以啟用基本HTTP驗證:

      • 將AEM表單使用者名稱指派給欄位OutputServiceClient.ClientCredentials.UserName.UserName
      • 將相應的口令值分配給欄位OutputServiceClient.ClientCredentials.UserName.Password
      • 將常數值HttpClientCredentialType.Basic分配給欄位BasicHttpBindingSecurity.Transport.ClientCredentialType
      • 將常數值BasicHttpSecurityMode.TransportCredentialOnly分配給欄位BasicHttpBindingSecurity.Security.Mode
  3. 參考XML資料來源。

    • 使用其建構子建立BLOB對象。 BLOB物件用來儲存包含多個記錄的表單資料。
    • 通過調用System.IO.FileStream對象的建構子建立<a0/>對象。 傳遞一個字串值,該值代表包含多個記錄之XML檔案的檔案位置。
    • 建立儲存System.IO.FileStream對象內容的位元組陣列。 您可以取得System.IO.FileStream物件的Length屬性,以判斷位元組陣列的大小。
    • 調用System.IO.FileStream物件的Read方法,並傳遞要讀取的位元組陣列、開始位置和串流長度,以串流資料填入位元組陣列。
    • 通過為MTOM對象的欄位分配位元組陣列的內容來填充BLOB對象。
  4. 設定PDF執行時期選項。

    • 使用其建構子建立PDFOutputOptionsSpec對象。
    • OutputOptionsSpec物件的generateManyFiles資料成員指派布林值,以設定「多個檔案」選項。 例如,將true值指派給此資料成員,以指示「輸出」服務為XML資料來源中的每項記錄建立個別的PDF檔案。 (如果您指派false給此資料成員,則輸出服務會產生包含所有記錄的單一PDF)。
    • 通過為OutputOptionsSpec對象的fileURI資料成員指定指定輸出服務生成的檔案位置的字串值來設定檔案URI選項。 「檔案URI」選項是相對於代管AEM Forms的J2EE應用程式伺服器,而非用戶端電腦。
    • 通過為資料源中指定XML元素名稱的字串值(該字串值將資料記錄分隔到OutputOptionsSpec對象的recordName資料成員)來設定記錄名稱選項。
    • 通過為OutputOptionsSpec對象的copies資料成員分配一個整數值,該整數值指定輸出服務生成的副本數。
  5. 設定演算執行時期選項。

    • 使用其建構子建立RenderOptionsSpec對象。
    • 快取表單設計,將值true指派給RenderOptionsSpec物件的cacheEnabled資料成員,以改善輸出服務的效能。
  6. 產生多個PDF檔案。

    叫用OutputServiceService物件的generatePDFOutput方法並傳遞下列值,以建立多個PDF檔案:

    • TransformationFormat枚舉值。 若要產生PDF檔案,請指定TransformationFormat.PDF
    • 指定表單設計名稱的字串值。
    • 指定表單設計所在內容根目錄的字串值。
    • 包含PDF執行時期選項的PDFOutputOptionsSpec物件。
    • RenderOptionsSpec物件,包含轉譯執行時期選項。
    • BLOB物件,包含XML資料來源,其中包含要與表單設計合併的資料。
    • generatePDFOutput方法填充的BLOB對象。 generatePDFOutput方法會以描述檔案的產生中繼資料填入此物件。
    • generatePDFOutput方法填充的BLOB對象。 generatePDFOutput方法會以結果資料填入此物件。
    • 包含操作結果的OutputResult對象。
  7. 檢索操作的結果

    • 通過調用System.IO.FileStream對象的建構子並傳遞一個字串值,該字串值表示包含結果資料的XML檔案位置。 請確定副檔名為。xml。
    • 建立位元組陣列,儲存由OutputServiceService物件的generatePDFOutput方法(第8個參數)填入結果資料之BLOB物件的資料內容。 獲取BLOB對象binaryData資料成員的值,以填充位元組陣列。
    • 調用System.IO.BinaryWriter對象的建構子並傳遞System.IO.FileStream對象,以建立<a0/>對象。
    • 調用System.IO.BinaryWriter物件的Write方法並傳遞位元組陣列,將位元組陣列的內容寫入XML檔案。

另請參閱

步驟摘要

使用MTOM叫用AEM Forms

使用SwaRef叫用AEM表格

建立搜索規則

您可以建立搜尋規則,讓「輸出」服務檢查輸入資料,並根據資料內容使用不同的表單設計來產生輸出。 例如,如果文字​mortgage​位於輸入資料中,則輸出服務可以使用名為Mortgage.xdp的表單設計。 同樣地,如果文本​automobile​位於輸入資料中,則輸出服務可以使用保存為AutomobileLoan.xdp的表單設計。 雖然Output服務可以生成不同的輸出類型,但本節假定Output服務生成PDF檔案。 下圖顯示「輸出」服務,它可處理XML資料檔案並使用許多表格設計之一來產生PDF檔案。

此外,輸出服務還能產生檔案封裝,其中在資料集中提供多個記錄,且每個記錄都與表單設計相符,而單一檔案則由多個表單設計組成。

cs_outputbatchmanyformdesigns2

注意

如需Output服務的詳細資訊,請參閱AEM Forms的服務參考

步驟摘要

要指示輸出服務在生成文檔時使用搜索規則,請執行以下步驟:

  1. 包含專案檔案。
  2. 建立輸出客戶端對象。
  3. 參考XML資料來源。
  4. 定義搜尋規則。
  5. 設定PDF執行時期選項。
  6. 設定演算執行時期選項。
  7. 產生PDF檔案。
  8. 檢索操作的結果。

包含專案檔案

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

必須將以下JAR檔案添加到項目的類路徑中:

  • adobe-livecycle-client.jar
  • adobe-usermanager-client.jar
  • adobe-output-client.jar
  • adobe-utilities.jar(若AEM Forms部署在JBoss上,則為必要項)
  • jbossall-client.jar(如果AEM Forms部署在JBoss上,則為必要)

如果AEM Forms部署在非JBoss的受支援J2EE應用程式伺服器上,則您將需要以JAR檔案取代adobe-utilities.jar和jbossall-client.jar,這些檔案是部署AEM Forms的J2EE應用程式伺服器專用的。

建立輸出客戶端對象

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

參考XML資料來源

每個要填入資料的表單欄位都必須有XML元素。 XML元素名稱必須與欄位名稱相符。 如果XML元素與表單欄位不對應,或XML元素名稱與欄位名稱不符,則會忽略它。 只要指定了所有XML元素,就不需要與XML元素的顯示順序匹配。

定義搜尋規則

要定義搜索規則,您可以定義「輸出」服務在輸入資料中搜索的一個或多個文本模式。 對於您定義的每個文本模式,您指定在文本模式所在時使用的相應表單設計。 如果找到文字模式,則輸出服務會使用對應的表單設計來產生輸出。 文本模式的示例是​mortgage

注意

如果未找到文字圖樣,則會使用預設表格。 請確定您使用的所有表單設計都位於內容根目錄中。

設定PDF執行時期選項

設定下列PDF執行時期選項,讓「輸出」服務能夠根據多種表單設計成功建立PDF檔案:

  • 檔案URI:指定輸出服務所生成的PDF檔案的名稱和位置。
  • 規則:指定您定義的規則。
  • LookAHead:指定從輸入資料檔案開始掃描定義的文本模式時要使用的位元組數。預設值為500位元組。

設定渲染運行時選項

您可以在建立PDF檔案時設定演算執行時期選項。 雖然這些選項不是必要的(與PDF執行時期選項不同),但您可以執行例如改善輸出服務的效能等工作。 例如,您可以快取Output服務使用的表單設計,以提升效能。

產生PDF檔案

參考有效的XML資料來源並設定執行時期選項後,您可以叫用「輸出」服務,以產生PDF檔案。 如果Output服務在輸入資料中找到指定的文本模式,則使用相應的表單設計。 如果未使用文字模式,則輸出服務會使用預設的表單設計。

檢索操作的結果

輸出服務執行操作後,它返回指定操作是否成功的XML資料。

另請參閱

包含AEM Forms Java程式庫檔案

設定連接屬性

Output Service API快速入門

使用Java API建立搜尋規則

使用輸出API(Java)建立搜尋規則:

  1. 包含專案檔案。

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

  2. 建立輸出客戶端對象。

    • 建立包含連接屬性的ServiceClientFactory對象。
    • 使用其建構子並傳遞ServiceClientFactory對象,建立OutputClient對象。
  3. 參考XML資料來源。

    • 建立java.io.FileInputStream對象,該對象表示XML資料源,該資料源使用其建構子並傳遞一個字串值,該字串值指定XML檔案的位置。
    • 使用其建構子並傳遞java.io.FileInputStream對象,建立com.adobe.idp.Document對象。
  4. 定義搜尋規則。

    • 使用其建構子建立Rule對象。
    • 調用Rule物件的setPattern方法並傳遞指定文字模式的字串值,以定義文字模式。
    • 調用Rule物件的setForm方法,以定義對應的表單設計。 傳遞指定表單設計名稱的字串值。
    注意

    對於要定義的每個文本模式,重複前三個子步驟。

    • 使用java.util.ArrayList建構函式建立java.util.List物件。
    • 對於您建立的每個Rule對象,調用java.util.List對象的add方法並傳遞Rule對象。
  5. 設定PDF執行時期選項。

    • 使用其建構子建立PDFOutputOptionsSpec對象。
    • 指定輸出服務透過叫用PDFOutputOptionsSpec物件的setFileURI方法所產生的PDF檔案名稱和位置。 傳遞指定PDF檔案位置的字串值。 「檔案URI」選項是相對於代管AEM Forms的J2EE應用程式伺服器,而非用戶端電腦。
    • 設定您透過叫用PDFOutputOptionsSpec物件的setRules方法所定義的規則。 傳遞包含Rule物件的java.util.List物件。
    • 調用PDFOutputOptionsSpec物件的setLookAhead方法,設定要掃描已定義文字模式的位元組數。 傳遞一個整數值,代表位元組數。
  6. 設定演算執行時期選項。

    • 使用其建構子建立RenderOptionsSpec對象。
    • 快取表單設計,以調用RenderOptionsSpec物件的setCacheEnabled並傳遞true,以改善輸出服務的效能。
  7. 產生PDF檔案。

    調用OutputClient物件的generatePDFOutput方法並傳遞下列值,以產生以多種表單設計為基礎的PDF檔案:

    • TransformationFormat枚舉值。 若要產生PDF檔案,請指定TransformationFormat.PDF
    • 指定預設表單設計名稱的字串值。 也就是說,在未找到文字圖樣時使用的表格設計。
    • 一個字串值,它指定表單設計所在的內容根目錄。
    • 包含PDF執行時期選項的PDFOutputOptionsSpec物件。
    • RenderOptionsSpec物件,包含轉譯執行時期選項。
    • com.adobe.idp.Document物件,包含Output服務在定義的文字模式中搜尋的表單資料。

    generatePDFOutput方法返回包含操作結果的OutputResult對象。

  8. 檢索操作的結果。

    • 通過調用OutputResult對象的getStatusDoc方法,建立表示generatePDFOutput方法狀態的com.adobe.idp.Document對象。
    • 建立包含操作結果的java.io.File對象。 請確定副檔名為。xml。
    • 叫用com.adobe.idp.Document物件的copyToFile方法,將com.adobe.idp.Document物件的內容複製至檔案(請確定您使用getStatusDoc方法傳回的com.adobe.idp.Document物件)。

另請參閱

步驟摘要

快速啟動(EJB模式):使用Java API建立搜尋規則

快速入門(SOAP模式):使用Java API建立搜尋規則

包含AEM Forms Java程式庫檔案

設定連接屬性

使用web service API建立搜尋規則

使用輸出API(web service)建立搜尋規則:

  1. 包含專案檔案。

    建立使用MTOM的Microsoft .NET專案。 請確定您使用下列WSDL定義:http://localhost:8080/soap/services/OutputService?WSDL&lc_version=9.0.1

    注意

    localhost取代為代管AEM Forms之伺服器的IP位址。

  2. 建立輸出客戶端對象。

    • 使用其預設建構子建立OutputServiceClient對象。

    • 使用System.ServiceModel.EndpointAddress建構函式建立OutputServiceClient.Endpoint.Address物件。 將指定WSDL的字串值傳遞至AEM Forms服務(例如http://localhost:8080/soap/services/OutputService?blob=mtom)。 您不需要使用lc_version屬性。 建立服務參考時,將使用此屬性。 不過,請指定?blob=mtom以使用MTOM。

    • 獲取OutputServiceClient.Endpoint.Binding欄位的值,建立System.ServiceModel.BasicHttpBinding對象。 將返回值轉換為BasicHttpBinding

    • System.ServiceModel.BasicHttpBinding物件的MessageEncoding欄位設為WSMessageEncoding.Mtom。 此值可確保使用MTOM。

    • 執行下列工作以啟用基本HTTP驗證:

      • 將AEM表單使用者名稱指派給欄位OutputServiceClient.ClientCredentials.UserName.UserName
      • 將相應的口令值分配給欄位OutputServiceClient.ClientCredentials.UserName.Password
      • 將常數值HttpClientCredentialType.Basic分配給欄位BasicHttpBindingSecurity.Transport.ClientCredentialType
      • 將常數值BasicHttpSecurityMode.TransportCredentialOnly分配給欄位BasicHttpBindingSecurity.Security.Mode
  3. 參考XML資料來源。

    • 使用其建構子建立BLOB對象。 BLOB物件用來儲存將與PDF檔案合併的資料。
    • 通過調用其建構子並傳遞一個字串值來建立System.IO.FileStream對象,該字串值表示要加密的PDF文檔的檔案位置以及開啟檔案的模式。
    • 建立儲存System.IO.FileStream對象內容的位元組陣列。 您可以取得System.IO.FileStream物件的Length屬性,以判斷位元組陣列的大小。
    • 調用System.IO.FileStream物件的Read方法,並傳遞要讀取的位元組陣列、開始位置和串流長度,以串流資料填入位元組陣列。
    • 通過為MTOM對象的欄位分配位元組陣列的內容來填充BLOB對象。
  4. 定義搜尋規則。

    • 使用其建構子建立Rule對象。
    • 通過為Rule對象的pattern資料成員指定指定文本模式的字串值來定義文本模式。
    • Rule物件的form資料成員指派指定表單設計的字串值,以定義對應的表單設計。
    注意

    對於要定義的每個文本模式,重複前三個子步驟。

    • 建立儲存規則的MyArrayOf_xsd_anyType物件。
    • 將每個Rule對象分配給MyArrayOf_xsd_anyType陣列的元素。 為每個Rule對象調用MyArrayOf_xsd_anyType對象的Add方法。
  5. 設定PDF執行時期選項

    • 使用其建構子建立PDFOutputOptionsSpec對象。
    • 指定字串值來設定檔案URI選項,該字串值會指定輸出服務所產生的PDF檔案在PDFOutputOptionsSpec物件的fileURI資料成員上的位置。 「檔案URI」選項是相對於代管AEM Forms的J2EE應用程式伺服器,而非用戶端電腦。
    • 通過為PDFOutputOptionsSpec對象的copies資料成員分配一個整數值,該整數值指定輸出服務生成的副本數。
    • 將儲存規則的MyArrayOf_xsd_anyType對象分配給PDFOutputOptionsSpec對象的rules資料成員,以設定您定義的規則。
    • 通過為PDFOutputOptionsSpec對象的lookAhead資料方法指定表示要掃描的位元組數的整數值,設定要掃描已定義文本模式的位元組數。
  6. 設定渲染運行時選項

    • 使用其建構子建立RenderOptionsSpec對象。
    • 將值true指派給RenderOptionsSpec物件的cacheEnabled資料成員,以快取表單設計,以改善輸出服務的效能。
    注意

    如果輸入檔案是Acrobat表單,則無法使用RenderOptionsSpec物件的pdfVersion成員來設定PDF檔案版本。 輸出PDF檔案會保留PDF版本的Acrobat表單。 同樣地,如果輸入檔案是Acrobat表單,則無法使用RenderOptionsSpec物件的taggedPDF方法來設定標籤的PDF選項。

    注意

    如果輸入的PDF檔案經過認證或數位簽章,則無法使用RenderOptionsSpec物件的linearizedPDF成員來設定線性化的PDF選項。 如需詳細資訊,請參閱數位簽署PDF檔案

  7. 產生PDF檔案

    呼叫OutputServiceService物件的generatePDFOutput方法並傳遞下列值,以建立PDF檔案:

    • TransformationFormat枚舉值。 若要產生PDF檔案,請指定TransformationFormat.PDF
    • 指定表單設計名稱的字串值。
    • 指定表單設計所在內容根目錄的字串值。
    • 包含PDF執行時期選項的PDFOutputOptionsSpec物件。
    • RenderOptionsSpec物件,包含轉譯執行時期選項。
    • BLOB物件,包含XML資料來源,其中包含要與表單設計合併的資料。
    • generatePDFOutput方法填充的BLOB對象。 generatePDFOutput方法會以描述檔案的產生中繼資料填入此物件。 (此參數值僅適用於Web服務調用)。
    • generatePDFOutput方法填充的BLOB對象。 generatePDFOutput方法會以結果資料填入此物件。 (此參數值僅適用於Web服務調用)。
    • 包含操作結果的OutputResult對象。 (此參數值僅適用於Web服務調用)。
    注意

    當透過叫用generatePDFOutput方法產生PDF檔案時,請注意,您無法將資料與已簽署、認證或包含使用權限的XFA PDF表單合併。 如需使用權的詳細資訊,請參閱將使用權套用至PDF檔案

  8. 檢索操作的結果

    • 通過調用System.IO.FileStream對象的建構子並傳遞一個字串值,該字串值表示包含結果資料的XML檔案位置。 請確定副檔名為XML。
    • 建立位元組陣列,儲存由OutputServiceService物件的generatePDFOutput方法(第8個參數)填入結果資料之BLOB物件的資料內容。 獲取BLOB對象MTOM資料成員的值,以填充位元組陣列。
    • 調用System.IO.BinaryWriter對象的建構子並傳遞System.IO.FileStream對象,以建立<a0/>對象。
    • 調用System.IO.BinaryWriter物件的Write方法並傳遞位元組陣列,將位元組陣列的內容寫入XML檔案。

另請參閱

步驟摘要

使用MTOM叫用AEM Forms

使用SwaRef叫用AEM表格

平面化PDF檔案

您可以使用「輸出」服務,將互動式PDF檔案轉換為非互動式PDF。 互動式PDF檔案可讓使用者輸入或修改PDF檔案欄位中的資料。 將互動式PDF檔案轉換為非互動式PDF檔案的程式稱為​平面化。 當PDF檔案平面化時,使用者無法修改檔案欄位中的資料。 平面化PDF檔案的一個原因是為了確保資料無法修改。

您可以平面化下列類型的PDF檔案:

  • 互動式XFA PDF檔案
  • Acrobat Forms

嘗試平面化非互動式PDF檔案的PDF會造成例外。

注意

如需Output服務的詳細資訊,請參閱AEM Forms的服務參考

步驟摘要

若要將互動式PDF檔案平面化為非互動式PDF檔案,請執行下列步驟:

  1. 包含專案檔案。
  2. 建立輸出客戶端對象。
  3. 擷取互動式PDF檔案。
  4. 轉換PDF檔案。
  5. 將非互動式PDF檔案儲存為PDF檔案。

包含專案檔案

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

必須將下列JAR檔案添加到項目的類路徑中:

  • adobe-livecycle-client.jar
  • adobe-usermanager-client.jar
  • adobe-output-client.jar
  • adobe-utilities.jar(若AEM Forms部署在JBoss上,則為必要項)
  • jbossall-client.jar(如果AEM Forms部署在JBoss上,則為必要)

如果AEM Forms部署在非JBoss的支援J2EE應用程式伺服器上,您將需要將adobe-utilities.jar和jbossall-client.jar檔案取代為JAR檔案,這些檔案是部署AEM Forms的J2EE應用程式伺服器專屬檔案。 如需所有AEM Forms JAR檔案位置的詳細資訊,請參閱包含AEM Forms Java程式庫檔案

建立輸出客戶端對象

在以寫程式方式執行輸出服務操作之前,必須建立輸出服務客戶端對象。 如果您使用Java API,請建立OutputClient物件。 如果您使用Output web service API,請建立OutputServiceService物件。

擷取互動式PDF檔案

擷取您要轉換為非互動式PDF檔案的互動式PDF檔案。 嘗試轉換非互動式PDF檔案時,會造成例外。

轉換PDF檔案

擷取互動式PDF檔案後,您可將它轉換為非互動式PDF檔案。 Output服務會傳回非互動式PDF檔案。

將非互動式PDF檔案儲存為PDF檔案

您可以將非互動式PDF檔案儲存為PDF檔案。

另請參閱

使用Java API平面化PDF檔案

使用web service API平面化PDF檔案

包含AEM Forms Java程式庫檔案

設定連接屬性

Output Service API快速入門

使用Java API平面化PDF檔案

使用Output API(Java)將互動式PDF檔案平面化為非互動式PDF檔案:

  1. 包含專案檔案。

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

  2. 建立輸出客戶端對象。

    • 建立包含連接屬性的ServiceClientFactory對象。
    • 使用其建構子並傳遞ServiceClientFactory對象,建立OutputClient對象。
  3. 擷取互動式PDF檔案。

    • 建立java.io.FileInputStream物件,以代表互動式PDF檔案,使用其建構函式並傳遞指定互動式PDF檔案位置的字串值。
    • 使用其建構子並傳遞java.io.FileInputStream對象,建立com.adobe.idp.Document對象。
  4. 轉換PDF檔案。

    調用OutputServiceService物件的transformPDF方法並傳遞下列值,將互動式PDF檔案轉換為非互動式PDF檔案:

    • 包含互動式PDF檔案的com.adobe.idp.Document物件。
    • TransformationFormat列舉值。 若要產生非互動式PDF檔案,請指定TransformationFormat.PDF
    • 指定修訂號的PDFARevisionNumber列舉值。 由於此參數適用於PDF/A文檔,因此您可以指定null
    • 一個字串值,代表修訂編號和年份,以冒號分隔。 由於此參數適用於PDF/A文檔,因此您可以指定null
    • PDFAConformance列舉值,代表PDF/A符合性等級。 由於此參數適用於PDF/A文檔,因此您可以指定null

    transformPDF方法會傳回包含非互動式PDF檔案的com.adobe.idp.Document物件。

  5. 將非互動式PDF檔案儲存為PDF檔案。

    • 建立java.io.File物件,並確定副檔名為。pdf。
    • 叫用Document物件的copyToFile方法,將Document物件的內容複製至檔案(請確定您使用transformPDF方法傳回的Document物件)。

另請參閱

步驟摘要

快速啟動(EJB模式):使用Java API轉換PDF檔案

快速入門(SOAP模式):使用Java API轉換PDF檔案

包含AEM Forms Java程式庫檔案

設定連接屬性

使用web service API平面化PDF檔案

使用Output API(web service)將互動式PDF檔案平面化為非互動式PDF檔案:

  1. 包含專案檔案。

    建立使用MTOM的Microsoft .NET專案。 請確定您使用下列WSDL定義:http://localhost:8080/soap/services/OutputService?WSDL&lc_version=9.0.1

    注意

    localhost取代為代管AEM Forms之伺服器的IP位址。

  2. 建立輸出客戶端對象。

    • 使用其預設建構子建立OutputServiceClient對象。

    • 使用System.ServiceModel.EndpointAddress建構函式建立OutputServiceClient.Endpoint.Address物件。 將指定WSDL的字串值傳遞至AEM Forms服務(例如http://localhost:8080/soap/services/OutputService?blob=mtom)。 您不需要使用lc_version屬性。 建立服務參考時,將使用此屬性。 不過,請指定?blob=mtom以使用MTOM。

    • 獲取OutputServiceClient.Endpoint.Binding欄位的值,建立System.ServiceModel.BasicHttpBinding對象。 將返回值轉換為BasicHttpBinding

    • System.ServiceModel.BasicHttpBinding物件的MessageEncoding欄位設為WSMessageEncoding.Mtom。 此值可確保使用MTOM。

    • 執行下列工作以啟用基本HTTP驗證:

      • 將AEM表單使用者名稱指派給欄位OutputServiceClient.ClientCredentials.UserName.UserName
      • 將相應的口令值分配給欄位OutputServiceClient.ClientCredentials.UserName.Password
      • 將常數值HttpClientCredentialType.Basic分配給欄位BasicHttpBindingSecurity.Transport.ClientCredentialType
      • 將常數值BasicHttpSecurityMode.TransportCredentialOnly分配給欄位BasicHttpBindingSecurity.Security.Mode
  3. 擷取互動式PDF檔案。

    • 使用其建構子建立BLOB對象。 BLOB物件用來儲存互動式PDF檔案。
    • 通過調用System.IO.FileStream對象的建構子並傳遞一個字串值來建立<a0/>對象,該字串值表示互動式PDF文檔的檔案位置。
    • 建立儲存System.IO.FileStream對象內容的位元組陣列。 您可以取得System.IO.FileStream物件的Length屬性,以判斷位元組陣列的大小。
    • 調用System.IO.FileStream物件的Read方法,並傳遞要讀取的位元組陣列、開始位置和串流長度,以串流資料填入位元組陣列。
    • 通過為MTOM對象的<a1/>屬性指定位元組陣列的內容來填充BLOB對象。
  4. 轉換PDF檔案。

    調用OutputClient物件的transformPDF方法並傳遞下列值,將互動式PDF檔案轉換為非互動式PDF檔案:

    • 包含互動式PDF檔案的BLOB物件。
    • TransformationFormat枚舉值。 若要產生非互動式PDF檔案,請指定TransformationFormat.PDF
    • 指定修訂號的PDFARevisionNumber列舉值。
    • 一個布爾值,它指定是否使用PDFARevisionNumber枚舉值。 由於此參數適用於PDF/A文檔,因此您可以指定false
    • 一個字串值,代表修訂編號和年份,以冒號分隔。 由於此參數適用於PDF/A文檔,因此您可以指定null
    • PDFAConformance列舉值,代表PDF/A符合性等級。
    • 指定是否使用PDFAConformance列舉值的布林值。 由於此參數適用於PDF/A文檔,因此您可以指定false

    transformPDF方法會傳回包含非互動式PDF檔案的BLOB物件。

  5. 將非互動式PDF檔案儲存為PDF檔案。

    • 調用System.IO.FileStream對象的建構子並傳遞一個字串值,該字串值表示非互動PDF文檔的檔案位置。
    • 建立一個位元組陣列,用於儲存transformPDF方法返回的BLOB對象的資料內容。 獲取BLOB對象MTOM資料成員的值,以填充位元組陣列。
    • 調用System.IO.BinaryWriter對象的建構子並傳遞System.IO.FileStream對象,以建立<a0/>對象。
    • 調用System.IO.BinaryWriter物件的Write方法並傳遞位元組陣列,將位元組陣列的內容寫入PDF檔案。

另請參閱

步驟摘要

使用MTOM叫用AEM Forms

使用SwaRef叫用AEM表格

本頁內容