【问题标题】:How to make some action on specific file before downloading it?如何在下载之前对特定文件进行一些操作?
【发布时间】:2012-07-12 12:41:54
【问题描述】:

如果我有一些报告,并且我想在用户通过 (Export to pdf file) 下载此报告之前执行特定操作(例如在此 pdf 中添加水印)。

如何处理导出按钮?


注意:我想要一些通用的方法,因为我有很多报告,我不想重复代码。我只想在下载之前对pdf 文件执行特定的行为。

【问题讨论】:

    标签: c# asp.net handler reportviewer rdlc


    【解决方案1】:

    假设您已经可以访问没有水印的原始 PDF:

    实现类似的东西;

    How can I insert an image with iTextSharp in an existing PDF?

    重定向或二进制下载带水印的文件。

    完成。

    【讨论】:

      【解决方案2】:

      最简单的方法是使用一个静态类,该类具有一个获取 pdf 文件和可能还有水印图像的方法,将其整理出来并传回。

      如果你想要更通用的东西,例如你想说密码保护和/或为 pdf 加水印,或者你有非 pdf 报告你想做一些事情。

      然后接口 IPrepareForExport 并在各种类型的“报告”上实现它,或者可能使用装饰器模式和一些属性。

      【讨论】:

        【解决方案3】:

        现在这不是一个容易实施的解决方案。但它是完全通用的。

        你应该实现一个Custom Report Renderer

        通过为 Reporting Services 创建呈现器,您可以将报表呈现为您选择的格式。

        只要您有报告导出,就可以使用它。

        看看这个博客:PDF watermark/background Rendering Extension for SSRS

        他已经为你想做的事情做了一个扩展。

        然后您可以通过编辑 RSReportServer.Config 文件来remove the existing rendering option 您不希望支持。

        您的报告数量无关紧要,因为这是一处配置更改。

        【讨论】:

          猜你喜欢
          • 2023-03-24
          • 2022-12-01
          • 1970-01-01
          • 2012-09-19
          • 1970-01-01
          • 1970-01-01
          • 2021-07-01
          • 2018-02-07
          • 1970-01-01
          相关资源
          最近更新 更多