我用C#在VS2003下开发WINFORM程序,要将我的SELECT person.id as 编号,person.name as 姓名,person.photo as 照片 FROM PERSON WHERE PERSON.id=10 (其中photo 为本image 16)的一条记录结果添加入DataSet中,如何将记录中的文字和图片按指定的格式(如该条记录内容的每一个字段的打印的起始上边距和左边巨,图片的位置等)打印出来呢?
例按如下格式打印:                      编号:1005203077     照片:   |-----------|
                      姓名:张四                    |           |
                                                    |           |
                                                    |           |
                                                    |___________|
小弟菜鸟,请大峡给个完整的例子!!!

解决方案 »

  1.   

    以前用VB写,是用二进制的方式读取的,.net不知如何处理
      

  2.   


    你在csdn里搜一下,前段时间出现过这样的问题。
      

  3.   

    liuqm(blue) ,没找着合适的啊
      

  4.   

    方法有俩:
    1.直接画,来个PrintDocument类呀
    2.用报表吧,CrystalReport都不错的。
      

  5.   

    我用了自带的CrystalReport,如何用“推”的技术??
    我想把我用存储过程动态查询出来的结果 让CrystalReport显示出来,查了很多资料,听说要用“推”的技术。大侠给一段代码吧!
      

  6.   

    crystalreport  来做最合适了。。
      

  7.   

    DataTable dtPic = clsPublicVaria.DataBase.GetAllPic(this.strbookid);//取数据库中的图片路径图片存储在硬盘上
    if(dtPic.Rows.Count>0)
    {
    DataTable myDataTable = new DataTable("we");//新建数据集存储图片的二进制信息
    DataColumn myDataColumn = new DataColumn("pic",System.Type.GetType("System.Byte[]"));
    myDataTable.Columns.Add(myDataColumn);

    for(int i =0;i<dtPic.Rows.Count;i++)
    {
    string strPath = Server.MapPath("pic");
    string  bingstring =dtPic.Rows[i]["picture"].ToString();
    bingstring = bingstring.Remove(0,7);

    strPath+="\\"+bingstring; DataRow myDataRow = myDataTable.NewRow();
    if(File.Exists(strPath))
    { FileStream myFileStream = new FileStream(strPath,FileMode.Open,FileAccess.Read,FileShare.Read);//读图片流
    int intlong = (int)myFileStream.Length;
    byte[] bingbyte= new Byte[intlong];//变成字节
    myFileStream.Read(bingbyte,0,intlong);
    myFileStream.Close();
    myDataRow[0] = bingbyte;
    myDataTable.Rows.Add(myDataRow);
    }
    }
    rptpicture picture = new rptpicture();//图片报表
    picture.SetDataSource(myDataTable);//下面是自定义数据源
                                                    this.crystalreportview1.reportsource = picture;//显示也可以不显示直接打印


    }
    else
    {
    this.Label1.Text = "eewew";
    }