오~ 정말 이틀을 뒤져서 겨우 찾은 방법을 소개합니다. 이거 머 찾기가 너무 힘들어서 고생했네요. ^^;
Opera나 Safari등에서는 쉽게 보여줄 수 있는데 반해 이 IE란 녀석에서는 보일 수 없다는 것이 헙.. ㅡㅡㅋ 여튼 우여곡절속에 하려던 작업을 할 수 있게 되어 다행이라는 생각과 함께... 나중에라도 또 어렵게 찾는 수고스러움을 줄이기 위해 기록을 해보려 합니다.
일단 하려던 것이 무엇인지에 대한 설명과 함께 문제는 무엇이며 어떻게 해결했는지 해결한 방법을 소개하겠습니다.
하려던 작업은 사용하고 있는 차트 오브젝트를 프린트하기 위해 이미지화 시키고 그 이미지를 출력하는 것을 하려고 하는 것이고.. 문제는 차트가 지원해 주는 이미지 변환 함수는 Base64 형태의 PNG 파일 형식인데 IE에서 이 Base64 형태의 PNG 데이터를 화면에 표현할 방법이 없다는 것.
IE doesn't support inline Base64 encoded images (except in mht format files). There are several workarounds for this problem, but I didn't found a solution in Java.
Here is one. Base64 encoded string is pased to an object named InlineImage; it will, depending on which method you invoke, write a segment of html code which is just a applet tag with inlineimage.class as it's code, or just return the applet object(In other browser, img tag will replace the applet tag). See the sample code below :
InlineImage.setcodebase("your_path_to_the_class_file"); // default is current dir
InlineImage.insertImage(image_type, image_width, image_height, base64data);
result_element = InlineImage.createImage(image_type, image_width, image_height, base64data);
Include inlineimage.js before you invoke these two functions. In both functions there are four parameters (in order) : image type, image width, image height, and the base64 data. The applet will automatically resize image to ths size you specified, and the image types that have been tested include gif, png, and jpg. In fact the three little pinky hairy balls at the top-right corner are in gif, png , jpg format, respectively.
Requisites
There are three requisite files: inlineimage.class for drawing image, Base64Coder.class for base64 codec, and inlineimage.js for the InlineImage object. I've zipped them together in inlineimage.zip so you can find them in the zip file; just place all of them in the same directory, or use InlineImage.setcodebase to indicate where you put these two class files.
The Java Source Code
If you are interested in the java source code, here it is : inlineimage.java. Base64Coder is provided by Christian d'Heureuse and the coder homepage is here. Thanks for Christian I don't have to write it over.
Environment
This auxiliary object have been tested on Internet Explorer 6.02, Mozilla Firefox 2.0.0.11, Opera 9.24 and Safari 3.0.4; all these tests are conducted under Windows XP (SP2).