天天看點

如何添加ActiveReports 6導出PDF時的安全設定和數字簽名

PDF格式已經成為廣為應用的電子文檔交換格式标準。為了便于使用者在組織内群組織之間共享報表資料,ActiveReports 6可以将生成的報表導出為PDF格式。下面的代碼是ActiveReports 6導出PDF的簡單示例。

 

有些情況下,你可能需要對報表的内容進行一定程度的安全保護,比如增加一個密碼,或者希望報表讀者隻能線上浏覽而不是列印出來。ActiveReports 6在導出PDF時提供了豐富安全權限設定。不僅如此,在ActiveReports 6 專業版中,你甚至可以通過數字簽名來表明文檔的來源和建立時間,已經文檔是否被修改等。

一.導出帶安全保護的PDF

類DataDynamics.ActiveReports.Export.Pdf.PdfExport的Security成員用來指定導出PDF的安全保護設定,主要包括:

1. Encrypt: 設定或擷取一個值,該值決定是否對導出的PDF加密

2. OwnerPassword:  PDF擁有者密碼。在打開PDF時如果輸入這個密碼,則操作權限不受下面的Permissions設定限制。

3. Permissions: 指定使用者對PDF的操作權限,包括是否可以拷貝、是否可以列印、是否可以批注、是否可以修改内容等。

4. UserPassword: 擷取或設定使用者密碼。使用者在打開PDF時需要輸入這個密碼,并且操作權限受Permissions的限制。

例如,下面的示例代碼設定了使用者密碼,并且允許使用者列印文檔:

  

二.導出帶數字簽名的PDF

數字簽名的作用與傳統的手寫簽名類似,用來表明誰對文檔進行了簽署。另外,簽名者還可以指定文檔被簽署後的修改權限。使用者可以檢視到文檔被簽名的時間,已經簽署後是否被修改過等資訊。

在專業版的ActiveReports裡,對PDF格式的資料輸出又有了增強功能。現在使用者可以将不可見的數字簽名或者可見的文字圖案加入到報表裡。通過16種屬性對數字簽名進行個性化設定, 用數字簽名驗證報表作者,還可通過Certification Level 來設定使用者通路權限。用時間印章功能建立第三方授權版本。這些新功能完全和Adobe的新安全機制相容。

為了建立數字簽名,你必須首先擁有一個有效的PKCS#12 證書檔案(*.pfx)。通常情況下,證書需要從專業數字簽名廠商獲得。如果是為了學習和了解ActiveReports的數字簽名功能,你可以使用如下步驟自己建立一個證書檔案:

1.用如下指令行操作建立一個證書

makecert -r -pe -n "CN=Your Name" -b 01/01/2000 -e 01/01/2099 -eku 1.3.6.1.5.5.7.3.3 -ss My

2.在IE浏覽器中選擇“工具---選項”菜單,在彈出的對話框中選擇“内容” 頁,然後點選“證書”按鈕,彈出證書對話框。

3.在證書對話框中按“導出”按鈕,導出包含私鑰的證書檔案,并記下你設定的密碼。

下面的代碼示例建立了一個包含文字和圖檔的數字簽名。使用前需要把證書檔案名替換為你建立的PFX檔案,并更改密碼為你建立PFX檔案時輸入的密碼。

上述生成的報表檔案在Acrobat Reader中顯示如下(左上角是數字簽名):

最後提醒一點,安全保護和數字簽名不能同時使用。

繼續閱讀