關於轉換PDF服務
「轉換PDF」服務將PDF文檔轉換為PostScript和多種影像格式(JPEG、JPEG 2000、PNG和TIFF)。 將PDF文檔轉換為PostScript對於在任何PostScript打印機上基於伺服器的無人值守打印非常有用。 將PDF檔案轉換為多頁TIFF檔案,在不支援PDF檔案的內容管理系統中封存檔案時非常實用。
您可以使用「轉換PDF」服務來完成下列工作:
將PDF檔案轉換為PostScript。
將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
物件。 如果您使用Web服務API,請建立ConvertPDFServiceService
物件。
本節使用AEM Forms中推出的網站服務功能。 若要存取新功能,您必須使用lc_version
屬性來建構您的Proxy物件。 (請參閱使用網站服務叫用AEM Forms中的「使用網站服務存取新功能」。)
參考要轉換為PostScript檔案的PDF文檔
參考要轉換為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輸出。
如需可設定之執行階段值的詳細資訊,請參閱AEM Forms API參考中的ToPSOptionsSpec
類別參考。
將PDF文檔轉換為PostScript檔案
建立服務客戶端並設定運行時選項後,可以調用PostScript轉換操作。 此操作需要有關要轉換的文檔的資訊,包括目標文檔的首選PostScript級別。
儲存PostScript檔案
將PDF文檔轉換為PostScript後,可以將輸出另存為PostScript檔案。
另請參閱
使用「轉換PDF服務API(Java)」將PDF文檔轉換為PostScript:
包含專案檔案。
在Java專案的類別路徑中加入用戶端JAR檔案,例如adobe-convertpdf-client.jar。
建立轉換PDF用戶端。
ServiceClientFactory
對象。ServiceClientFactory
物件,以建立ConvertPdfServiceClient
物件。參考要轉換為PostScript檔案的PDF文檔。
java.io.FileInputStream
物件,並傳遞字串值,指定要轉換的PDF檔案的位置。com.adobe.idp.Document
建構子建立com.adobe.idp.Document
物件以儲存PDF檔案。 傳遞包含PDF檔案的java.io.FileInputStream
物件。設定轉換執行時間選項。
ToPSOptionsSpec
對象的建構子以建立對象。ToPSOptionsSpec
對象的適當方法來設定運行時選項。 例如,要定義已建立的PostScript級別,請調用ToPSOptionsSpec
對象的setPsLevel
方法,並傳遞指定PostScript級別的PSLevel
枚舉值。 如需可設定之所有執行階段值的相關資訊,請參閱AEM Forms API參考中的ToPSOptionsSpec
類別參考。將PDF文檔轉換為PostScript檔案。
調用ConvertPdfServiceClient
對象的toPS2
方法並傳遞以下值:
com.adobe.idp.Document
對象。ToPSOptionsSpec
對象,指定PostScript運行時選項。toPS2
方法返回包含新PostScript文檔的Document
對象。
儲存PostScript檔案。
java.io.File
物件,並確定副檔名為.ps。Document
對象的copyToFile
方法,將Document
對象的內容複製到檔案(確保使用toPS2
方法返回的Document
對象)。另請參閱
快速入門(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
物件。
使用System.ServiceModel.EndpointAddress
建構子建立ConvertPdfServiceClient.Endpoint.Address
物件。 將指定WSDL的字串值傳遞到AEM Forms服務(例如http://localhost:8080/soap/services/ConvertPDFService?blob=mtom
)。 您不需要使用lc_version
屬性。 但請指定?blob=mtom
。
獲取ConvertPdfServiceClient.Endpoint.Binding
欄位的值,建立System.ServiceModel.BasicHttpBinding
對象。 將傳回值轉換為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
。參考要轉換為PostScript檔案的PDF文檔。
BLOB
物件。 BLOB
對象用於儲存轉換為PostScript檔案的PDF文檔。System.IO.FileStream
對象,該字串值表示要轉換的PDF文檔的檔案位置,以及在中開啟檔案的模式。System.IO.FileStream
對象內容的位元組陣列。 通過獲取System.IO.FileStream
對象的Length
屬性,可以確定位元組陣列的大小。System.IO.FileStream
對象的Read
方法並傳遞要讀取的位元組陣列、起始位置和流長度,以流資料填充位元組陣列。MTOM
欄位指定位元組陣列的內容,以填入BLOB
物件。設定轉換執行時間選項。
ToPSOptionsSpec
對象的建構子以建立對象。ToPSOptionsSpec
對象的資料成員分配值來設定運行時選項。 例如,要定義已建立的PostScript級別,請將PSLevel
枚舉值分配給ToPSOptionsSpec
對象的psLevel
資料成員。將PDF文檔轉換為PostScript檔案。
調用GeneratePDFServiceService
對象的toPS2
方法並傳遞以下值:
BLOB
對象ToPSOptionsSpec
對象轉換完成後,通過訪問其BLOB
對象的MTOM
屬性來提取表示PostScript文檔的二進位資料。 這會傳回位元組陣列,您可將其寫出至PostScript檔案。
儲存PostScript檔案。
System.IO.FileStream
對象的建構子以建立對象。 傳遞代表PS檔案檔案位置的字串值。encryptPDFUsingPassword
方法返回的BLOB
對象的資料內容。 獲取BLOB
對象的MTOM
欄位的值,填入位元組陣列。System.IO.FileStream
對象來建立System.IO.BinaryWriter
對象。System.IO.BinaryWriter
對象的Write
方法並傳遞位元組陣列,將位元組陣列的內容寫入PostScript檔案。另請參閱
您可以使用「轉換PDF」服務,以寫程式方式將PDF文檔轉換為影像格式,包括JPEG、JPEG 2000、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
物件。 如果您使用Web服務API,請建立ConvertPDFServiceService
物件。
檢索要轉換的PDF文檔
必須檢索PDF文檔才能轉換為影像。 無法將互動式PDF文檔轉換為影像。 如果嘗試執行此操作,則會擲回例外。 要將互動式PDF文檔轉換為影像檔案,必須先平面化PDF文檔,然後再轉換。 (請參閱拼合PDF文檔。)
設定運行時選項
必須設定運行時選項,如影像格式和解析度值。 有關運行時值的資訊,請參閱AEM Forms API參考中的ToImageOptionsSpec
類參考。
將PDF轉換為影像
建立服務客戶端並設定運行時選項後,可以將PDF文檔轉換為影像。 會傳回包含影像的集合物件。
從集合中擷取影像檔案
您可以從轉換PDF服務傳回的集合物件擷取影像檔案。 集合中的每個元素都是一個com.adobe.idp.Document
例項(如果您使用Web服務,則為BLOB
例項),可儲存為影像檔案,例如JPG檔案。
影像檔案的格式取決於ImageConvertFormat
運行時選項。 也就是說,如果將ImageConvertFormat
運行時選項設定為ImageConvertFormat.JPEG
,則可以將影像檔案另存為JPG檔案。
另請參閱
使用「轉換PDF服務API(Java)」將PDF文檔轉換為影像格式:
包含專案檔案。
在Java專案的類別路徑中加入用戶端JAR檔案,例如adobe-convertpdf-client.jar。
建立轉換PDF用戶端。
ServiceClientFactory
對象。ServiceClientFactory
物件,以建立ConvertPdfServiceClient
物件。檢索要轉換的PDF文檔。
java.io.FileInputStream
對象,該對象表示要轉換的PDF文檔,方法是使用其建構子並傳遞一個字串值,該字串值指定PDF文檔的位置。java.io.FileInputStream
物件,以建立com.adobe.idp.Document
物件。設定運行時選項。
ToImageOptionsSpec
物件。setImageConvertFormat
方法並傳遞指定格式類型的ImageConvertFormat
枚舉值來設定影像類型。必須設定ImageConvertFormat
枚舉值。
將PDF轉換為影像。
調用ConvertPdfServiceClient
對象的toImage2
方法並傳遞以下值:
com.adobe.idp.Document
物件。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
物件。
使用System.ServiceModel.EndpointAddress
建構子建立ConvertPdfServiceClient.Endpoint.Address
物件。 將指定WSDL的字串值傳遞到AEM Forms服務(例如http://localhost:8080/soap/services/ConvertPDFService?blob=mtom
)。 您不需要使用lc_version
屬性。 但請指定?blob=mtom
。
獲取ConvertPdfServiceClient.Endpoint.Binding
欄位的值,建立System.ServiceModel.BasicHttpBinding
對象。 將傳回值轉換為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
方法,以串流資料填入位元組陣列。 傳遞位元組陣列、起始位置和資料流長度以讀取。MTOM
欄位指定位元組陣列的內容,以填入BLOB
物件。設定運行時選項。
ToImageOptionsSpec
物件。setImageConvertFormat
方法並傳遞指定格式類型的ImageConvertFormat
枚舉值來設定影像類型。必須設定ImageConvertFormat
枚舉值。
將PDF轉換為影像。
調用ConvertPDFServiceService
對象的toImage2
方法並傳遞以下值:
BLOB
對象ToImageOptionsSpec
對象,包含有關目標影像格式的各種首選項toImage2
方法返回包含新建立的影像檔案的MyArrayOfBLOB
對象。
從集合中擷取影像檔案。
Count
欄位的值,確定MyArrayOfBLOB
對象中的元素數。 每個元素都是包含影像的BLOB
物件。MyArrayOfBLOB
物件,並儲存每個影像檔案。另請參閱