exportar jcomponent a PDF con iText

Me gustaría exportar mi jcomponent (método de componente de pintura personalizado que dibuja muchos textos y líneas, imágenes pequeñas (una especie de aplicación de palabras pequeñas)) a PDF

mi componente es "factura"

El método que uso para esto (que funciona, pero algunos métodos están en desuso) es:

       com.itextpdf.text.Rectangle r = new com.itextpdf.text.Rectangle(0,0,bill.getWidth(),bill.getHeight());

       Document document = new Document(r);

       try {
          PdfWriter writer;
          writer = PdfWriter.getInstance(document, new FileOutputStream(f));
          document.open();
          PdfContentByte cb = writer.getDirectContent();
          PdfTemplate tp = cb.createTemplate(bill.getWidth(), bill.getHeight());
          Graphics2D g2d = tp.createGraphics(bill.getWidth(), bill.getHeight(), new DefaultFontMapper());

          bill.addNotify();
          bill.validate();

          bill.paint(g2d);
          g2d.dispose();

          cb.addTemplate(tp, 0, 0);
       }
       catch(Exception e) {
          e.printStackTrace();
       }

       document.close();

Funciona bastante bien, pero hay dos grandes problemas: el método tp.createGraphics está en desuso (por lo que podría haber una mejor solución) y si el componente de oscilación es muy grande, se imprime en una sola página en PDF.

Entonces, lo que necesito es un "divisor de página" para ayudarme a crear páginas de tamaño A4 para que sean fáciles de imprimir. Por supuesto, sin un desbordamiento de búfer cuando el componente j es muy grande ...

¿Alguien puede ayudar?

Respuesta 1

He creado una prueba simple que crea y elimina un archivo (el nombre no cambia) en un bucle infinito. La prueba se ejecuta durante un par de segundos (¡a veces más de 77,000 iteraciones!) Y luego falla con ...

Leí la muestra sobre proxy aquí: http://docs.oracle.com/javase/1.3/docs/guide/reflection/proxy.html Como puede ver, el parámetro 'proxy' en el método de 'invocar' no es usado. ¿Qué es el proxy ...

Estoy usando este comando para rastrear algunas URL: ./bin/nutch crawl urls / urls -dir crawl -depth 2 Muestra el siguiente error: No se pudo encontrar o cargar la clase principal org.apache.nutch.crawl.Crawl How. ..

Hola chicos, actualmente estoy trabajando en una aplicación de Android que me permitirá iniciar sesión con un usuario registrado y luego publicar cuánto aumenta, su nivel de colesterol, etc., a través de servicios web usando ksoap, ...