C# FastReport打印图片
private void Form1_Load(object sender, EventArgs e)
{
Report report = new Report();
report.Load("2.frx");
//这样写
report.RegisterData(CommonCode.GetDataTable(), "person");
//或这样写
//report.RegisterData(CommonCode.GetDataSet());
//report.GetDataSource(CommonCode.GetDataSet().Tables[0].TableName).Enabled = true;
report.Parameters[0].Value = @"pic\130323199310214321.jpg";
((PictureObject)report.FindObject("Picture1")).ImageLocation = @"pic\13032319931021142X.jpg";//就这么写上,再在模板中拖一个Picture1控件
report.Preview = previewControl1;
report.Prepare();
report.ShowPrepared();
}
引自:
今天客户提出一个新的需求,需要打印图片,每次打印的图片可能是不一样的,这就需要动态的替换图片了,在网上找了一下就找到答案了,有些细节也是需要注意的,现在记录一下,方便自己以后查看,同时也希望能够帮助遇到同样问题的小伙伴们,谢谢。
FastReport不支持打印Base64、二进制、本地图片,只支持打印网络图片,PictureObject对象属性ImageLocation,以下是全部代码
public Report report = new Report();
//加载报表模板
report.Load(Path.Combine(Application.StartupPath, "test.frx"));
//设置打印第一页
report.PrintSettings.PageNumbers = "1";
//默认不显示打印机选择页面
report.PrintSettings.ShowDialog = false;
//打印图片
((PictureObject)report.FindObject("Picture1")).ImageLocation = "http://a.hiphotos.baidu.com/image/pic/item/838ba61ea8d3fd1fc9c7b6853a4e251f94ca5f46.jpg";
//当前操作打印机
report.PrintSettings.Printer = cbPrinter.SelectedText;
report.Print();