安添加ActiveReports 6导出PDF时的安设置以及数字签名

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");
}

自身之部署

centos6.7+nginx1.8+php5.3 我之php是事先伪装好之。yum安装,网上的课很多。

 

nginx安装

自这里运用nginx的yum在线安装

  1. 添加源

wget
http://nginx.org/packages/centos/6/noarch/RPMS/nginx-release-centos-6-0.el6.ngx.noarch.rpm

  1. 安装源库

chmod +x nginx-release-centos-6-0.el6.ngx.noarch.rpm
rpm -i nginx-release-centos-6-0.el6.ngx.noarch.rpm

  1. 安装nginx

yum -y install nginx

  1. 设置到位后的默认配置文件路径

默认nginx配置文件: /etc/nginx/nginx.conf 【nginx主要的布置文件】
默认nginx的ssl配置文件: /etc/nginx/conf.d/ssl.conf
【配置SSL证书的,也可合二为一到nginx.conf文件里】
默认nginx的虚拟主机配置文件: /etc/nginx/conf.d/virtual.conf
【如同Apache的虚拟主机配置,也足以合到nginx.conf文件里】
默认的web_root文件夹路径: /usr/share/nginx/html
【web目录夹,放置Magento主程序】

  1. 配置iptables

iptables -I INPUT 5 -p tcp –dport 80 -j ACCEPT
(这个手续,我前机器上早已装过apache所以就忽略了)

  1. 启动nginx

service nginx start
(如果无权力,请加上sudo,即 sudo service nginx start)

  1. 安开启启动:

chkconfig nginx on

打开IP地址 可见“Welcome to nginx!”表示安装成功。

=============================================================

此外:如果nginx设置目录在另路线,一定要是给o+x的权杖,否则会报403forbidden

有点情况下,你或许需要针对表的情节进行一定水平的安保障,比如增加一个密码,或者想报表读者只能在线浏览而不是打印出来。ActiveReports
6在导出PDF时供了长安全权限设置。不仅如此,在ActiveReports 6
专业版中,你还是可以由此数字签名来表明文档的自与开创时间,已经文档是否让改等。

php安装配备

  1. 先期改nginx配置文件 /etc/nginx/conf.d/default.conf
    (修改前如果怕自己改变错了,可以先备份一下)

location / {
root /var/www/nginx_html;
index index.php index.html;
}
#error_page 404 /404.html;
# redirect server error pages to the static page /50x.html
#
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/html;
}
# proxy the PHP scripts to Apache listening on 127.0.0.1:80
#
#location ~ .php$ {
# proxy_pass http://127.0.0.1;
#}
# pass the PHP scripts to FastCGI server listening on
127.0.0.1:9000
#
location ~ .php$ {
root html;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME
/var/www/nginx_html$fastcgi_script_name;
include fastcgi_params;
}
注nginx
是透过9000端口夺追寻php的,现在只是nginx去摸php,php是怎么找到nginx的啊?要布局php-fpm。

自己修改了网站路径 root /var/www/nginx_html
大家以窜的时段,记得要修改一下文本夹的权。

  1. php配置
    急需装一下php-fpm

yum -y install php-fpm

唯恐以当时前面用装一下其他的借助:pcre, openssl,zlib 等等。

修改php-fpm配置 vim
/etc/php-fpm.d/www.conf:

; Unix user/group of processes

; Note: The user is mandatory. If the group is not set, the default
user’s group

; will be used.

; RPM: apache Choosed to be able to access some dir as httpd

user = nginx

; RPM: Keep a group allowed to write in log dir.

group = nginx

php通过php-fpm去开9000端口夺监听nginx。

 

最后,配置都改完了随后,重开或启动服务

chkconfig php-fpm on #设置php-fpm自启动
service nginx restart #再度开动nginx
service php-fpm start #启动php-fpm

一.导出带安全维护之PDF
类DataDynamics.ActiveReports.Export.Pdf.PdfExport的Security成员用来指定导出PDF的平安保障装置,主要概括:

搞定!

  1. Encrypt: 设置或取得一个价值,该值决定是否针对导出的PDF加密
  1. OwnerPassword: 
    PDF拥有者密码。在开辟PDF时只要输入是密码,则操作权限不被下面的Permissions设置限。
  1. Permissions:
    指定用户指向PDF的操作权限,包括是否可以拷贝、是否可以打印、是否足以批注、是否足以改内容相当。
  1. 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 from 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 from 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);

  

 

上述变化的表文件于Acrobat Reader中显如下(左上角是数字签名):
图片 1

末段提醒一点,安全保护和数字签名不克同时以。

 

重多关于
ActiveReports
使用方法以及技艺的文章,请参见:葡萄城出品技术社区 ActiveReports
知识库与精华区