imprimir pdf con java

usuario1986
31 de Octubre del 2009
Hola buenas, estoy haciendo una aplicación de escritorio en java que genera facturas. He usado jasperreport y me la genera bien, el problema es que no se como imprimir el pdf que me genera. ¿Alguien sabe como podría imprimir un pdf? He probado con la librería jpedal, pero la version de evaluación lo hace mal. ¿Existe alguna librería gratuita que lo pueda hacer?

Gracias de antemano!!

Ismael M. Santiago
31 de Octubre del 2009
Amigo lo que debes de hacer es un query en tu codigo.
ejecutas la comsulta.
el resultado lo pasas a variable
la variable la despliegas en el pdf
Como comentario quiero desirte que tienes que usar un formulario en el pdf donde le des el nombre de la variable ue quieres desplegar, en caso de que no me entiendas me mandas un correo o dejas tu duda y la contestare lo mas pronto posible saludos
ATTE.
Ismae M. Santiago

String sql_m = "Select cg.nombre as nomb from carreras_universidad cu, carreras_cgut cg,alumnos_carreras_cgut acc where cg.cve_carrera=cu.cve_carrera and cu.cve_universidad=3 and cu.activo=1 and cg.cve_carrera = acc.cve_carrera and acc.cve_alumno =5221";
rs_m = UtilDB.ejecutaConsulta(sql_m);
while ( rs_m.next())
pw.println("<< /V ("+ rs_m.getString("nomb") + ")/T (Carrera)>>");
rs_m.close();
rs_m=null;

usuario1986
31 de Octubre del 2009
A ver amigo, no has entendido nada. Olvidate de que uso jasperreport y todo eso. El caso es que tengo un fichero en pdf en mi disco local y lo quiero imprimir en papel directamente desde java con una impresora.
De todos modos gracias por intentar ayudar!!

Ismael M. Santiago
31 de Octubre del 2009
LO unico que debes hacer para imprimir texto en un archivo PDF desde java es.
1.- Poner los objetos en el archivo PDF
1.1.- Eso se hace con Acrobat, con la herramineta Form
2.- En ti codigo java colocar el valor de la variable(Texto que quieras imprimir en PDF).
3.- Por ultimo debes de utilizar
PrintWriter pw = response.getWriter();
pw.println("%FDF-1.2");
pw.println("%âãÏÓ");
pw.println("1 0 obj");
pw.println("<<");
pw.println("/FDF");
pw.println("<< /Fields [");

--Aqui va lo que quieres desplegar

pw.println("]");
pw.println("/F (http://" + servidor + "/Plantillas/historial_academico_06_sep.pdf)/ID [ <e04e37c5bead6276ebd868db6e0bacdd><3f06b0625185f7d6f8a56afe0425979e>");
pw.println("] >>");
pw.println(">>");
pw.println("endobj");
pw.println("trailer");
pw.println("<<");
pw.println("/Root 1 0 R");
pw.println("");
pw.println(">>");
pw.println("%%EOF");
response.flushBuffer();
pw.close();

4.- lista eso es todo lo que tienes que hacer.

parapapat
31 de Octubre del 2009
Hola! Yo tengo el mismo problema que tú. ¿Conseguiste resolverlo?
Muchas gracias!!

Dante
31 de Octubre del 2009
PrinterJob job = PrinterJob.getPrinterJob();
job.setPrintable( new MiPrintable());
//Dialogo para elegir la impresora

PageFormat pageFormat = new PageFormat();
pageFormat=job.pageDialog(pageFormat);
//Si el usuario acepta imprimir
if (job.printDialog())
job.print();