將PDF轉換為Postscript和影像檔案 converting-pdf-to-postscript-andimage-files
關於轉換PDF服務
「轉換PDF」服務將PDF文檔轉換為PostScript和多種影像格式(JPEG、JPEG2000、PNG和TIFF)。 將PDF文檔轉換為PostScript對於在任何PostScript打印機上基於伺服器的無人值守打印非常有用。 將PDF文檔轉換為多頁TIFF檔案對於在不支援PDF文檔的內容管理系統中歸檔文檔非常實用。
您可以使用「轉換PDF」服務來完成下列工作:
-
將PDF文檔轉換為PostScript。
-
將PDF文檔轉換為影像格式。
note note NOTE 如需「轉換PDF」服務的詳細資訊,請參閱 AEM Forms服務參考.
將PDF文檔轉換為PostScript converting-pdf-documents-to-postscript
本主題說明如何使用「轉換PDF服務API」(Java和Web服務),以程式設計方式將PDF檔案轉換為PostScript檔案。 轉換為PostScript檔案的PDF文檔必須是非互動式PDF文檔。 也就是說,如果嘗試將互動式PDF文檔轉換為PostScript檔案,則會引發異常。
步驟摘要 summary-of-steps
要將PDF文檔轉換為PostScript檔案,請執行以下步驟:
- 包含專案檔案。
- 建立轉換PDF服務客戶端。
- 參考PDF文檔以轉換為PostScript檔案。
- 設定轉換執行時間選項。
- 將PDF文檔轉換為PostScript檔案。
- 儲存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檔案。
另請參閱
使用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
物件。
- 建立
-
參考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
方法,並傳遞下列值:- 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
使用Web服務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表單使用者名稱指派給欄位
-
-
參考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
方法,並傳遞下列值:- 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文檔轉換為影像。 會傳回包含影像的集合物件。
從集合中擷取影像檔案
您可以從轉換PDF服務傳回的集合物件擷取影像檔案。 集合中的每個元素都是 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
物件,並儲存每個影像檔案。
- 決定
另請參閱