Impressão de Arquivos

5 respostas
J

Galera,

Como faço para imprimir um Arquivo PDF???

Estou quebrando a cabeça…

Detalhe, quero uma imprimir através de um Intervalo de Páginas (de Pag. x a y),
e em uma determinada impressora!!!
Agradeço desde Já!!!

5 Respostas

F

Segue abaixo um codigo que imprime… a partir dele vc conegue chega no que precisa.

/**
	 * envia para a impressora especificada, o arquivo PDF.
	 * 
	 * @param nomeImpressora -
	 *            nome qualificado da impressora
	 * @param arquivoPdf -
	 *            java.io.File contem o arquivo PDF
	 * @param numeroCopias -
	 *            inteiro que define numero de copias ( precisar ser maior que
	 *            zero)
	 * @param usarPaisagem -
	 *            indica se deseja imprimir usando paisagem ou nao.
	 * @throws Exception -
	 *             lancado quando algum parametro invalido/nulo ou nenhuma
	 *             impressora disponivel ou erro ao tentar imprimir.
	 */
	public static void imprimirPdf(String nomeImpressora, File arquivoPdf,
			Integer numeroCopias) throws ImpressaoException, IOException, PrinterException {		
		
		boolean impressoraRegistradaSistema = false;
		if (!StringUtils.isBlank(nomeImpressora) && arquivoPdf != null
				&& numeroCopias != null && numeroCopias > 0) {
			PrinterJob print = PrinterJob.getPrinterJob();
			print.setCopies(numeroCopias);
			PrintService[] impressoras = PrinterJob.lookupPrintServices();
			
			if (! (impressoras.length>0) ){
				throw new ImpressaoException("nenhuma.impressora.disponivel.sistema.operacional");
			}
			
			for (PrintService ps : impressoras) {
				
				if (nomeImpressora.equals(ps.getName())) {
						
						impressoraRegistradaSistema = true;
						print.setPrintService(ps);
						print.setJobName(arquivoPdf.getName());
						Pageable page = PDDocument.load(arquivoPdf);
						print.setPageable(page);
						print.print();
					
				}
			}			
			if(!impressoraRegistradaSistema){
				throw new ImpressaoException("Erro: Impressora informada não está instalada nesse servidor!");
			}
			if (!(impressoras.length > 0)) {
				throw new ImpressaoException("Erro: Nenhuma impressora disponivel!");
			}
		} else {
			throw new ImpressaoException(
					"Erro: Parametros Informados Inválidos, impossivel imprimir.");
		}
	}
J

Há um problema, meu Jar está no Servidor, quero imprimir no Cliente, seria necessário um Applet[/url]?.. e outra… gostaria de passar o Arquivo PDF e … deste imprimir somente da Página x a Y Ex: Arquivo de 10 Págs. quero da Pag 3 a 6.

Mesmo assim agradecidooo pela ajuda!!!

F

da uma olhada em

com.lowagie.text.pdf.PdfReader;

la tem uns esquemas de trabalhar com as pagina do pdf

ex:

private int calculaQuantidadePaginas(TramitacaoProcessoDocumentoEntity tp){
		
		int qtPaginas = 0;
		PdfReader pdfReader;
		
		try {
			pdfReader = new PdfReader(tp.getSbAnexo());
			qtPaginas = pdfReader.getNumberOfPages();
		} catch (IOException e) {
			log.error("Erro ao le PDF para calculo de quantidade de paginas", e);
		}
		
		return qtPaginas;
	}

acho que caminhando por ai vc acha como pegar apenas as paginas que vc quer…

J

Consegui fazer da seguinte forma, eu fuçeiiiii demais… baixei uma Applet tal de jPDF… comecei criar meus codigos utilizando a bilbioteca deste (sem src, só jar…) e DEMO… bom…

dai eu add assim…

HashPrintRequestAttributeSet attrSet = new HashPrintRequestAttributeSet(); //Ajusteeesssss

e agora o intervalo de paginas

PageRanges pr = new PageRanges(3, 9);

attrSet.add(pr);  // Intervalo de páginas...depois tiro essas constantes

Pronto… agora vou só deixar mais do meu Jeito!!!

Valeu Cara… Valeu Muitoooooooo!!! :smiley:

Vou mesclar o meu código anterior, esse ajuste e o que voce me passouuuu!!!

Logo que eu acabar, posto o Src aqui …!!! vlaaaaaweeueue

J

ixxxii…

agora veio o seguinte problema,

Muitos Warnings são gerados durante a geração da Impressão do PDF,

Porem,

porem quando a impressão é concluida, verifico que (tanto PDFCreator como Impressora Comum):

Somente as Imagens Aparecem na Impressão o que é texto ou não aparece, ou fica meio de distorcido…

E Agoraaaa???

o que seráaaaa???

Criado 2 de junho de 2010
Ultima resposta 4 de jun. de 2010
Respostas 5
Participantes 2