轉帖|其它|編輯:郝浩|2011-10-25 14:10:47.000|閱讀 842 次
概述:PDF格局已經成為廣為應用的電子文檔互換格局標準。為了便于用戶在組織內和組織之間共享報表數 據,ActiveReports 6可以將生成的報表導出為PDF格局。
# 界面/圖表報表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
PDF格局已經成為廣為應用的電子文檔互換格局標準。為了便于用戶在組織內和組織之間共享報表數 據,ActiveReports 6可以將生成的報表導出為PDF格局。下面的代碼是ActiveReports 6導出PDF的簡單示例。
Private void btnExport_Click(Object sender, System.EventArgs e)
{
rptDataDynamics rpt = new rptDataDynamics();
DataDynamics.ActiveReports.Export.Pdf.PdfExport p = new DataDynamics.ActiveReports.Export.Pdf.PdfExport();
rpt.Run();
this.arv.Document = rpt.Document;
p.Export(rpt.Document, Application.StartupPath + "\p.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的限制。
例如,下面的示例代碼設置了用戶暗碼,并且容許用戶打印文檔:
p.Security.Encrypt = true;
p.Security.Use128Bit = true;
p.Security.UserPassword = "monkey";
p.Security.Permissions = DataDynamics.ActiveReports.Export.Pdf.PdfPermissions.AllowPrint;
p.Export(rpt.Document, Application.StartupPath + "\p.pdf");
二.導出帶數字的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文件時輸入的暗碼。
// ImageText signature.
p.Signature.VisibilityType = DataDynamics.ActiveReports.Export.Pdf.Signing.VisibilityType.ImageText;
// Bounds (Container of Text & Image).
p.Signature.Stamp.Bounds = new RectangleF(0, 0, 4, 1);
// Text area.
p.Signature.Stamp.TextAlignment = DataDynamics.ActiveReports.Export.Pdf.Signing.Alignment.Left;
p.Signature.Stamp.Font = new Font("Comic Sans MS", 8, FontStyle.Regular);
// Note: Specify (x, y) in relative coordinate Bounds top-left.
p.Signature.Stamp.TextRectangle = new RectangleF(1, 0, 3, 1);
// Image area.
p.Signature.Stamp.Image =
Image.FromFile("D:\Temp\PowerToolsLogo.jpg");
p.Signature.Stamp.ImageAlignment =
DataDynamics.ActiveReports.Export.Pdf.Signing.Alignment.Center;
// Note: Specify (x, y) in relative coordinate Bounds top-left.
p.Signature.Stamp.ImageRectangle = new RectangleF(0, 0, 1, 1);
// Set certificate & password.
p.Signature.Certificate =
new System.Security.Cryptography.X509Certificates.X509Certificate2
("D:\Temp\AllanCert.pfx", "123");
// set the certifiation level
p.Signature.CertificationLevel = DataDynamics.ActiveReports.
Export.Pdf.Signing.CertificationLevel.NoChangesAllowed;
//Signature items.
p.Signature.Contact =
new DataDynamics.ActiveReports.Export.
Pdf.Signing.SignatureField<string>
(“[email]tool-sales.cn@grapecity.com[/email]”, true);
p.Signature.SignDate =
new DataDynamics.ActiveReports.Export.Pdf.Signing.SignatureField
<System.DateTime>(System.DateTime.Now, true);
p.Export(rpt.Document, Application.StartupPath + \p.pdf);
本站文章除注明轉載外,均為本站原創或翻譯。歡迎任何形式的轉載,但請務必注明出處、不得修改原文相關鏈接,如果存在內容上的異議請郵件反饋至chenjj@fc6vip.cn
文章轉載自:網絡轉載