发表于 2022-9-30 15:04

申请会员ID:callmeshilin 请审核!


1、申请会员ID:callmeshilin
2、个人邮箱:callmeshilin@163.com
3、原创技术文章:.net动态库强签名去除方法


https://static.52pojie.cn/static/image/hrline/4.gifhttps://static.52pojie.cn/static/image/hrline/4.gif


最新版FastReport 2022 net报表库去水印去页数限制方法!!!

从官网下载最新版FastReport安装,然后用dnspy打开fastreport.dll文件。

1. 全局搜索`GetPagesCount`方法,可以看到页数限制为5,将代码修改如下:

private int GetPagesCount(List<int> pages)
{
    return pages.Count;
}

这样可以去除页面打印页数限制。


2. 全局搜索`PrintPage`方法,删除如下代码块,可以去掉水印。

using (Watermark watermark = new Watermark())
{
        watermark.Text = string.Concat(new string[]
        {
                typeof(Duplex).Name.ToString(),
                typeof(Exception).Name.ToString(),
                typeof(Margins).Name.ToString(),
                typeof(object).Name.ToString(),
                " ",
                typeof(ValueType).Name.ToString(),
                typeof(Exception).Name.ToString(),
                typeof(Rectangle).Name.ToString(),
                typeof(ShapeKind).Name.ToString(),
                typeof(ICloneable).Name.ToString(),
                typeof(object).Name.ToString(),
                typeof(NonSerializedAttribute).Name.ToString()
        });
        watermark.DrawText(frpaintEventArgs, new RectangleF(0f, 0f, base.Page.PaperWidth * Units.Millimeters, base.Page.PaperHeight * Units.Millimeters), base.Report, true);
}

注意:这个方法一共出现在3处FastReport.Print.DefaultPrintController/ScalePrintController/SplitPrintController,都需要去除才可以。
3. 全局搜索`GetOverlayPage`方法,删除如下代码块。


if (page != null)
                        {
                                OverlayBand overlayBand = new OverlayBand();
                                overlayBand.Parent = page;
                                overlayBand.Bounds = new RectangleF(0f, -page.TopMargin * Units.Millimeters, 200f, 20f);
                                TextObject textObject = new TextObject();
                                textObject.Parent = overlayBand;
                                textObject.Bounds = new RectangleF(0f, 0f, Units.Millimeters * 50f, 20f);
                                textObject.Text = string.Concat(new string[]
                                {
                                        typeof(double).Name.ToString(),
                                        typeof(Exception).Name.ToString(),
                                        typeof(Math).Name.ToString(),
                                        typeof(object).Name.ToString(),
                                        " ",
                                        typeof(ValueType).Name.ToString(),
                                        typeof(Exception).Name.ToString(),
                                        typeof(Rectangle).Name.ToString(),
                                        typeof(ShapeKind).Name.ToString(),
                                        typeof(ICloneable).Name.ToString(),
                                        typeof(object).Name.ToString(),
                                        typeof(NonSerializedAttribute).Name.ToString()
                                });
                        }


4. 全局搜索`PageNumbersParser`方法,删除如下代码块,可以去掉水印。


num = 5;
for (int j = 0; j < this.pages.Count; j++)
{
      if (this.pages >= num || this.pages < 0)
      {
          this.pages.RemoveAt(j);
          j--;
      }
}

以上修改完毕。就可以保存模块。测试发现,所有限制都解除了。

Hmily 发表于 2022-10-3 20:57

抱歉,未能达到申请要求,申请不通过,可以关注论坛官方微信(吾爱破解论坛),等待开放注册通知。
页: [1]
查看完整版本: 申请会员ID:callmeshilin 请审核!