Ireport - fontes para pdf

1 resposta
A

ae pessoal, estou com um problema quando vou gerar um relatório em pdf q tenha uma determinada fonte.
tenho q fazer um relatorio q tenha aquela letra como se fosse escrita a mao, no ireport tem essa font, porem se eu colocar pro pdf ter essa font, da o seguinte erro:

Exception in thread "main" java.lang.NoSuchMethodError: com.lowagie.text.Font.family()I at net.sf.jasperreports.engine.export.JRPdfExporter.getFont(JRPdfExporter.java:1671) at net.sf.jasperreports.engine.export.JRPdfExporter.getChunk(JRPdfExporter.java:1600) at net.sf.jasperreports.engine.export.JRPdfExporter.getPhrase(JRPdfExporter.java:1583) at net.sf.jasperreports.engine.export.JRPdfExporter.exportText(JRPdfExporter.java:1908) at net.sf.jasperreports.engine.export.JRPdfExporter.exportElements(JRPdfExporter.java:679) at net.sf.jasperreports.engine.export.JRPdfExporter.exportPage(JRPdfExporter.java:641) at net.sf.jasperreports.engine.export.JRPdfExporter.exportReportToStream(JRPdfExporter.java:536) at net.sf.jasperreports.engine.export.JRPdfExporter.exportReport(JRPdfExporter.java:344) at net.sf.jasperreports.engine.JasperExportManager.exportReportToPdfFile(JasperExportManager.java:126) at testes.TestesRelatorios.main(TestesRelatorios.java:93)

ate onde eu conseui descobrir o problema é q o itext q cria o pdf nao tem suporte para outras fonts alem das q vem padrao nele
alguem tem alguma ideia de como me ajudar?

1 Resposta

A

consegui resolve ro meu problema, pra quem tiver a mesma dificuldade em setar uma fonte especifica par pdf aqui vai a solução

o problema ocorre pq o itext so tem 14 fontes para pdf, caso vc tente usar alguma q nao esteja nessa lista é dado um erro
para usar uma fonte .ttf especifica vc deve registra-la no itext e so depois gerar o pdf com o ireport
o codigo abaixo registra a fonte no itext

para saber se deu certo registrar a fonte basta listar todas as fontes registradas

for (Iterator i = FontFactory.getRegisteredFonts().iterator();
			  i.hasNext(); ) {
			  System.out.println((String) i.next());
			}

apos ver q sua fonte esta aparecendo na lista vc terá q editar o .jrxml na mão mesmo (ate onde tentei nao deu para fazer isso pelo proprio ireport)
va na linha do texto q terá a sua fonte, ache a propriedade pdfFontName e coloque o nome da sua fonte, no meu caso ficou assim

detalhe o nome da sua fonte tem q ser o mesmo q aparece quando vc exibe a lista de fontes registradas
apos ter feito isso, salve o jrxml, abra com o ireport e compile
o relatorio ja ira ser gerado com a fonte q vc colcoou!

Criado 12 de março de 2009
Ultima resposta 13 de mar. de 2009
Respostas 1
Participantes 1