私はPowerPointPresentation(.ppt)を使って.pptファイルをANDROID PLATFORMの.pngイメージに変換しています。これを実装するには、Apache Poi Apiを使用します。 slide classには、draw(java.awt.Graphics2D graphics)
というパラメータが渡されますが、このパラメータはGraphics2D
ですが、Androidではこのクラスはサポートされていません。代わりにcanvas
を使用します。私の質問はこれです。これはAndroid用の同等のdraw(java.awt.Graphics2D graphics)
メソッドです。 Apiを書き直さなければならない。だから、JavaのGraphics2Dのに非常に似て、ここで、このコードアンドロイドに相当する描画(java.awt.Graphics2Dグラフィックス)メソッドは何ですか?
public final class PPT2PNG {
public static void main(String args[]) throws Exception {
File file = new File("C:/Users/THIYAGARAJAN/Desktop/ppt52.ppt");
int scale = 10;
int slidenum = 0;
FileInputStream is = new FileInputStream(file);
SlideShow ppt = new SlideShow(is);
is.close();
Dimension pgsize = ppt.getPageSize();
int width = (int) (pgsize.width * scale);
int height = (int) (pgsize.height * scale);
System.out.println("w" + width + "h" + height);
Slide[] slide = ppt.getSlides();
System.out.println(slide.length);
for (int i = 0; i < slide.length; i++) {
String title = slide[i].getTitle();
System.out.println("Rendering slide " + slide[i].getSlideNumber() + (title == null ? "" : ": " + title));
BufferedImage img = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB);
Graphics2D graphics = img.createGraphics();
graphics.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
graphics.setRenderingHint(RenderingHints.KEY_RENDERING, RenderingHints.VALUE_RENDER_QUALITY);
graphics.setRenderingHint(RenderingHints.KEY_INTERPOLATION, RenderingHints.VALUE_INTERPOLATION_BICUBIC);
graphics.setRenderingHint(RenderingHints.KEY_FRACTIONALMETRICS, RenderingHints.VALUE_FRACTIONALMETRICS_ON);
graphics.setPaint(Color.white);
graphics.fill(new Rectangle2D.Float(0, 0, width, height));
graphics.scale((double) width/pgsize.width, (double) height/pgsize.height);
slide[i].draw(graphics);
//String fname = file.getAbsolutePath() .replaceAll(".ppt", "-" + (i+1) + ".png");
File fname = new File("C:/Users/THIYAGARAJAN/Desktop/" + i + ".png");
FileOutputStream out = new FileOutputStream(fname);
ImageIO.write(img, "png", out);
out.close();
}
}
private static void usage() {
System.out.println("Usage: PPT2PNG [-scale <scale> -slide <num>] ppt");
}
}
を見てください。 – Thiyagu