czwartek, 15 marca 2012

Drukowanie na raporcie bitmap pobieranych z internetu

Jest to moja metoda drukowania zdjęć na raportach które znajdują się w sieci (dostęp przez protokół HTTP).
Nie jest ona zbyt elegancka (przesyłanie przez plik) ale daje radę.

Dodajemy nową metodę do raportu:
void loadImage(ReportBitmapControl _imageControl, str _url)
{
    Str                     fileName;
    System.Net.WebRequest   webRequest;
    System.Net.WebResponse  webResponse;
    System.Uri              uri;
    System.IO.Stream        stream;
    System.Drawing.Image    img;
    ;

    fileName = System.IO.Path::GetTempFileName();

    uri = new System.Uri(_url);

    webRequest = System.Net.WebRequest::Create(uri);
    webRequest.set_UseDefaultCredentials(true);

    webResponse = webRequest.GetResponse();

    stream = webResponse.GetResponseStream();

    img = System.Drawing.Image::FromStream(stream);
    img.Save(fileName);

    stream.Close();
    webResponse.Close();

    _imageControl.imageName(fileName);
}

i dodajemy jej wywołanie:
public void executeSection()
{
    ;
    this.loadImage(imageControl, 'http://www.likeyou.me/wp-content/uploads/2012/01/spongeBob.jpg');
    super();
}