1. java
  2. android
  3. c#
  4. .net
  5. javascript
  6. php
  7. jquery
  8. html
  9. sql

Não consigo gerar pdf com api itext, gera pdf em branco.

Olá, estava pesquisando sobre como gerar PDF com java e encontrei a API itext, fiz um teste básico junto ao tutorial do próprio site da API, mas ao executar, apresenta um erro, ele até gera o PDF, mas o mesmo fica em branco e o paragrafo é implementado previamente no código. Fiz algumas aplicações simples na universidade e gostaria de salvar o resultado final em pdf.

(Codigo segue o padrão do site da api / Uso o NetBeans). espero que a estrutura da pergunta esteja correta.

Grato desde já.


package helloworld;

import com.itextpdf.kernel.pdf.PdfDocument;
import com.itextpdf.kernel.pdf.PdfWriter;
import com.itextpdf.layout.Document;
import com.itextpdf.layout.element.Paragraph;
import com.itextpdf.test.annotations.WrapToTest;
import java.io.File;
import java.io.IOException;

@WrapToTest
public class HelloWorld {
    public static final String DEST = "resultados/hello world.pdf";

    public static void main(String[] args)throws IOException {
        File file = new File(DEST);
        file.getParentFile().mkdirs();
        // texto do paragrafo
        String text = "Hello World!";
        new HelloWorld().gerarPdf(DEST, text);
    }

    public void gerarPdf(String dest, String txt)throws IOException{

       PdfDocument pdf = new PdfDocument(new PdfWriter(dest));
       try(Document doc = new Document(pdf)){
           doc.add(new Paragraph(txt));
       }

   }

na Saída apresenta

run:
Exception in thread "main" java.lang.NoClassDefFoundError: org/slf4j/LoggerFactory
    at com.itextpdf.io.font.FontRegisterProvider.<clinit>(FontRegisterProvider.java:65)
    at com.itextpdf.io.font.FontProgramFactory.<clinit>(FontProgramFactory.java:61)
    at com.itextpdf.kernel.font.PdfFontFactory.createFont(PdfFontFactory.java:215)
    at com.itextpdf.kernel.font.PdfFontFactory.createFont(PdfFontFactory.java:201)
    at com.itextpdf.kernel.font.PdfFontFactory.createFont(PdfFontFactory.java:143)
    at com.itextpdf.kernel.font.PdfFontFactory.createFont(PdfFontFactory.java:92)
    at com.itextpdf.layout.RootElement.getDefaultProperty(RootElement.java:180)
    at com.itextpdf.layout.renderer.AbstractRenderer.getProperty(AbstractRenderer.java:289)
    at com.itextpdf.layout.renderer.AbstractRenderer.getProperty(AbstractRenderer.java:282)
    at com.itextpdf.layout.renderer.AbstractRenderer.getProperty(AbstractRenderer.java:282)
    at com.itextpdf.layout.renderer.AbstractRenderer.getProperty(AbstractRenderer.java:282)
    at com.itextpdf.layout.renderer.TextRenderer.resolveFonts(TextRenderer.java:1045)
    at com.itextpdf.layout.renderer.LineRenderer.resolveChildrenFonts(LineRenderer.java:706)
    at com.itextpdf.layout.renderer.LineRenderer.layout(LineRenderer.java:94)
    at com.itextpdf.layout.renderer.ParagraphRenderer.layout(ParagraphRenderer.java:171)
    at com.itextpdf.layout.renderer.RootRenderer.addChild(RootRenderer.java:111)
    at com.itextpdf.layout.RootElement.add(RootElement.java:108)
    at com.itextpdf.layout.Document.add(Document.java:143)
    at helloworld.HelloWorld.gerarPdf(HelloWorld.java:27)
    at helloworld.HelloWorld.main(HelloWorld.java:20)
Caused by: java.lang.ClassNotFoundException: org.slf4j.LoggerFactory
    at java.net.URLClassLoader$1.run(URLClassLoader.java:366)
    at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:425)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:358)
    ... 20 more

FALHA NA CONSTRUÇÃO (tempo total: 2 segundos)
  1. Você vai ver essas setas em qualquer página de pergunta. Com elas, você pode dizer se uma pergunta ou uma resposta foram relevantes ou não.
  2. Edite sua pergunta ou resposta caso queira alterar ou adicionar detalhes.
  3. Caso haja alguma dúvida sobre a pergunta, adicione um comentário. O espaço de respostas deve ser utilizado apenas para responder a pergunta.
  4. Se o autor da pergunta marcar uma resposta como solucionada, esta marca aparecerá.
  5. Clique aqui para mais detalhes sobre o funcionamento do GUJ!

0 resposta

Não é a resposta que estava procurando? Procure outras perguntas com as tags java pdf api ou faça a sua própria pergunta.