將PDF轉換為Postscript和影像檔案 converting-pdf-to-postscript-andimage-files
本檔案中的範例和範例僅適用於JEE環境上的AEM Forms 。
關於轉換PDF服務
「轉換PDF」服務會將PDF檔案轉換為PostScript和多種影像格式(JPEG、JPEG2000、PNG和TIFF)。 將PDF檔案轉換為PostScript對於任何PostScript印表機上的自動伺服器式列印很有用。 將PDF檔案轉換為多頁TIFF檔案對於在不支援PDF檔案的內容管理系統中封存檔案而言是切實可行的。
您可以使用轉換PDF服務完成這些工作:
- 將PDF檔案轉換為PostScript。
- 將PDF檔案轉換為影像格式。
將PDF檔案轉換為PostScript converting-pdf-documents-to-postscript
本主題說明如何使用轉換PDF服務API (Java和Web服務),以程式設計方式將PDF檔案轉換為PostScript檔案。 轉換成PostScript檔案的PDF檔案必須是非互動式PDF檔案。 也就是說,如果您嘗試將互動式PDF檔案轉換成PostScript檔案,會發生例外狀況。
步驟摘要 summary-of-steps
若要將PDF檔案轉換為PostScript檔案,請執行下列步驟:
- 包含專案檔案。
- 建立轉換PDF服務使用者端。
- 參照要轉換成PostScript檔案的PDF檔案。
- 設定轉換執行階段選項。
- 將PDF檔案轉換為PostScript檔案。
- 儲存PostScript檔案。
包含專案檔案
將必要的檔案納入您的開發專案中。 如果您使用Java建立使用者端應用程式,請包含必要的JAR檔案。 如果您使用Web服務,請務必包含Proxy檔案。
建立轉換PDF使用者端
您必須先建立轉換PDF服務使用者端,才能以程式設計方式執行轉換PDF服務作業。 如果您使用Java API,請建立 ConvertPdfServiceClient
物件。 如果您使用網站服務API,請建立 ConvertPDFServiceService
物件。
本節使用AEM Forms中介紹的Web服務功能。 若要存取新功能,您必須使用 lc_version
屬性。 (請參閱下列「使用Web服務存取新功能」: 使用網站服務叫用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輸出。
ToPSOptionsSpec
中的類別參考 AEM Forms API參考.將PDF檔案轉換為PostScript檔案
建立服務使用者端並設定執行階段選項之後,您可以叫用PostScript轉換作業。 此操作需要轉換檔案的相關資訊,包括目標檔案的慣用PostScript層級。
儲存PostScript檔案
將PDF檔案轉換為PostScript之後,您可以將輸出儲存為PostScript檔案。
另請參閱
使用Java API將PDF檔案轉換為PS convert-a-pdf-document-to-ps-using-the-java-api
使用轉換PDF服務API (Java)將PDF檔案轉換為PostScript:
-
包含專案檔案。
在您的Java專案的類別路徑中包含使用者端JAR檔案,例如adobe-convertpdf-client.jar。
-
建立轉換PDF使用者端。
- 建立
ServiceClientFactory
包含連線屬性的物件。 - 建立
ConvertPdfServiceClient
物件,使用它的建構函式並傳遞ServiceClientFactory
物件。
- 建立
-
參照要轉換成PostScript檔案的PDF檔案。
- 建立
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
方法並傳遞下列值:- A
com.adobe.idp.Document
物件,代表要轉換成PostScript檔案的PDF檔案。 - A
ToPSOptionsSpec
物件,指定PostScript執行階段選項。
此
toPS2
方法傳回Document
包含新PostScript檔案的物件。 - A
-
儲存PostScript檔案。
- 建立
java.io.File
物件,並確認副檔名為.ps。 - 叫用
Document
物件的copyToFile
複製目錄內容的方法Document
物件至檔案(請確定您使用Document
物件,由toPS2
方法)。
- 建立
另請參閱
快速入門(SOAP模式):使用Java API將PDF檔案轉換為PostScript
使用網站服務API將PDF檔案轉換為PS convert-a-pdf-document-to-ps-using-the-web-service-api
使用轉換PDF服務API (Web服務)將PDF檔案轉換為PostScript:
-
包含專案檔案。
建立使用MTOM的Microsoft .NET專案。 確定您使用下列WSDL定義:
http://localhost:8080/soap/services/ConvertPDFService?WSDL&lc_version=9.0.1
.note note NOTE 取代 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驗證:
- 將AEM表單使用者名稱指派給欄位
ConvertPdfServiceClient.ClientCredentials.UserName.UserName
. - 將對應的密碼值指派給欄位
ConvertPdfServiceClient.ClientCredentials.UserName.Password
. - 指派常數值
HttpClientCredentialType.Basic
至欄位BasicHttpBindingSecurity.Transport.ClientCredentialType
. - 指派常數值
BasicHttpSecurityMode.TransportCredentialOnly
至欄位BasicHttpBindingSecurity.Security.Mode
.
- 將AEM表單使用者名稱指派給欄位
-
-
參照要轉換成PostScript檔案的PDF檔案。
- 建立
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
方法並傳遞下列值:- A
BLOB
代表要轉換成PostScript檔案之PDF檔案的物件 - A
ToPSOptionsSpec
指定執行階段選項的物件
轉換完成後,存取代表PostScript檔案的二進位資料
BLOB
物件的MTOM
屬性。 這會傳回您可以寫出至PostScript檔案的位元組陣列。 - A
-
儲存PostScript檔案。
- 建立
System.IO.FileStream
物件,透過叫用它的建構函式。 傳遞代表PS檔案之檔案位置的字串值。 - 建立位元組陣列,儲存
BLOB
物件,由encryptPDFUsingPassword
方法。 透過取得BLOB
物件的MTOM
欄位。 - 建立
System.IO.BinaryWriter
物件,方法是叫用其建構函式,然後傳遞System.IO.FileStream
物件。 - 透過叫用
System.IO.BinaryWriter
物件的Write
方法並傳遞位元組陣列。
- 建立
另請參閱
將PDF檔案轉換為影像格式 converting-pdf-documents-to-image-formats
您可以使用轉換PDF服務,以程式設計方式將PDF檔案轉換為影像格式,包括JPEG、JPEG2000、TIFF和PNG。 透過將PDF檔案轉換為影像檔案,您可以將PDF檔案用作影像檔案。 例如,您可以將影像放入企業內容管理系統以進行儲存。
將PDF檔案轉換為影像時,轉換PDF服務會為檔案中的每個頁面建立個別的影像。 也就是說,如果檔案有20頁,轉換PDF服務會建立20個影像檔案。 將PDF檔案轉換為影像格式時,您可以為PDF檔案中的每個頁面建立個別影像,或為整個PDF檔案建立單一影像檔案。
步驟摘要 summary_of_steps-1
若要將PDF檔案轉換為任何支援的型別,請執行下列步驟:
- 包含專案檔案。
- 建立轉換PDF服務使用者端。
- 擷取要轉換的PDF檔案。
- 設定執行階段選項。
- 將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檔案轉換為影像。 會傳回包含影像的集合物件。
從集合擷取影像檔案
您可以從ConvertPDF服務傳回的集合物件擷取影像檔案。 集合中的每個元素都是 com.adobe.idp.Document
執行個體(或 BLOB
例如使用Web服務時的執行個體),可以儲存為影像檔案,例如JPG檔案。
影像檔案的格式取決於 ImageConvertFormat
執行階段選項。 也就是說,如果您將 ImageConvertFormat
執行階段選項至 ImageConvertFormat.JPEG
,您可以將影像檔案儲存為JPG檔案。
另請參閱
使用Java API將PDF檔案轉換為影像檔案 convert-a-pdf-document-to-image-files-using-the-java-api
使用轉換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
指定格式型別的列舉值。
note note NOTE 設定 ImageConvertFormat
列舉值是必要的。 - 建立
-
將PDF轉換為影像。
叫用
ConvertPdfServiceClient
物件的toImage2
方法並傳遞下列值:- A
com.adobe.idp.Document
代表要轉換之PDF檔案的物件。 - A
com.adobe.livecycle.converpdfservice.client.ToImageOptionsSpec
包含目標影像格式各種偏好設定的物件。
此
toImage2
方法傳回java.util.List
包含影像的物件。 集合中的每個元素都是com.adobe.idp.Document
執行個體。 - A
-
從集合中擷取影像檔案。
逐一檢視
java.util.List
物件,用來判斷影像是否存在。 每個元素都是com.adobe.idp.Document
執行個體。 透過叫用com.adobe.idp.Document
物件的copyToFile
方法和傳遞java.io.File
物件。
另請參閱
快速入門(SOAP模式):使用Java API將PDF檔案轉換為JPEG檔案
使用Web服務API將PDF檔案轉換為影像檔案 convert-a-pdf-document-to-image-files-using-the-web-service-api
使用轉換PDF服務API (Web服務)將PDF檔案轉換為影像格式:
-
包含專案檔案。
建立使用MTOM的Microsoft .NET專案。 確定您使用下列WSDL定義:
http://localhost:8080/soap/services/ConvertPDFService?WSDL&lc_version=9.0.1
.note note NOTE 取代 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驗證:
- 將AEM表單使用者名稱指派給欄位
ConvertPdfServiceClient.ClientCredentials.UserName.UserName
. - 將對應的密碼值指派給欄位
ConvertPdfServiceClient.ClientCredentials.UserName.Password
. - 指派常數值
HttpClientCredentialType.Basic
至欄位BasicHttpBindingSecurity.Transport.ClientCredentialType
. - 指派常數值
BasicHttpSecurityMode.TransportCredentialOnly
至欄位BasicHttpBindingSecurity.Security.Mode
.
- 將AEM表單使用者名稱指派給欄位
-
-
擷取要轉換的PDF檔案。
- 建立
BLOB
物件(使用其建構函式)。 這個BLOB
物件可用來儲存PDF表單。 - 建立
System.IO.FileStream
物件,透過叫用它的建構函式。 傳遞字串值,該值會指定PDF表單的位置以及開啟檔案的模式。 - 建立位元組陣列,儲存
System.IO.FileStream
物件。 透過取得System.IO.FileStream
物件的Length
屬性。 - 透過叫用
System.IO.FileStream
物件的Read
方法。 傳遞位元組陣列、起始位置以及要讀取的資料流長度。 - 填入
BLOB
物件,透過指派其MTOM
包含位元組陣列內容的欄位。
- 建立
-
設定執行階段選項。
- 建立
ToImageOptionsSpec
物件(使用其建構函式)。 - 視需要叫用屬於此物件的方法。 例如,透過叫用
setImageConvertFormat
方法並傳遞ImageConvertFormat
指定格式型別的列舉值。
note note NOTE 設定 ImageConvertFormat
列舉值是必要的。 - 建立
-
將PDF轉換為影像。
叫用
ConvertPDFServiceService
物件的toImage2
方法並傳遞下列值:- A
BLOB
物件,代表要轉換的檔案 - A
ToImageOptionsSpec
包含有關目標影像格式的各種偏好設定的物件
此
toImage2
方法傳回MyArrayOfBLOB
包含新建立之影像檔案的物件。 - A
-
從集合中擷取影像檔案。
- 決定中的元素數量
MyArrayOfBLOB
物件,方法是取得其Count
欄位。 每個元素都是BLOB
包含影像的物件。 - 逐一檢視
MyArrayOfBLOB
物件並儲存每個影像檔案。
- 決定中的元素數量
另請參閱