码迷,mamicode.com
首页 > 其他好文 > 详细

报表打印网络按比例打印网络图片

时间:2015-06-16 14:41:00      阅读:208      评论:0      收藏:0      [点我收藏+]

标签:

1, 读取图片

static container SML_ImgUrl2Bitmap(str  imgUrl,str newfileName = ‘axTmpImgName1111‘)
{
    System.Net.HttpWebRequest   httpRequest  = null;
    System.Net.HttpWebResponse  httpResponse = null;

    CLRObject                   clro         = null;
    System.IO.Stream                stream;
    System.IO.StreamReader          reader;
    System.Drawing.Image            webImage ;
    BinData                         bidData=new BinData();
    Bitmap      Bitmap;
    str         saveFilePath;
    str         filepath, filename, fileExt;
    real         height,width;
   ;

    [filepath, filename, fileExt] = fileNameSplit(imgUrl);
    filePath= WinAPI::getTempPath();
    filename= newfileName;

    new InteropPermission(InteropKind::ClrInterop).assert();
    try {
        clro         = System.Net.WebRequest::Create(imgUrl);
        httpRequest  = clro;
        httpResponse = httpRequest.GetResponse();
        stream          = httpResponse.GetResponseStream();
        reader          = new System.IO.StreamReader(stream);
        webImage = System.Drawing.Image::FromStream(stream);
        saveFilePath = filePath+newfileName+fileExt;
        webImage.Save(saveFilePath);
        bidData.loadFile(saveFilePath);
        Bitmap =  bidData.getData();
        height = webImage.get_Height();
        width  = webImage.get_Width();
} catch (Exception::CLRError) { return [Bitmap,0,0]; } return [Bitmap,height,width]; }

2, 按比例显示图片,A4纸,纵向打印

void initProdImg()
{

    InventParameters    InventParameters;
str imgUrl;
#define.PicMaxWidth(18) // 允许图片最大宽度 #define.PicMaxHeight(8) // 允许图片最大高度 container scaleSize( int currW, int currH){ real maxW = #PicMaxWidth,maxH=#PicMaxHeight; real ratio = currH / currW; if( currH<= 144) maxH = 3; else if( currH<= 192) maxH = 4; else if( currH<= 240) maxH = 5; else if( currH<= 288) maxH = 6; if(currW >= maxW){ currW = maxW; currH = currW * ratio; } if(currH >= maxH){ currH = maxH; currW = currH / ratio; } return [currW, currH]; } void resetH(int currH){ ctrItemImg.height( currH,Units::cm); } void resetW(int currW){ ctrItemImg.width( currW,Units::cm); } ; InventParameters = InventParameters::find(); imgUrl = InventParameters.SML_InventImgUrl + curProdTable.sml_InventTableExt().SML_InventImgUrl; try { [prodImg,imgHeight,imgWidth] = SML_ImgUrl2Bitmap( imgUrl); if( !imgHeight || !imgWidth) { resetH(0); return; } else { [imgWidth,imgHeight] = scaleSize( imgWidth,imgHeight); resetH (imgHeight); resetW (imgWidth); ctrItemImg.resizeBitmap( true);// 允许图片按控件尺寸缩放。 } } catch(Exception::CLRError) { } }

 

  

报表打印网络按比例打印网络图片

标签:

原文地址:http://www.cnblogs.com/sxypeace/p/4580641.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!