Destacar parte do texto antes de salvar o arquivo

6 respostas Resolvido
programaçãojava
P

Olá, eu preciso salvar o texto de uma string em um arquivo (pdf, doc, etc) e gostaria de destacar (coloração ou negrito) determinadas partes dessa string de acordo com uma condição. Alguém pode me dar um exemplo para fazer isso?

Desde já, agradeço.

6 Respostas

C

Ola,

Veja se isso te ajuda: https://pt.stackoverflow.com/questions/29355/marcar-colorir-uma-string-para-escrever-no-arquivo

P

Já havia tentado por este link. Não deu certo.

L

Acredito que o mais fácil seria pegar o texto e gerar um PDF usando o iText. Usando ele, ao pegar o texto, você pode formatar a parte que quiser e salvar o arquivo no formato PDF.

P

Oi Lucas, eu estou fazendo isso que você disse mesmo. O que eu quero saber é COMO formatar. Se tem algum modo de deixar só determinada parte do texto em negrito.

L
Solucao aceita

Segue exemplo:

package teste.main;

import java.io.FileOutputStream;

import com.itextpdf.text.Chunk;
import com.itextpdf.text.Document;
import com.itextpdf.text.Font;
import com.itextpdf.text.Font.FontFamily;
import com.itextpdf.text.Phrase;
import com.itextpdf.text.pdf.PdfWriter;

public class MainTeste {
	
	private static final String DEST = "/home/lucas/Área de Trabalho/meuTextoDestacado.pdf";
	private static final Font NEGRITO = new Font(FontFamily.HELVETICA, 15f, Font.BOLD);
	
	public static void main(String[] args) throws Exception {
		String myPlainText = "Este é um texto de exemplo que terá uma parte destacada em negrito";
		int startIndexText = 15, endIndexText = 30;
		
		Document document = new Document();
		PdfWriter.getInstance(document, new FileOutputStream(DEST));
		document.open();
		
		Chunk chunkBefore = new Chunk(myPlainText.substring(0, startIndexText));
		Chunk chunkBold = new Chunk(myPlainText.substring(startIndexText, endIndexText), NEGRITO);
		Chunk chunkAfter = new Chunk(myPlainText.substring(endIndexText, myPlainText.length()));
		
		Phrase phrase = new Phrase();
		phrase.add(chunkBefore);
		phrase.add(chunkBold);
		phrase.add(chunkAfter);
		
		document.add(phrase);
		
		document.close();
	}

}

Usei essa dependência maven do iText:

<dependency>
	<groupId>com.itextpdf</groupId>
	<artifactId>itextpdf</artifactId>
	<version>5.0.6</version>
</dependency>

Resultado:
meuTextoDestacado.pdf (1,1 KB)

P

Funcionou, obrigada! :smiley:

Criado 7 de novembro de 2017
Ultima resposta 7 de nov. de 2017
Respostas 6
Participantes 3