https://gif-plugin.dev.java.net/ と http://java.freehep.org/freehep1.x/ から持ってきて、freehep-base.jar、freehep-graphics2d.jar、freehep-graphicsio.jar、freehep-graphicsio-gif.jar、gif-plugin-0.1.jarをクラスパスに通せばいいそうな。以下に書いてあった。
カテゴリー: Java
iTextの感想
pdfで作るものがあるので、評価をかねて試していたけど、これは結構使えるのだね。サンプルが http://itextdocs.lowagie.com/tutorial/ にあるから、これを参考にしてやれば、ほとんどできると思うし。ちょっと不便だなっと思ったのは、PdfPTableでは、上下のセルをくっついたもの(rowspanみたいなこと)ができないことかな。チュートリアル読むと、サポートしていないからテーブルを入れろみたいにかいてあったので、それをしたら、まぁ、同じようなことができたから良いけど。あとは、画像を貼り付けたりもできるし(bmpはサポートしていないから、ImageIOとかで png とかに変換してからやればOK)、一通りのことはできると思う。今後も、引き続き使うことにしよう。
JExcelApiを試す
既存のxlsファイルを読み込んで、文字列と画像を追加して、新たに保存してみる。まぁ、画像は、pngしか使えないみたい。あと、画像がセルにフィットされるので、何とかしたいな。一応、使えるみたい。
package com.marevol.test; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.util.Locale; import jxl.Workbook; import jxl.WorkbookSettings; import jxl.write.Label; import jxl.write.WritableCell; import jxl.write.WritableCellFormat; import jxl.write.WritableImage; import jxl.write.WritableSheet; import jxl.write.WritableWorkbook; public class App { public static void main(String[] args) { String templateName = args[0]; String outputName = args[1]; String imageName = args[2]; String labelString = args[3]; WritableWorkbook workbook = null; try { // Setup workbook WorkbookSettings ws = new WorkbookSettings(); ws.setLocale(Locale.JAPAN); ws.setEncoding("Windows-31J"); // Load workbook Workbook template = Workbook.getWorkbook(new FileInputStream( templateName)); // Create new workbook workbook = Workbook.createWorkbook( new FileOutputStream(outputName), template, ws); // Create new sheet WritableSheet sheet = workbook.getSheet(0); // Create new label Label label = new Label(1, 0, labelString); sheet.addCell(label); // Create new image WritableImage image = new WritableImage(1, 1, 1, 1, new File( imageName)); sheet.addImage(image); // Write wookbook workbook.write(); } catch (Exception e) { e.printStackTrace(); } finally { if (workbook != null) { try { workbook.close(); } catch (Exception e) { e.printStackTrace(); } } } } }