【问题标题】:Report in .rdlc format exported to PDF as read only C#以只读 C# 格式导出为 PDF 的 .rdlc 格式报告
【发布时间】:2017-08-06 06:36:25
【问题描述】:

我在 .NET 中的一个应用程序中工作,我正在使用导出为 PDF 的报告(.rdlc 格式)。出于安全目的,我的客户需要只读 PDF。我已经尝试过使用 FileAttributes 和 FileInfo 库。

我最大的问题是,当我看到我的 PDF 属性时,只读复选框被勾选,但我尝试使用 Adob​​e Acrobat 编辑字段,我能够做到。

有什么想法吗?

【问题讨论】:

  • 什么意思?您不会导出 rdlc 报告(或任何报告)。您渲染它并将结果输出到 PDF 文件中。文件的属性与 PDF 文件本身无关 - 只读属性意味着您无法修改文件,除非您将其删除,这很容易做到。使 PDF 本身受到保护是另一回事。我怀疑 VS 2010 有这个功能。
  • 你说得对,我不是在导出它,而是在渲染它。在此之后,我将在我的文件系统中呈现的内容保存为 PDF。然后,如果我用 Adob​​e Acrobat 打开文件,有一个工具“TouchUp”允许用户编辑文件中的文本框。这就是我想要阻止的。您知道通过编码不让这种情况发生的任何方法吗?谢谢。

标签: c# .net visual-studio-2010 rdlc


【解决方案1】:

我认为您需要创建 PDF/A 文件。它是 PDF 的单独存档标准(不是“只读”属性)。因此,当您打开 PDF/A 文件时,您会收到有关它是存档文件的通知。最终用户可以编辑任何文件,但在这种情况下“存档”属性将丢失。 不幸的是,SSRS 无法制作 PDF/A 文件。

【讨论】:

  • 你好梅尔。感谢你的回复。我已经解决了这个问题。会公布答案。
【解决方案2】:

可能,您应该寻找另一个报告生成器。像 Crystal 或 FastReport 之类的东西。我检查了 FR 并确保它可以创建 PDF/A。

【讨论】:

  • 你好 xaml。我现在给出了这个问题的答案。随意看看。我在“普通”报表解决方案(.rdlc 格式)之前使用了 Crystal Reports,但我无法导出为页面大小低于 A4 的 PDF。这就是我使用 .rdlc 格式的原因。
【解决方案3】:

这可以通过导入 iTextSharp 库并使用以下代码来完成:

如果不首先在文件系统中将 PDF 渲染并保存为虚拟文件(即具有所有权限),我无法解决我的问题。正如您在代码中看到的,之后,我引用了同一个虚拟文件并使用 iTextSharp 库中的静态方法 Encrypt() 更改它的权限。然后,我将完成的受限 PDF 保存到文件系统并删除虚拟的。

【讨论】:

    猜你喜欢
    • 2014-10-12
    • 2017-04-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多