關於轉換PDF服務
「轉換PDF」服務會將PDF檔案轉換為PostScript和多種影像格式(JPEG、JPEG 2000、PNG和TIFF)。 將PDF檔案轉換為PostScript對於在任何PostScript印表機上以伺服器為基礎的無人值守列印十分有用。 在不支援PDF檔案的內容管理系統中封存檔案時,將PDF檔案轉換為多頁TIFF檔案十分實用。
您可以使用「轉換PDF」服務完成下列工作:
將PDF檔案轉換為PostScript。
將PDF檔案轉換為影像格式。
如需轉換PDF服務的詳細資訊,請參閱AEM Forms的服務參考。
本主題說明如何使用轉換PDF服務API(Java和web service),以程式設計方式將PDF檔案轉換為PostScript檔案。 轉換為PostScript檔案的PDF檔案必須是非互動式PDF檔案。 也就是說,如果您嘗試將互動式PDF檔案轉換為PostScript檔案,則會擲回例外。
如需轉換PDF服務的詳細資訊,請參閱AEM Forms的服務參考。
若要將PDF檔案轉換為PostScript檔案,請執行下列步驟:
包含專案檔案
將必要的檔案加入您的開發專案中。 如果要使用Java建立客戶端應用程式,請包括必要的JAR檔案。 如果您使用web services,請確定您包含proxy檔案。
建立轉換PDF用戶端
您必須先建立「轉換PDF」服務用戶端,才能以程式設計方式執行「轉換PDF」服務作業。 如果您使用Java API,請建立ConvertPdfServiceClient
物件。 如果您使用web service API,請建立ConvertPDFServiceService
物件。
本節使用AEM Forms中引進的Web服務功能。 若要存取新功能,您必須使用lc_version
屬性來建構您的Proxy物件。 (請參閱使用Web Services叫用AEM Forms中的「使用Web Services存取新功能」。)
參考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輸出。
如需您可設定之執行時期值的詳細資訊,請參閱AEM Forms API Reference中的ToPSOptionsSpec
類別參考。
將PDF檔案轉換為PostScript檔案
在您建立服務用戶端並設定執行時期選項後,就可以叫用PostScript轉換作業。 此操作將需要有關要轉換的文檔的資訊,包括目標文檔的首選PostScript級別。
儲存PostScript檔案
將PDF檔案轉換為PostScript後,您可將輸出儲存為PostScript檔案。
另請參閱
使用「轉換PDF服務API(Java)」將PDF檔案轉換為PostScript:
包含專案檔案。
將用戶端JAR檔案(例如adobe-convertpdf-client.jar)加入Java專案的類別路徑中。
建立轉換PDF用戶端。
ServiceClientFactory
對象。ServiceClientFactory
對象,建立ConvertPdfServiceClient
對象。參考PDF檔案以轉換為PostScript檔案。
java.io.FileInputStream
物件,並傳遞指定要轉換之PDF檔案位置的字串值。com.adobe.idp.Document
建構函式建立儲存PDF檔案的com.adobe.idp.Document
物件。 傳遞包含PDF檔案的java.io.FileInputStream
物件。設定轉換執行時期選項。
ToPSOptionsSpec
對象的建構子建立對象。ToPSOptionsSpec
對象的相應方法來設定運行時選項。 例如,若要定義所建立的PostScript層級,請叫用ToPSOptionsSpec
物件的setPsLevel
方法,並傳遞指定PostScript層級的PSLevel
列舉值。 如需您可設定之所有執行時期值的詳細資訊,請參閱AEM Forms API Reference中的ToPSOptionsSpec
類別參考。將PDF檔案轉換為PostScript檔案。
叫用ConvertPdfServiceClient
物件的toPS2
方法並傳遞下列值:
com.adobe.idp.Document
物件,代表要轉換為PostScript檔案的PDF檔案。ToPSOptionsSpec
物件,指定PostScript執行時期選項。toPS2
方法返回包含新PostScript文檔的Document
對象。
儲存PostScript檔案。
java.io.File
物件,並確定副檔名為。ps。Document
物件的copyToFile
方法,將Document
物件的內容複製至檔案(請確定您使用toPS2
方法傳回的Document
物件)。另請參閱
快速入門(SOAP模式):使用Java API將PDF檔案轉換為PostScript
使用「轉換PDF服務API」(web service)將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
。參考PDF檔案以轉換為PostScript檔案。
BLOB
對象。 BLOB
物件用來儲存轉換為PostScript檔案的PDF檔案。System.IO.FileStream
對象,該字串值表示要轉換的PDF文檔的檔案位置以及開啟檔案的模式。System.IO.FileStream
對象內容的位元組陣列。 您可以取得System.IO.FileStream
物件的Length
屬性,以判斷位元組陣列的大小。System.IO.FileStream
物件的Read
方法,並將位元組陣列、開始位置和串流長度傳遞給讀取,以串流資料填入位元組陣列。MTOM
對象的欄位分配位元組陣列的內容來填充BLOB
對象。設定轉換執行時期選項。
ToPSOptionsSpec
對象的建構子建立對象。ToPSOptionsSpec
物件的資料成員指派值,以設定執行時期選項。 例如,若要定義所建立的PostScript層級,請為ToPSOptionsSpec
物件的psLevel
資料成員指派PSLevel
列舉值。將PDF檔案轉換為PostScript檔案。
叫用GeneratePDFServiceService
物件的toPS2
方法並傳遞下列值:
BLOB
物件,代表要轉換為PostScript檔案的PDF檔案ToPSOptionsSpec
對象轉換完成後,請存取其BLOB
物件的MTOM
屬性,以擷取代表PostScript檔案的二進位資料。 這會傳回一個位元組陣列,您可將其寫出至PostScript檔案。
儲存PostScript檔案。
System.IO.FileStream
對象的建構子建立對象。 傳遞代表PS檔案檔案位置的字串值。encryptPDFUsingPassword
方法返回的BLOB
對象的資料內容。 取得BLOB
物件的MTOM
欄位值,以填入位元組陣列。System.IO.BinaryWriter
對象的建構子並傳遞System.IO.FileStream
對象,以建立對象。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 services,請確定您包含proxy檔案。
建立轉換PDF用戶端
您必須先建立「轉換PDF」服務用戶端,才能以程式設計方式執行「轉換PDF」服務作業。 如果您使用Java API,請建立ConvertPdfServiceClient
物件。 如果您使用web service API,請建立ConvertPDFServiceService
物件。
擷取要轉換的PDF檔案
您必須擷取PDF檔案才能轉換為影像。 您無法將互動式PDF檔案轉換為影像。 如果您嘗試這麼做,則會擲回例外。 若要將互動式PDF檔案轉換為影像檔,您必須先平面化PDF檔案,才能進行轉換。 (請參閱平面化PDF檔案。)
設定執行時期選項
您必須設定執行時期選項,例如影像格式和解析度值。 如需執行時間值的詳細資訊,請參閱AEM Forms API Reference中的ToImageOptionsSpec
類別參考。
將PDF轉換為影像
建立服務用戶端並設定執行時期選項後,您就可以將PDF檔案轉換為影像。 會傳回包含影像的系列物件。
從系列擷取影像檔案
您可以從轉換PDF服務傳回的系列物件擷取影像檔案。 系列中的每個元素都是一個com.adobe.idp.Document
例項(若您使用web services,則為BLOB
例項),您可將其儲存為影像檔案,例如JPG檔案。
影像檔案的格式取決於ImageConvertFormat
執行時期選項。 也就是說,如果您將ImageConvertFormat
執行時期選項設為ImageConvertFormat.JPEG
,則可將影像檔案儲存為JPG檔案。
另請參閱
使用「轉換PDF服務API」(Java),將PDF檔案轉換為影像格式:
包含專案檔案。
將用戶端JAR檔案(例如adobe-convertpdf-client.jar)加入Java專案的類別路徑中。
建立轉換PDF用戶端。
ServiceClientFactory
對象。ServiceClientFactory
對象,建立ConvertPdfServiceClient
對象。擷取要轉換的PDF檔案。
java.io.FileInputStream
物件。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 service),將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
物件並儲存每個影像檔案。另請參閱