BIRT(3.7)をRCPアプリケーションと統合しようとしています。
画像(PNG、SVGなど)に変換されたレポートチャートを生成する場合。生成中にHTMLレポートを作成してチャート(画像)を埋め込みたい
HTMLレポートに埋め込み画像チャートを作成するにはどうすればよいですか?
setBaseImageUrl( "url")の決定は私には合いません。
私は解決策を見つけました:)
...
IReportRunnable design = engine.openReportDesign(designInputStream);
IRunAndRenderTask task = engine.createRunAndRenderTask(design);
IRenderOption options = null;
switch (format) {
case ReportFormats.HTML_REPORT:
options = new HTMLRenderOption();
options.setOutputFormat(HTMLRenderOption.HTML);
options.setOutputStream(outputStream);
options.setSupportedImageFormats("PNG");
((HTMLRenderOption) options).setEmbeddable(true);
options.setImageHandler(new HTMLServerImageHandler() {
@Override
protected String handleImage(IImage image, Object context,
String prefix, boolean needMap) {
String embeddedImage = null;
//embeddedImage = convert image.getImageStream() to Base64 String
return "data:image/png;base64," + embeddedImage;
}
});
break;
...
if (options != null) {
task.setRenderOption(options);
task.run();
task.close();
engine.destroy();
}
...
パレットから画像アイテムをドラッグし、上記の手順に従います。デザインに画像を簡単に追加できます。あなたの便宜に応じて、あなたはあなたのデザインをhtml、doc、pdfなどとして移入することができます
画像内のデータをbase64でエンコードし、HTMLに直接またはjavascript変数として埋め込むことができます
http://www.greywyvern.com/code/php/binary2base64/
これは便利ですが、ページが大きくなります。