本檔案中的範例和範例僅適用於JEE環境上的AEM Forms。
關於轉換PDF服務
「轉換PDF」服務將PDF文檔轉換為PostScript和多種影像格式(JPEG、JPEG2000、PNG和TIFF)。 將PDF文檔轉換為PostScript對於在任何PostScript打印機上基於伺服器的無人值守打印非常有用。 將PDF文檔轉換為多頁TIFF檔案對於在不支援PDF文檔的內容管理系統中歸檔文檔非常實用。
您可以使用「轉換PDF」服務來完成下列工作:
如需「轉換PDF」服務的詳細資訊,請參閱 AEM Forms服務參考.
本主題說明如何使用「轉換PDF服務API」(Java和Web服務),以程式設計方式將PDF檔案轉換為PostScript檔案。 轉換為PostScript檔案的PDF文檔必須是非互動式PDF文檔。 也就是說,如果嘗試將互動式PDF文檔轉換為PostScript檔案,則會引發異常。
如需「轉換PDF」服務的詳細資訊,請參閱 AEM Forms服務參考.
要將PDF文檔轉換為PostScript檔案,請執行以下步驟:
包含項目檔案
將必要的檔案納入您的開發專案。 如果您是使用Java建立客戶端應用程式,請包括必要的JAR檔案。 如果您使用Web服務,請務必包含Proxy檔案。
建立轉換PDF客戶端
在以寫程式方式執行「轉換PDF」服務操作之前,必須建立「轉換PDF」服務客戶端。 如果您使用Java API,請建立 ConvertPdfServiceClient
物件。 如果您使用網站服務API,請建立 ConvertPDFServiceService
物件。
本節使用AEM Forms中推出的網站服務功能。 若要存取新功能,您必須使用 lc_version
屬性。 (請參閱以下主題中的「使用網站服務存取新功能」: 使用Web服務叫用AEM Forms.)
參考PDF文檔以轉換為PostScript檔案
參考要轉換為PostScript檔案的PDF文檔。 如本主題前面所述,PDF文檔必須是非互動式PDF文檔。 如果嘗試將互動式PDF文檔轉換為PostScript檔案,則會引發異常。
設定轉換執行時間選項
將PDF文檔轉換為PostScript檔案時,您可以定義運行時選項,以指定所建立的PostScript類型。 例如,您可以定義第3層PostScript檔案。
一般而言,產生的PostScript檔案會反映輸入PDF檔案的大小。 如果您選取 ShrinkToFit
選項(該選項會縮小PostScript檔案的輸出以適合頁面),您將不會看到輸入PDF文檔與生成的PostScript檔案之間的差異。 此 ShrinkToFit
選項只有在選擇打印的頁面大小比輸入PDF文檔小時才生效。 若要選取較小的頁面大小,請定義 PageSize
選項。 此外,建議您將 RotateAndCenter
選項 true
以獲得正確的PostScript輸出。
同樣地,若您選取 ExpandToFit
選項(它擴展了PostScript檔案的輸出以適合頁面大小),只有當您選擇打印的頁面大小比輸入PDF文檔大時,它才生效。 若要選取較大的頁面大小,請定義 PageSize
選項。 此外,建議您將 RotateAndCenter
選項 true
以獲得正確的PostScript輸出。
如需可設定的執行階段值相關資訊,請參閱 ToPSOptionsSpec
類引用 AEM Forms API參考.
將PDF文檔轉換為PostScript檔案
建立服務客戶端並設定運行時選項後,可以調用PostScript轉換操作。 此操作需要有關要轉換的文檔的資訊,包括目標文檔的首選PostScript級別。
儲存PostScript檔案
將PDF文檔轉換為PostScript後,可以將輸出另存為PostScript檔案。
另請參閱
使用「轉換PDF服務API」(Java)將PDF文檔轉換為PostScript:
包含專案檔案。
在Java專案的類別路徑中加入用戶端JAR檔案,例如adobe-convertpdf-client.jar。
建立轉換PDF客戶端。
ServiceClientFactory
包含連接屬性的對象。ConvertPdfServiceClient
對象,使用其建構子並傳遞 ServiceClientFactory
物件。參考PDF文檔以轉換為PostScript檔案。
java.io.FileInputStream
對象,使用其建構子並傳遞一個字串值,該字串值指定要轉換的PDF文檔的位置。com.adobe.idp.Document
用於儲存PDF文檔的對象,方法是使用 com.adobe.idp.Document
建構子。 傳遞 java.io.FileInputStream
包含PDF文檔的對象。設定轉換執行時間選項。
ToPSOptionsSpec
對象,方法是調用其建構子。ToPSOptionsSpec
物件。 例如,要定義已建立的PostScript級別,請調用 ToPSOptionsSpec
物件 setPsLevel
方法和傳遞 PSLevel
指定PostScript級別的枚舉值。 如需可設定之所有執行階段值的相關資訊,請參閱 ToPSOptionsSpec
類引用 AEM Forms API參考.將PDF文檔轉換為PostScript檔案。
叫用 ConvertPdfServiceClient
物件 toPS2
方法,並傳遞下列值:
com.adobe.idp.Document
表示要轉換為PostScript檔案的PDF文檔的對象。ToPSOptionsSpec
指定PostScript運行時選項的對象。此 toPS2
方法傳回 Document
包含新PostScript文檔的對象。
儲存PostScript檔案。
java.io.File
物件,並確定副檔名為.ps。Document
物件 copyToFile
複製內容的方法 Document
物件(請確定您使用 Document
由傳回的物件 toPS2
方法)。另請參閱
快速入門(SOAP模式):使用Java API將PDF檔案轉換為PostScript
使用「轉換PDF服務API」(Web服務)將PDF文檔轉換為PostScript:
包含專案檔案。
建立使用MTOM的Microsoft .NET專案。 確保使用以下WSDL定義: http://localhost:8080/soap/services/ConvertPDFService?WSDL&lc_version=9.0.1
.
取代 localhost
和托管AEM Forms之伺服器的IP位址。
建立轉換PDF客戶端。
建立 ConvertPdfServiceClient
物件,使用其預設建構函式。
建立 ConvertPdfServiceClient.Endpoint.Address
物件,使用 System.ServiceModel.EndpointAddress
建構子。 將指定WSDL的字串值傳遞至AEM Forms服務(例如 http://localhost:8080/soap/services/ConvertPDFService?blob=mtom
.) 您不需要使用 lc_version
屬性。 不過,請指定 ?blob=mtom
.
建立 System.ServiceModel.BasicHttpBinding
物件,方法是取得 ConvertPdfServiceClient.Endpoint.Binding
欄位。 將傳回值轉換為 BasicHttpBinding
.
設定 System.ServiceModel.BasicHttpBinding
物件 MessageEncoding
欄位至 WSMessageEncoding.Mtom
. 此值可確保使用MTOM。
通過執行以下任務來啟用基本HTTP身份驗證:
ConvertPdfServiceClient.ClientCredentials.UserName.UserName
.ConvertPdfServiceClient.ClientCredentials.UserName.Password
.HttpClientCredentialType.Basic
欄位 BasicHttpBindingSecurity.Transport.ClientCredentialType
.BasicHttpSecurityMode.TransportCredentialOnly
欄位 BasicHttpBindingSecurity.Security.Mode
.參考PDF文檔以轉換為PostScript檔案。
BLOB
物件,使用其建構子。 此 BLOB
對象用於儲存轉換為PostScript檔案的PDF文檔。System.IO.FileStream
對象,方法是調用其建構子,並傳遞一個字串值,該字串值表示要轉換的PDF文檔的檔案位置以及在中開啟檔案的模式。System.IO.FileStream
物件。 您可以取得 System.IO.FileStream
物件 Length
屬性。System.IO.FileStream
物件 Read
方法及傳遞位元組陣列、起始位置及資料流長度以讀取。BLOB
對象,通過賦值 MTOM
位元組陣列內容的欄位。設定轉換執行時間選項。
ToPSOptionsSpec
對象,方法是調用其建構子。ToPSOptionsSpec
對象的資料成員。 例如,若要定義所建立的PostScript層級,請指派 PSLevel
枚舉值 ToPSOptionsSpec
物件 psLevel
資料成員。將PDF文檔轉換為PostScript檔案。
叫用 GeneratePDFServiceService
物件 toPS2
方法,並傳遞下列值:
BLOB
表示要轉換為PostScript檔案的PDF文檔的對象ToPSOptionsSpec
指定運行時選項的對象轉換完成後,通過訪問PostScript文檔來提取代表該文檔的二進位資料 BLOB
物件 MTOM
屬性。 這會傳回位元組陣列,您可將其寫出至PostScript檔案。
儲存PostScript檔案。
System.IO.FileStream
對象,方法是調用其建構子。 傳遞代表PS檔案檔案位置的字串值。BLOB
由傳回的物件 encryptPDFUsingPassword
方法。 取得 BLOB
物件 MTOM
欄位。System.IO.BinaryWriter
對象,調用其建構子並傳遞 System.IO.FileStream
物件。System.IO.BinaryWriter
物件 Write
方法,並傳遞位元組陣列。另請參閱
您可以使用「轉換PDF」服務,以寫程式方式將PDF文檔轉換為影像格式,包括JPEG、JPEG2000、TIFF和PNG。 通過將PDF文檔轉換為影像檔案,可以將PDF文檔用作影像檔案。 例如,您可以將映像放置在企業內容管理系統中以進行儲存。
將PDF文檔轉換為影像時,「轉換PDF」服務將為文檔中的每個頁面建立單獨的影像。 也就是說,如果文檔有20頁,則「轉換PDF」服務將建立20個影像檔案。 將PDF文檔轉換為影像格式時,可以為PDF文檔內的每個頁面建立單個影像,也可以為整個PDF文檔建立單個影像檔案。
如需「轉換PDF」服務的詳細資訊,請參閱 AEM Forms服務參考.
要將PDF文檔轉換為任何支援的類型,請執行以下步驟:
包含項目檔案
將必要的檔案納入您的開發專案。 如果您是使用Java建立客戶端應用程式,請包括必要的JAR檔案。 如果您使用Web服務,請務必包含Proxy檔案。
建立轉換PDF客戶端
在以寫程式方式執行「轉換PDF」服務操作之前,必須建立「轉換PDF」服務客戶端。 如果您使用Java API,請建立 ConvertPdfServiceClient
物件。 如果您使用網站服務API,請建立 ConvertPDFServiceService
物件。
檢索要轉換的PDF文檔
必須檢索PDF文檔才能轉換為影像。 無法將互動式PDF文檔轉換為影像。 如果嘗試執行此操作,則會擲回例外。 要將互動式PDF文檔轉換為影像檔案,必須先平面化PDF文檔,然後再進行轉換。 (請參閱 拼合PDF文檔.)
設定運行時選項
必須設定運行時選項,如影像格式和解析度值。 如需執行時值的相關資訊,請參閱 ToImageOptionsSpec
類引用 AEM Forms API參考.
將PDF轉換為影像
建立服務客戶端並設定運行時選項後,可以將PDF文檔轉換為影像。 會傳回包含影像的集合物件。
從集合中擷取影像檔案
您可以從轉換PDF服務傳回的集合物件擷取影像檔案。 集合中的每個元素都是 com.adobe.idp.Document
例項(或 BLOB
例項(若您使用web服務),可儲存為影像檔案,例如JPG檔案。
影像檔案的格式取決於 ImageConvertFormat
執行時選項。 也就是說,若您設定 ImageConvertFormat
運行時選項 ImageConvertFormat.JPEG
,您可以將影像檔案儲存為JPG檔案。
另請參閱
使用「轉換PDF服務API(Java)」將PDF文檔轉換為影像格式:
包含專案檔案。
在Java專案的類別路徑中加入用戶端JAR檔案,例如adobe-convertpdf-client.jar。
建立轉換PDF客戶端。
ServiceClientFactory
包含連接屬性的對象。ConvertPdfServiceClient
對象,使用其建構子並傳遞 ServiceClientFactory
物件。檢索要轉換的PDF文檔。
java.io.FileInputStream
表示要轉換的PDF文檔的對象,方法是使用其建構子並傳遞指定PDF文檔位置的字串值。com.adobe.idp.Document
對象,使用其建構子並傳遞 java.io.FileInputStream
物件。設定運行時選項。
ToImageOptionsSpec
物件,使用其建構子。setImageConvertFormat
方法並傳遞 ImageConvertFormat
指定格式類型的枚舉值。設定 ImageConvertFormat
枚舉值是必需的。
將PDF轉換為影像。
叫用 ConvertPdfServiceClient
物件 toImage2
方法,並傳遞下列值:
com.adobe.idp.Document
表示要轉換的PDF檔案的對象。com.adobe.livecycle.converpdfservice.client.ToImageOptionsSpec
包含有關目標影像格式的各種首選項的對象。此 toImage2
方法傳回 java.util.List
包含影像的物件。 集合中的每個元素都是 com.adobe.idp.Document
例項。
從集合中擷取影像檔案。
重複 java.util.List
物件,以判斷影像是否存在。 每個元素都是 com.adobe.idp.Document
例項。 叫用 com.adobe.idp.Document
物件 copyToFile
方法和傳遞 java.io.File
物件。
另請參閱
快速入門(SOAP模式):使用Java API將PDF檔案轉換為JPEG檔案
使用「轉換PDF服務API(Web服務)」將PDF文檔轉換為影像格式:
包含專案檔案。
建立使用MTOM的Microsoft .NET專案。 確保使用以下WSDL定義: http://localhost:8080/soap/services/ConvertPDFService?WSDL&lc_version=9.0.1
.
取代 localhost
和托管AEM Forms之伺服器的IP位址。
建立轉換PDF客戶端。
建立 ConvertPdfServiceClient
物件,使用其預設建構函式。
建立 ConvertPdfServiceClient.Endpoint.Address
物件,使用 System.ServiceModel.EndpointAddress
建構子。 將指定WSDL的字串值傳遞至AEM Forms服務(例如 http://localhost:8080/soap/services/ConvertPDFService?blob=mtom
.) 您不需要使用 lc_version
屬性。 不過,請指定 ?blob=mtom
.
建立 System.ServiceModel.BasicHttpBinding
物件,方法是取得 ConvertPdfServiceClient.Endpoint.Binding
欄位。 將傳回值轉換為 BasicHttpBinding
.
設定 System.ServiceModel.BasicHttpBinding
物件 MessageEncoding
欄位至 WSMessageEncoding.Mtom
. 此值可確保使用MTOM。
通過執行以下任務來啟用基本HTTP身份驗證:
ConvertPdfServiceClient.ClientCredentials.UserName.UserName
.ConvertPdfServiceClient.ClientCredentials.UserName.Password
.HttpClientCredentialType.Basic
欄位 BasicHttpBindingSecurity.Transport.ClientCredentialType
.BasicHttpSecurityMode.TransportCredentialOnly
欄位 BasicHttpBindingSecurity.Security.Mode
.檢索要轉換的PDF文檔。
BLOB
物件,使用其建構子。 此 BLOB
物件可用來儲存PDF表單。System.IO.FileStream
對象,方法是調用其建構子。 傳遞一個字串值,指定PDF表單的位置,以及在中開啟檔案的模式。System.IO.FileStream
物件。 透過取得 System.IO.FileStream
物件 Length
屬性。System.IO.FileStream
物件 Read
方法。 傳遞位元組陣列、起始位置和資料流長度以讀取。BLOB
對象,通過賦值 MTOM
位元組陣列內容的欄位。設定運行時選項。
ToImageOptionsSpec
物件,使用其建構子。setImageConvertFormat
方法並傳遞 ImageConvertFormat
指定格式類型的枚舉值。設定 ImageConvertFormat
枚舉值是必需的。
將PDF轉換為影像。
叫用 ConvertPDFServiceService
物件 toImage2
方法,並傳遞下列值:
BLOB
表示要轉換的檔案的對象ToImageOptionsSpec
包含有關目標影像格式的各種首選項的對象此 toImage2
方法傳回 MyArrayOfBLOB
包含新建立的影像檔案的對象。
從集合中擷取影像檔案。
MyArrayOfBLOB
物件,方法是取得其值 Count
欄位。 每個元素都是 BLOB
包含影像的物件。MyArrayOfBLOB
物件,並儲存每個影像檔案。另請參閱