2012-04-18 11 views
1

javaを使用してdocまたはodt文書にさまざまな画像を挿入する必要があります。画像は実行時に生成されます。当時は、jodreportsを使うのが嫌いです。なぜなら、最終的な文書のテンプレートを生成するのは非常に簡単ですが、画像を挿入する方法を教えてくれるドキュメンテーションが見つからないので、私は立ち往生していません。私の質問に答えることができれば、コードスニペットを投稿するか、私が使用できる他のライブラリを教えてください。jodreportsとjavaを使用してodt文書にランタイムを挿入する方法

ありがとうございました。私の悪い英語をお詫び申し上げます。

答えて

1

クラスにImageSourceオブジェクトを作成します。

ImageSource imagen = 
new RenderedImageSource(ImageIO.read(new File(ruta_fisica_imagen))); 

jooscript.image(name)

詳しい情報を定義したテンプレートでは、Mapオブジェクト

にこのオブジェクトを追加し、文書がhttp://www.montesinos.org.es/2010/11/jodreports-mini-how-to.html

0

スペイン語であるだけで@Jarabid作品からそのアプローチを確認したいです。

//visual signature 
ImageSource signatureImage = 
     new RenderedImageSource(ImageIO.read(new File("resources/Signature.png"))); 
data.put("signature", signatureImage); 

私は、Mac上のLibreOfficeを使用し、私がやったことだったんだ:

  • インサート(使用プレースホルダ画像)の画像上の
  • ダブルクリックして画像のプロパティを開きファイルからイメージ
  • 「オプション」タブを選択
  • ペースト:jooscript.image(署名)

完全に最初に試しました。ハッピー:)

1

私のページでhttps://xbrowser.altervista.org/informatica-portata/odt-converter/ あなたの質問を実装する方法を段階的に見つけることができます。

ライブラリーである:これは、この時点で方法

private Map<String, Object> data = new HashMap<String, Object>();; 
private Logger log = Logger.getLogger(this.getClass().getName()); 

private void createOdt() { 

DocumentTemplateFactory documentTemplateFactory = new DocumentTemplateFactory(); 
DocumentTemplate template = null; 

File inputFile = new File("/path/template.odt"); //inserire il path relativo alla posizione del template .odt 
try { 
template = documentTemplateFactory.getTemplate(inputFile); 
log.debug("input file ok -> " + inputFile); 
} catch (IOException e) { 
log.error(e); 
} 
try { 
tmpFile = File.createTempFile("odt_", ".odt"); 

data.put("qrcode", new FileImageSource(new File("/img/src/qrcode.jpg"))); //qui è possibile generare per esempio un qrcode 
template.createDocument(data, new FileOutputStream(tmpFile)); 

log.debug("output file temporaneo creato ("+ tmpFile.getAbsolutePath() + ").."); 
} catch (FileNotFoundException e) { 
log.error(e); 
} catch (IOException e) { 
log.error(e); 
} catch (DocumentTemplateException e) { 
log.error(e); 
} 
} 

ある

import java.io.FileReader; 
import java.io.IOException; 
import java.io.InputStream; 
import java.util.Map; 
import org.apache.commons.io.FileUtils; 
import org.apache.commons.io.IOUtils; 
import net.sf.jooreports.templates.DocumentTemplate; 
import net.sf.jooreports.templates.DocumentTemplateException; 
import net.sf.jooreports.templates.DocumentTemplateFactory; 
import net.sf.jooreports.templates.image.FileImageSource; 

は.odtテンプレート画像は、以下の様式で挿入されることが必要である:

  1. イメージを挿入
  2. イメージをダブルクリック分野では、画像の性質
  3. を選択し、「オプション」タブ
  4. 「名前」の挿入に入る:あなたがイメージの名前を見ることができるようにjooscript.image(QRコード)

することであるQRコードを拡大して示していますコード内のハッシュマップキーの名前(data.put("qrcode"))。

このようにして、.odtで定義されたテンプレートのJavaコードから動的に生成されたイメージを表示することができます。

あなたが助けてくれることを願っています。

+0

英語をお願いします。 –