使用Java API套用使用許可權
使用Acrobat Reader DC擴充功能API (Java)將使用許可權套用至PDF檔案:
-
包含專案檔案
在您的Java專案的類別路徑中包含使用者端JAR檔案,例如adobe-reader-extensions-client.jar。
-
建立Acrobat Reader DC擴充功能使用者端物件。
- 建立包含連線屬性的
ServiceClientFactory
物件。 - 使用它的建構函式並傳遞
ServiceClientFactory
物件來建立ReaderExtensionsServiceClient
物件。
- 建立包含連線屬性的
-
擷取PDF檔案。
- 使用它的建構函式並傳遞指定PDF檔案位置的字串值,建立代表PDF檔案的
java.io.FileInputStream
物件。 - 使用它的建構函式並傳遞
java.io.FileInputStream
物件來建立com.adobe.idp.Document
物件。
- 使用它的建構函式並傳遞指定PDF檔案位置的字串值,建立代表PDF檔案的
-
指定要套用的使用許可權。
- 使用建構函式建立代表使用許可權的
UsageRights
物件。 - 針對要套用的每個使用許可權,叫用屬於
UsageRights
物件的對應方法。 例如,若要新增enableFormFillIn
使用許可權,請叫用UsageRights
物件的enableFormFillIn
方法並傳遞true
。 (針對要套用的每個使用許可權,重複此步驟)。
- 使用建構函式建立代表使用許可權的
-
套用使用許可權至PDF檔案。
-
使用物件的建構函式建立
ReaderExtensionsOptionSpec
物件。 此物件包含Acrobat Reader DC擴充功能服務所需的執行階段選項。 叫用此建構函式時,您必須指定下列值:- 包含要套用至檔案之使用許可權的
UsageRights
物件。 - 字串值,指定在Adobe Reader 7.x中開啟許可權啟用PDF檔案時,使用者看到的訊息。Adobe Reader 8.0中未顯示此訊息。
- 包含要套用至檔案之使用許可權的
-
透過叫用
ReaderExtensionsServiceClient
物件的applyUsageRights
方法並傳遞下列值,將使用許可權套用至PDF檔案:- 包含套用使用許可權之PDF檔案的
com.adobe.idp.Document
物件。 - 字串值,指定可讓您套用使用許可權的認證別名。
- 字串值,指定對應的密碼值。 (目前會忽略此引數。 您可以傳遞
null
。)
- 包含套用使用許可權之PDF檔案的
-
包含執行階段選項的
ReaderExtensionsOptionSpec
物件。
applyUsageRights
方法傳回包含已啟用許可權的PDF檔案的com.adobe.idp.Document
物件。 -
-
儲存啟用許可權的PDF檔案。
- 建立
java.io.File
物件,並確定副檔名為.pdf。 - 叫用
com.adobe.idp.Document
物件的copyToFile
方法,將com.adobe.idp.Document
物件的內容複製到檔案(請確定您使用的是applyUsageRights
方法傳回的com.adobe.idp.Document
物件)。
- 建立
使用網站服務API套用使用許可權
使用Acrobat Reader DC擴充功能API (Web服務)將使用許可權套用至PDF檔案:
-
包含專案檔案。
建立使用MTOM的Microsoft .NET專案。 確定您使用下列WSDL定義:
http://localhost:8080/soap/services/ReaderExtensionsService?WSDL&lc_version=9.0.1
。注意
將localhost
取代為主控AEM Forms之伺服器的IP位址。 -
建立Acrobat Reader DC擴充功能使用者端物件。
-
使用預設建構函式建立
ReaderExtensionsServiceClient
物件。 -
使用
System.ServiceModel.EndpointAddress
建構函式建立ReaderExtensionsServiceClient.Endpoint.Address
物件。 將指定WSDL的字串值傳遞至AEM Forms服務(例如,http://localhost:8080/soap/services/ReaderExtensionsService?blob=mtom
)。 請確定您指定了?blob=mtom
。) -
取得
ReaderExtensionsServiceClient.Endpoint.Binding
欄位的值,以建立System.ServiceModel.BasicHttpBinding
物件。 將傳回值轉換為BasicHttpBinding
。 -
將
System.ServiceModel.BasicHttpBinding
物件的MessageEncoding
欄位設為WSMessageEncoding.Mtom
。 此值可確保使用MTOM。 -
執行下列工作來啟用基本的HTTP驗證:
- 將AEM表單使用者名稱指派給欄位
ReaderExtensionsServiceClient.ClientCredentials.UserName.UserName
。 - 將對應的密碼值指派給欄位
ReaderExtensionsServiceClient.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
方法,以串流資料填入位元組陣列。 傳遞位元組陣列、起始位置以及要讀取的資料流長度。 - 以位元組陣列的內容指派物件的
MTOM
屬性,填入BLOB
物件。
- 使用物件的建構函式建立
-
指定要套用的使用許可權。
- 使用建構函式建立代表使用許可權的
UsageRights
物件。 - 針對要套用的每個使用許可權,將值
true
指派給屬於UsageRights
物件的對應資料成員。 例如,若要新增enableFormFillIn
使用許可權,請將true
指派給UsageRights
物件的enableFormFillIn
資料成員。 (針對要套用的每個使用許可權,重複此步驟)。
- 使用建構函式建立代表使用許可權的
-
套用使用許可權至PDF檔案。
-
使用物件的建構函式建立
ReaderExtensionsOptionSpec
物件。 此物件包含Acrobat Reader DC擴充功能服務所需的執行階段選項。 -
將
UsageRights
物件指派給ReaderExtensionsOptionSpec
物件的usageRights
資料成員。 -
將字串值指派給
ReaderExtensionsOptionSpec
物件的message
資料成員,該字串值會指定當使用者在Adobe Reader中開啟啟用許可權的PDF檔案時看到的訊息。 -
透過叫用
ReaderExtensionsServiceClient
物件的applyUsageRights
方法並傳遞下列值,將使用許可權套用至PDF檔案:- 包含套用使用許可權之PDF檔案的
BLOB
物件。 - 字串值,指定可讓您套用使用許可權的認證別名。
- 字串值,指定對應的密碼值。 (目前會忽略此引數。 您可以傳遞
null
。)
- 包含套用使用許可權之PDF檔案的
-
包含執行階段選項的
ReaderExtensionsOptionSpec
物件。
applyUsageRights
方法傳回包含已啟用許可權的PDF檔案的BLOB
物件。 -
-
儲存啟用許可權的PDF檔案。
- 透過叫用它的建構函式來建立
System.IO.FileStream
物件。 傳遞代表已啟用許可權之PDF檔案之檔案位置的字串值。 - 建立位元組陣列,儲存
applyUsageRights
方法傳回的BLOB
物件的資料內容。 取得BLOB
物件的MTOM
資料成員的值,以填入位元組陣列。 - 透過叫用它的建構函式並傳遞
System.IO.FileStream
物件來建立System.IO.BinaryWriter
物件。 - 呼叫
System.IO.BinaryWriter
物件的Write
方法並傳遞位元組陣列,將位元組陣列的內容寫入PDF檔案。
- 透過叫用它的建構函式來建立
從PDF檔案中移除使用許可權
您可以從啟用許可權的檔案中移除使用許可權。 若要在啟用許可權的PDF檔案上執行其他AEM Forms作業,也必須移除其使用許可權。 例如,在設定使用許可權之前,您必須以數位方式簽署(或認證)PDF檔案。 因此,如果要在啟用許可權的檔案上執行操作,您必須從PDF檔案中移除使用許可權,執行其他操作,例如以數位方式簽署檔案,然後將使用許可權重新套用至檔案。
步驟摘要
若要從啟用許可權的PDF檔案中移除使用許可權,請執行下列步驟:
- 包含專案檔案。
- 建立Acrobat Reader DC擴充功能使用者端物件。
- 擷取已啟用許可權的PDF檔案。
- 從PDF檔案中移除使用許可權。
- 儲存PDF檔案。
包含專案檔
將必要的檔案納入您的開發專案中。 如果您使用Java建立使用者端應用程式,則請包含必要的JAR檔案。 如果您使用Web服務,請務必包含Proxy檔案。
建立Acrobat Reader DC擴充功能使用者端物件
您必須先建立Acrobat Reader DC擴充功能服務使用者端物件,才能以程式設計方式執行Acrobat Reader DC擴充功能服務作業。 如果您使用Java API,請建立ReaderExtensionsServiceClient
物件。 如果您使用Acrobat Reader DC擴充功能Web服務API,請建立ReaderExtensionsServiceService
物件。
擷取啟用許可權的PDF檔案
擷取啟用許可權的PDF檔案以移除使用許可權。
從PDF檔案中移除使用許可權
擷取啟用許可權的PDF檔案後,您可以移除使用許可權。 移除使用許可權後,在Adobe Reader中檢視PDF檔案時,不會有任何額外的功能。
儲存PDF檔案
您可以將不再包含使用許可權的PDF檔案儲存為PDF檔案。 儲存為PDF檔案後,即可在Adobe Reader或Acrobat中檢視PDF檔案。
另請參閱
Acrobat Reader DC擴充功能服務API快速入門
使用Java API移除使用許可權
使用Acrobat Reader DC擴充功能API (Java),從已啟用許可權的PDF檔案中移除使用許可權:
-
包含專案檔案。
在您的Java專案的類別路徑中包含使用者端JAR檔案,例如adobe-reader-extensions-client.jar。
-
建立Acrobat Reader DC擴充功能使用者端物件。
使用它的建構函式並傳遞包含連線屬性的
ServiceClientFactory
物件來建立ReaderExtensionsServiceClient
物件。 -
擷取PDF檔案。
- 使用啟用許可權的PDF檔案的建構函式,並傳遞指定PDF檔案位置的字串值,來建立代表該文檔的
java.io.FileInputStream
物件。 - 使用它的建構函式並傳遞
java.io.FileInputStream
物件來建立com.adobe.idp.Document
物件。
- 使用啟用許可權的PDF檔案的建構函式,並傳遞指定PDF檔案位置的字串值,來建立代表該文檔的
-
從PDF檔案中移除使用許可權。
透過叫用
ReaderExtensionsServiceClient
物件的removeUsageRights
方法並傳遞包含啟用許可權的PDF檔案的com.adobe.idp.Document
物件,從PDF檔案中移除使用許可權。 此方法傳回的com.adobe.idp.Document
物件包含沒有使用許可權的PDF檔案。 -
套用使用許可權至PDF檔案。
- 建立
java.io.File
物件,並確定副檔名為。PDF。 - 叫用
Document
物件的copyToFile
方法,將Document
物件的內容複製到檔案(請確定您使用的是removeUsageRights
方法傳回的Document
物件)。
- 建立
使用網站服務API移除使用許可權
使用Acrobat Reader DC擴充功能API (Web服務),從已啟用許可權的PDF檔案中移除使用許可權:
-
包含專案檔案。
建立使用MTOM的Microsoft .NET專案。 確定您使用下列WSDL定義:
http://localhost:8080/soap/services/ReaderExtensionsService?WSDL&lc_version=9.0.1
。注意
將localhost
取代為主控AEM Forms之伺服器的IP位址。 -
建立Acrobat Reader DC擴充功能使用者端物件。
-
使用預設建構函式建立
ReaderExtensionsServiceClient
物件。 -
使用
System.ServiceModel.EndpointAddress
建構函式建立ReaderExtensionsServiceClient.Endpoint.Address
物件。 將指定WSDL的字串值傳遞至AEM Forms服務(例如,http://localhost:8080/soap/services/ReaderExtensionsService?blob=mtom
)。 請確定您指定了?blob=mtom
。) -
取得
ReaderExtensionsServiceClient.Endpoint.Binding
欄位的值,以建立System.ServiceModel.BasicHttpBinding
物件。 將傳回值轉換為BasicHttpBinding
。 -
將
System.ServiceModel.BasicHttpBinding
物件的MessageEncoding
欄位設為WSMessageEncoding.Mtom
。 此值可確保使用MTOM。 -
執行下列工作來啟用基本的HTTP驗證:
- 將AEM表單使用者名稱指派給欄位
ReaderExtensionsServiceClient.ClientCredentials.UserName.UserName
。 - 將對應的密碼值指派給欄位
ReaderExtensionsServiceClient.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
方法,並傳遞要讀取的位元組陣列、起始位置和資料流長度,以資料流資料填入位元組陣列。 - 以位元組陣列的內容指派物件的
MTOM
屬性,填入BLOB
物件。
- 使用物件的建構函式建立
-
從PDF檔案中移除使用許可權。
透過叫用
ReaderExtensionsServiceClient
物件的removeUsageRights
方法並傳遞包含啟用許可權的PDF檔案的BLOB
物件,從PDF檔案中移除使用許可權。 此方法傳回的BLOB
物件包含沒有使用許可權的PDF檔案。 -
套用使用許可權至PDF檔案。
- 建立
System.IO.FileStream
物件,方法為叫用其建構函式,並傳遞代表PDF檔案位置的字串值。 - 建立位元組陣列,儲存
removeUsageRights
方法傳回的BLOB
物件的資料內容。 取得BLOB
物件的MTOM
資料成員的值,以填入位元組陣列。 - 透過叫用它的建構函式並傳遞
System.IO.FileStream
物件來建立System.IO.BinaryWriter
物件。
- 建立
正在擷取認證資訊
您可以擷取用來將使用許可權套用至已啟用許可權的PDF檔案的認證相關資訊。 透過擷取認證的相關資訊,您可以取得資訊,例如憑證不再有效的日期。
步驟摘要
若要擷取用於套用使用許可權至PDF檔案的認證相關資訊,請執行下列步驟:
- 包含專案檔案。
- 建立Acrobat Reader DC擴充功能使用者端物件。
- 擷取已啟用許可權的PDF檔案。
- 擷取認證的相關資訊。
包含專案檔
將必要的檔案納入您的開發專案中。 如果您使用Java建立使用者端應用程式,則請包含必要的JAR檔案。 如果您使用Web服務,請務必包含Proxy檔案。
建立Acrobat Reader DC擴充功能使用者端物件
您必須先建立Acrobat Reader DC擴充功能服務使用者端物件,才能以程式設計方式執行Acrobat Reader DC擴充功能服務作業。 如果您使用Java API,請建立ReaderExtensionsServiceClient
物件。 如果您使用Acrobat Reader DC擴充功能Web服務API,請建立ReaderExtensionsServiceService
物件。
擷取啟用許可權的PDF檔案
擷取啟用許可權的PDF檔案,以擷取有關認證的資訊。 您也可以指定認證的別名,以擷取認證的相關資訊;不過,如果您要擷取用於套用使用許可權至特定啟用許可權的PDF檔案的認證相關資訊,則必須擷取檔案。
擷取認證的相關資訊
擷取啟用許可權的PDF檔案後,您可以取得用來套用使用許可權之認證的相關資訊。 您可以取得下列關於認證的資訊:
- 開啟許可權啟用的PDF檔案時,Adobe Reader中顯示的訊息。
- 認證不再有效的日期。
- 認證無效的日期。
- 為此許可權啟用的PDF檔案設定的使用許可權。
- 已使用認證的次數。
-
包含專案檔案。
在您的Java專案的類別路徑中包含使用者端JAR檔案,例如adobe-reader-extensions-client.jar。
-
建立Acrobat Reader DC擴充功能使用者端物件。
使用它的建構函式並傳遞包含連線屬性的
ServiceClientFactory
物件來建立ReaderExtensionsServiceClient
物件。 -
擷取PDF檔案。
- 使用啟用許可權的PDF檔案的建構函式,並傳遞字串值(指定啟用許可權的PDF檔案的位置),來建立代表啟用許可權之檔案的
java.io.FileInputStream
物件。 - 使用它的建構函式並傳遞
java.io.FileInputStream
物件來建立com.adobe.idp.Document
物件。
- 使用啟用許可權的PDF檔案的建構函式,並傳遞字串值(指定啟用許可權的PDF檔案的位置),來建立代表啟用許可權之檔案的
-
從PDF檔案中移除使用許可權。
- 透過叫用
ReaderExtensionsServiceClient
物件的getDocumentUsageRights
方法並傳遞包含啟用許可權的PDF檔案的com.adobe.idp.Document
物件,擷取用於套用使用許可權至PDF檔案的認證相關資訊。 此方法傳回包含認證資訊的GetUsageRightsResult
物件。 - 叫用
GetUsageRightsResult
物件的getNotAfter
方法,擷取認證不再有效的日期。 此方法會傳回java.util.Date
物件,代表認證不再有效的日期。 - 叫用
GetUsageRightsResult
物件的getMessage
方法,擷取當啟用許可權的PDF檔案開啟時Adobe Reader中顯示的訊息。 此方法會傳回代表訊息的字串值。
- 透過叫用
使用網站服務API擷取認證資訊
使用Acrobat Reader DC擴充功能API (Web服務)擷取認證資訊:
-
包含專案檔案。
建立使用MTOM的Microsoft .NET專案。 確定您使用下列WSDL定義:
http://localhost:8080/soap/services/ReaderExtensionsService?WSDL&lc_version=9.0.1
。注意
將localhost
取代為主控AEM Forms之伺服器的IP位址。 -
建立Acrobat Reader DC擴充功能使用者端物件。
-
使用預設建構函式建立
ReaderExtensionsServiceClient
物件。 -
使用
System.ServiceModel.EndpointAddress
建構函式建立ReaderExtensionsServiceClient.Endpoint.Address
物件。 將指定WSDL的字串值傳遞至AEM Forms服務(例如,http://localhost:8080/soap/services/ReaderExtensionsService?blob=mtom
)。 請確定您指定了?blob=mtom
。) -
取得
ReaderExtensionsServiceClient.Endpoint.Binding
欄位的值,以建立System.ServiceModel.BasicHttpBinding
物件。 將傳回值轉換為BasicHttpBinding
。 -
將
System.ServiceModel.BasicHttpBinding
物件的MessageEncoding
欄位設為WSMessageEncoding.Mtom
。 此值可確保使用MTOM。 -
執行下列工作來啟用基本的HTTP驗證:
- 將AEM表單使用者名稱指派給欄位
ReaderExtensionsServiceClient.ClientCredentials.UserName.UserName
。 - 將對應的密碼值指派給欄位
ReaderExtensionsServiceClient.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
方法,並傳遞要讀取的位元組陣列、起始位置和資料流長度,以資料流資料填入位元組陣列。 - 以位元組陣列的內容指派物件的
MTOM
屬性,填入BLOB
物件。
- 使用物件的建構函式建立
-
從PDF檔案中移除使用許可權。
- 透過叫用
ReaderExtensionsServiceClient
物件的getDocumentUsageRights
方法並傳遞包含啟用許可權的PDF檔案的com.adobe.idp.Document
物件,擷取用於套用使用許可權至PDF檔案的認證相關資訊。 此方法會傳回包含認證資訊的GetUsageRightsResult
物件。 - 取得
GetUsageRightsResult
物件的notAfter
資料成員的值,以擷取認證不再有效的日期。 此資料成員的資料型別為System.DateTime
。 - 取得
GetUsageRightsResult
物件的message
資料成員的值,擷取在Adobe Reader中開啟啟用許可權的PDF檔案時顯示的訊息。 此資料成員的資料型別是字串。 - 透過取得
GetUsageRightsResult
物件的useCount
資料成員的值來擷取使用認證的次數。 此資料成員的資料型別是整數。
- 透過叫用