Foros aprenderaprogramar.com
Aprender a programar => C, C++, C#, Java, Visual Basic, HTML, PHP, CSS, Javascript, Ajax, Joomla, MySql y más => Mensaje iniciado por: gatoher en 01 de Enero 2016, 21:20
-
Hola a todos, tengo un problema en un script en JAVA. Estoy buscando la forma de imprimir un documento PDF que ya existe en mi pc. Lo estoy intentando hacer con el jar pdfbox pero tengo problemas con los import. Cuando añado el .jar hay unas clases que me dice NetBeans:
package org.apache.pdfbox.pdmodel does not exist
Os pongo el codigo para que veais como lo tengo:
package pdf;
import java.awt.print.PrinterException;
import java.awt.print.PrinterJob;
import java.io.File;
import java.io.IOException;
import java.net.URI;
import java.net.URISyntaxException;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.print.PrintService;
import javax.print.PrintServiceLookup;
import javax.print.attribute.HashPrintServiceAttributeSet;
import javax.print.attribute.PrintServiceAttributeSet;
import javax.print.attribute.standard.PrinterName;
//IMPORT QUE ME DA ESE ERROR
import org.apache.pdfbox.pdmodel.PDDocument;
import org.apache.pdfbox.exceptions.COSVisitorException;
/**
*
* @author carlos
*/
public class Imprimir {
private PrinterJob printerJob;
private PrintService printService;
public void print(String filePath, String printerName) throws URISyntaxException, IOException, PrinterException{
//Buscar una impresora por su nombre dentro de los servicios de impresión
//disponibles PrintServiceAttributeSet
System.out.print("El nombre de la impresora es: "+printerName);
System.out.print("La ruta al archivo es: "+filePath);
PrintServiceAttributeSet printServiceAttributeSet = new HashPrintServiceAttributeSet();
printServiceAttributeSet.add(new PrinterName(printerName, null));
PrintService[] printServices = PrintServiceLookup.lookupPrintServices(null, printServiceAttributeSet);
//Guardar el servicio en un atributo de la clase
this.printService = printServices[0];
//Iniciar un nuevo trabajo de impresión
this.printerJob = PrinterJob.getPrinterJob();
//Intentar definirle el servicio de impresión asignado en el atributo de la clase previamente
try{
printerJob.setPrintService(this.printService);
}catch(PrinterException e){
System.out.print("Error al definir el servicio");
System.out.println(e.toString());
} try {
//Cargar el documento
PDDocument pdDocument = PDDocument.load(new File(new URI(filePath)));
//imprimir el documento
pdDocument.silentPrint(this.printerJob);
} catch (URISyntaxException ex) {
//Logger.getLogger(PDFBoxExample.class.getName()).log(Level.SEVERE, null, ex);
}
}
//clase
}
Aqui hay un enlace dnde explican como solucionarlo pero no llego a conseguirlo:
http://stackoverflow.com/questions/16504603/solved-java-imported-package-does-not-exist
Cualquier ayuda se agradeceria.
-
Os pongo una imagen de la estructura del proyecto y veis donde he añadido el .jar:
(http://)
-
Buenas parece que se trata de un problema de configuración. Se me ocurre que puedes probar algunas cosas
Por un lado no basta con añadir los archivos, podrías intenter buscar dentro de las propiedades del proyecto las librerías vinculadas, e incluir esa librería como librería vinculada al proyecto (quizás esté en una opción como "User libraries" o "Librerías de usuario").
Otra opción sería intentar descomprimir el jar y añadir la estructura de archivos dentro de tu propio proyecto. Esto no creo que sea lo ideal pero quizás te sirva para escapar.
Salu2
-
Hola Orgramar, a ver he estado intentandolo y nada. He visto librerias como pdfRenderer que las puedes descargar y funcionan. Lo que estoy tratando de hacer es crear una etiqueta en pdf y una vez creada "objetivo conseguido" que se imprima.
-
Hola si por lo que dices otras librerías te funcionan, ¿la librería sí es accesible? ¿Puedes crear código usando clases de esa librería? Es decir, no sé si el fallo está al acoplar la librería al proyecto o está ya en cuestiones propias de cómo usar la librería
Saludos