缩略图创建作为XML文件的预览

时间:2013-06-08 09:15:10

标签: java xml

如何使用Java创建XML文档的缩略图?

我需要为XML文件创建缩略图。我更喜欢将XML转换为图像但我失败了。缩略图应该是XML内容的预览。

我试过这段代码:

FileOutputStream os = new FileOutputStream("sample");
Thumbnails.of("file-path").size(100,100).toOutputStream(os);

上面是我将图像转换为缩略图的代码,但我需要为XML创建缩略图。我还没有找到将XML转换为图像的代码。

1 个答案:

答案 0 :(得分:0)

基本上你可以分两步完成:

仅以文字形式阅读您的XML文件

您只需将原始文本行放入缓冲区以供将来使用。

使用Java创建图像

您需要使用Java API创建一些带有背景颜色的图像,并使用您选择的字体在其上绘制文本。

到目前为止,这是一个使用Java的工作示例,不包括阅读部分:

String[] aLines = {
    "import ij.IJ;",
    "import ij.ImagePlus;",
    "import ij.gui.Line;",
    "import ij.gui.Roi;",
    "import ij.plugin.PlugIn;",
    "import ij.process.ImageProcessor;",
    "import java.awt.Container;",
    "import java.awt.FlowLayout;",
    "import java.awt.BorderLayout;",
    "import java.awt.event.ActionListener;",
    "import java.awt.event.ActionEvent;",
    "import javax.swing.JDialog;",
    "import javax.swing.JPanel;",
    "import javax.swing.JLabel;",
    "import javax.swing.JButton;",
};

BufferedImage img = new BufferedImage(80,100,BufferedImage.TYPE_INT_RGB);
Graphics2D g2d = img.createGraphics();

g2d.setColor( Color.WHITE );
g2d.fillRect(0,0,img.getWidth(),img.getHeight());

g2d.setPaint(Color.GRAY);
g2d.setFont(new Font("Courier New",Font.PLAIN,6));
FontMetrics fm = g2d.getFontMetrics();

int nCharactersHorizontal = img.getWidth() / fm.charWidth('a') - 1;
int nCharactersVertical = img.getHeight() / 6 - 1;
int x = 2;
int y = 0;

for(String sLine : aLines)
{
    y += 6;

    g2d.drawString(sLine.substring(0,Math.min(sLine.length(),nCharactersHorizontal)),x,y);
}


g2d.dispose();

try
{
    ImageIO.write(img,"png",new File("path/to/your/file.png"));
}
catch(Exception e)
{
    e.printStackTrace();
}