哪位大俠知道!在SQl中對Iamge字段的打印!
不過有一點是!
圖片是通過OLE控件來保存的!保存的有bmp.jpg還有CAD圖形!
用DBimage控件,會有出錯信息,是Bitmap 無效!
謝了!

解决方案 »

  1.   

    用流读出二进制数据,代码论坛中查询!bmp可以直接读取,jpg可加入JPEG单元,cad图形只能直接去研究图形格式!http://www.efg2.com/Lab/Library/Delphi/Graphics/ColinSarsfield_dxfgrph.zip下载该单元文件可获得对DXF格式的支持!假设已将图像数据保存到流Stream中!var
    strect:Trect;
    temhi,temwd,temhi2,temwd2,i:integer;
    begin
    try
    if Printer.Printers.Count=0 then
    begin
      showmessage('打印机调用错误,请您先安装打印机!');
    end
    else
    begin
    TemBmp.LoadFromStream(Stream);
    TemBmp.HandleType:=bmDIB;
    if PrintDialog.Execute then
    begin
    temhi:=TemBmp.height;
    temwd:=TemBmp.width;
    temhi2:=printer.pageheight;
    temwd2:=printer.pagewidth;
    with strect do
    begin
      if (temhi/temwd-temhi2/temwd2)>0 then
      begin
        top:=0;
        left:=Round((temwd2-temhi2/temhi*temwd)/2);
        right:=temwd2-Left;
        bottom:=temhi2;
      end
      else
      begin
        left:=0;
        top:=Round((temhi2-temwd2/temwd*temhi)/2);
        right:=temwd2;
        bottom:=temhi2-Top;
      end;
    end;
    Printer.BeginDoc;
    for i:=1 to Printer.Copies do
    begin
    Printer.Canvas.StretchDraw(Strect,TemBmp);
    if i<>Printer.Copies then Printer.NewPage;
    end;
    Printer.EndDoc;
    end;
    end;
    except
      showmessage('打印机调用错误!');
    end;
    end;
      

  2.   

    不過這對從掃描儀讀入的就出錯了!
    一樣!
    bitmap無效!
      

  3.   

    還有CAD圖形,不知從何處下手!