Acrobat Reader

6 respostas
M

Olá pessoal!!
Tenho uma aplicação desktop. Fiz um relatório no iReport e do tamanho largura 20 e altura 14 (1/2 formulario contínuo). Pois bem, quando clico no botão que abre o relatório e este abre no jasperviewer o relatório é impresso do modo paisagem. Quando abro no acrobat reader ele imprime da forma correta que é retrato. Alguém sabe como posso abrir meu relatório direto no acrobat reader.

Obrigada!!

iReport 1.2.6

6 Respostas

D

Olá!

Se eu não me engano, vc precisa abrir o pdf num popup ou fazer o download dele pra máquina…e depois vc abre da maneira tradicional…clicando 2x e tal!

Alguém me corrija se eu estiver errado

[]'s

M

Minha aplicação é desktop!!!

KWill

Tente então forçar a abertura do relatorio com a classe Runtime ou a classe ProcessBuilder, que criam processos do sistema operacional.

Espero ter ajudado.

Inté

M
Seria mais ou menos assim??:
package br.com.sstintas.controller;

import java.sql.Connection;
import java.util.Map;

import com.lowagie.text.pdf.PdfLayer;

import net.sf.jasperreports.engine.JasperExportManager;
import net.sf.jasperreports.engine.JasperFillManager;
import net.sf.jasperreports.engine.JasperPrint;
import net.sf.jasperreports.engine.JasperReport;
import net.sf.jasperreports.view.JasperViewer;


public class JasperReportControllerVenda {
	
	private static JasperReport jr;
	private static JasperPrint jp;
	
	public JasperReportControllerVenda() {
		super();
	}
	
	public static void geraRelatorioVendas(Connection c, Map params) {
		
		try {
			
			jp = JasperFillManager.fillReport("F:/implementacao/sstintas/relatorios/relatorioVenda.jasper", params, c);
			JasperExportManager.exportReportToPdfFile(jp, "F:/implementacao/sstintas/relatorios/relatorioVenda.pdf");
Runtime.getRuntime().exec("cmd.exe start /C:/Arquivos de programas/Adobe/Acrobat 7.0/Reader/acroRd32 /p /h" +
 "F:/implementacao/sstintas/relatorios/relatorioVenda.pdf");
			//JasperViewer.viewReport(jp, false); 
				
		} catch(Exception ex) {
			ex.printStackTrace();
		}
	}

}
KWill

É mais ou menos isso no caso do Windows.

Tente usar isto aqui:

Runtime.getRuntime().exec("cmd.exe /c start /C:/Arquivos de programas/Adobe/Acrobat 7.0/Reader/acroRd32 /p /h" +
  "F:/implementacao/sstintas/relatorios/relatorioVenda.pdf");

Perceba o “/c” depois de “cmd.exe”.

Se não me engano, acho que você pode passar apenas o local do arquivo no sistema de arquivo como parâmetro do Runtime.exec(String command) que o SO vai tentar abrir aquele arquivo com a aplicação associada a ele e sendo assim acho que a aplicação ficará mais portável.

Espero ter ajudado.

Inté

M

Kwill
Era isso mesmo!!
Valeu pela dica!!!
Salvou minha vida!! :smiley:

Criado 24 de outubro de 2006
Ultima resposta 24 de out. de 2006
Respostas 6
Participantes 3