日期:2009-06-09  浏览次数:20584 次

文章里的知识针对:
Visual Studio .NET 内置的水晶报表
应用于:
仅对被报告的版本
图象质量

Web 查看器

大纲

Web 程序使用 Visual Studio .NET 内置的水晶报表作为报表开发工具。

当你在 Web 上查看报表时,默认情况下图象和图表的分辨率被减小到 96 dpi(为了提高性能和下载速度)。

如何改善报表中图形的图象质量呢?

解决方案

通过改变系统注册表中图象的放大倍数,你可以改善报表中图形的图象质量。

==========
警告:

以下的决定包括编辑注册表。错误的使用注册表编辑器会导致严重问题,你可能需要重装 Windows 操作系统。使用注册表将由你自己承担风险。

强烈建议你在编辑注册表之前备份注册表文件(在 Win9x 计算机上是 System.dat 和 User.dat)。

要了解如何编辑注册表的知识

阅读注册表编辑器 (Regedit.exe) 的联机帮助主题“更改项和值”。

==========

默认情况下,放大倍数设置存放在注册表根键 HKEY_CURRENT_USER,并且仅对当前登录用户有效。可是,当用户通过 Web 被 IIS 验证时,用户没有 HKEY_CURRENT_USER 根键的访问权。
因此,放大倍数设置必须被复制到 HKEY_LOCAL_MACHINE 根键才能起作用。

要将放大倍数设置复制到 HKEY_LOCAL_MACHINE 根键:

1. 单击 开始 > 运行,输入“Regedit”并单击“确定”。

2. 进入注册表编辑器,并定位到下面的子键:
HKEY_CURRENT_USER\SOFTWARE\Seagate Software\Crystal Reports\Export

3. 右击“Export”子键,选择“新建”并选定“双字节值”。

4. 将项命名为 BitMapMagnifNumerator,然后双击项,并给项赋一个介于 1 和 4 之间的十进制值(4 代表最高质量的位图),单击“确定”。

5. 重复步骤 3 和 4 创建项 BitMapMagnifDenominator,并赋值为“1”。

6. 选中注册表子键 Export,然后单击“注册表”菜单,并选择“导出注册表文件…”

输入文件名“Export”,确保“导出范围”里选中了“选定的分支”单选按钮,并且该分支指向“Export”子键。

7. 单击“保存”将注册表子键保存到桌面上。关闭注册表编辑器。

8. 编辑桌面上的注册表子键,右击注册表文件并选择“编辑”。文件将在记事本里打开,内容类似如下:

Windows Registry Editor Version 5.00

[HKEY_CURRENT_USER\Software\Seagate Software\Crystal Reports\Export]
"MailDestDLL"=""
"MailDestType"=dword:00000000
"BitMapMagnifNumerator"=dword:00000001
"BitMapMagnifDenominator"=dword:00000001

9. 编辑文件,将默认根键从 HKEY_CURRENT_USER 改为 HKEY_LOCAL_MACHINE。

要提高图象质量,修改双字节值 “BitMapMagnifNumerator”和“BitMapMagnifDenominator”。比如,你可以将分子 (BitMapMagnifNumerator) 设置为 3,分母 (BitMapMagnifDenominator) 不变仍为 1,这将改善质量为原来的 3 倍左右。最终的注册表子键类似如下:

Windows Registry Editor Version 5.00

[HKEY_CURRENT_USER\Software\Seagate Software\Crystal Reports\Export]
"MailDestDLL"=""
"MailDestType"=dword:00000000
"BitMapMagnifNumerator"=dword:00000003
"BitMapMagnifDenominator"=dword:00000001

10. 修改完毕后,保存并关闭文件。

11. 双击文件 Export.reg 将新的子键和值导入注册表。IIS 必须重新启动以使注册表改动生效。

通过提高水晶报表中图象的放大倍数,你同样增加了报表中所有位图的分辨率和文件大小。这将轻微的减小性能和下载速度。

=============
注意:

要增加 Windows 程序的图象质量:

1. 单击 开始 > 运行,并输入“Regedit”,然后单击“确定”。

2. 进入注册表编辑器,并定位到下面的子键:
HKEY_CURRENT_USER\SOFTWARE\Seagate Software\Crystal Reports\Export

3. 在注册表的右侧窗格双击“BitMapMagnifNumerator”项,并在“数值数据”行输入“3”。

4. 单击“确定”,关闭注册表编辑器。