Convertendo um documento RTF para imagem JPG

Estou tentando transformar um documento RTF em uma imagem. Meu documento RTF possui apenas 1 linha: “Isto é um documento RTF.” e quando eu gero a imagem, fica uma tela preta.

Alguém possui alguma direção sobre o que posso estar fazendo errado?

Segue o código.

public String converterRtfParaImagem(byte[] arquivoRTF){
		try{
			String arquivoJpg= "arquivo.jpg";
			// Create an RTF editor window
	        RTFEditorKit rtf = new RTFEditorKit();
	        JEditorPane editor = new JEditorPane();
			// Load an RTF file into the editor
	        ByteArrayInputStream bais = new ByteArrayInputStream(arquivoRTF);
	        //FileInputStream fi = new FileInputStream(bais);
	        rtf.read(bais, editor.getDocument(), 0);
	        // create an image and render the document into it
	        BufferedImage bimage = new BufferedImage(400, 300, BufferedImage.TYPE_INT_RGB);
	        editor.paint(bimage.getGraphics());
	        ImageIO.write(bimage, "JPEG", new File(arquivoJpg));
	        return arquivoJpg;
		}catch (Exception e){
			e.printStackTrace();
			return null;
		}
	}

Olá felipe.nunes,

Tente incluir essas linhas após a linha 6:

editor.setEditorKit(rtf); editor.setBackground(Color.white);
Aparentemente o teu fonte foi inspirado neste aqui, caso só com a alteração acima não funcione dá uma olhada neste link:
http://www.coderanch.com/how-to/java/RTF2Image

Boa sorte!

Olá,

Por favor, ao postar tópico não é necessário destacar que se trata de uma dúvida ou pedido de ajuda.

Para conhecer as regras de etiqueta em fóruns em geral, leia:
http://www.istf.com.br/perguntas/

[quote=jamirdeajr]Olá felipe.nunes,

Tente incluir essas linhas após a linha 6:

editor.setEditorKit(rtf); editor.setBackground(Color.white);
Aparentemente o teu fonte foi inspirado neste aqui, caso só com a alteração acima não funcione dá uma olhada neste link:
http://www.coderanch.com/how-to/java/RTF2Image

Boa sorte!

[/quote]

Obrigado Jamir.

De fato, me baseei nesse link para essa implementação. Infelizmente só adicionar estas 2 linhas não funcionou. Eu precisei aproveitar todo o arcabouço que ele usa do swing para gerar as imagens. Vou continuar procurando uma forma de fazer isso sem o restante do código.

Bom, segue alguns dos links que encontrei enquanto pesquisava por respostas:

http://docs.oracle.com/javase/6/docs/api/javax/swing/text/rtf/RTFEditorKit.html


http://www.coderanch.com/t/340286/GUI/java/RTFEditorKit
http://www.coderanch.com/how-to/java/RTF2Image (código original)
http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=5042109

[quote=ViniGodoy]Olá,

Por favor, ao postar tópico não é necessário destacar que se trata de uma dúvida ou pedido de ajuda.

Para conhecer as regras de etiqueta em fóruns em geral, leia:
http://www.istf.com.br/perguntas/
[/quote]

Vlw mano, forte abraço.

Tente pintar o fundo da imagem então:

BufferedImage bimage = new BufferedImage(400, 300, BufferedImage.TYPE_INT_RGB); Graphics2D graphics = bimage.getGraphics(); graphics.setColor(Color.WHITE); graphics.fillRect(0,0,400,300); graphics.setColor(Color.BLACK); editor.paint(graphics); ImageIO.write(bimage, "JPEG", new File(arquivoJpg));

Uma dica… se a imagem ficar de qualidade muito baixa, talvez seja melhor PNG no lugar de JPG.