1、申请会员ID:callmeshilin
2、个人邮箱:callmeshilin@163.com
3、原创技术文章:.net动态库强签名去除方法
最新版FastReport 2022 net报表库去水印去页数限制方法!!!
从官网下载最新版FastReport安装,然后用dnspy打开fastreport.dll文件。
1. 全局搜索`GetPagesCount`方法,可以看到页数限制为5,将代码修改如下:
[C#] 纯文本查看 复制代码 private int GetPagesCount(List<int> pages)
{
return pages.Count;
}
这样可以去除页面打印页数限制。
2. 全局搜索`PrintPage`方法,删除如下代码块,可以去掉水印。
[C#] 纯文本查看 复制代码 using (Watermark watermark = new Watermark())
{
watermark.Text = string.Concat(new string[]
{
typeof(Duplex).Name[0].ToString(),
typeof(Exception).Name[0].ToString(),
typeof(Margins).Name[0].ToString(),
typeof(object).Name[0].ToString(),
" ",
typeof(ValueType).Name[0].ToString(),
typeof(Exception).Name[0].ToString(),
typeof(Rectangle).Name[0].ToString(),
typeof(ShapeKind).Name[0].ToString(),
typeof(ICloneable).Name[0].ToString(),
typeof(object).Name[0].ToString(),
typeof(NonSerializedAttribute).Name[0].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`方法,删除如下代码块。
[C#] 纯文本查看 复制代码 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[0].ToString(),
typeof(Exception).Name[0].ToString(),
typeof(Math).Name[0].ToString(),
typeof(object).Name[0].ToString(),
" ",
typeof(ValueType).Name[0].ToString(),
typeof(Exception).Name[0].ToString(),
typeof(Rectangle).Name[0].ToString(),
typeof(ShapeKind).Name[0].ToString(),
typeof(ICloneable).Name[0].ToString(),
typeof(object).Name[0].ToString(),
typeof(NonSerializedAttribute).Name[0].ToString()
});
}
4. 全局搜索`PageNumbersParser`方法,删除如下代码块,可以去掉水印。
[C#] 纯文本查看 复制代码 num = 5;
for (int j = 0; j < this.pages.Count; j++)
{
if (this.pages[j] >= num || this.pages[j] < 0)
{
this.pages.RemoveAt(j);
j--;
}
}
以上修改完毕。就可以保存模块。测试发现,所有限制都解除了。
|