本檔案中的範例和範例僅適用於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中介紹的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檔案。
另請參閱
使用轉換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
方法並傳遞下列值:
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
.參照要轉換成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
方法並傳遞下列值:
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檔案轉換為影像。 會傳回包含影像的集合物件。
從集合擷取影像檔案
您可以從ConvertPDF服務傳回的集合物件擷取影像檔案。 集合中的每個元素都是 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
物件並儲存每個影像檔案。另請參閱