Bom dia a todos, amigos do grupo, eu estou desenvolvendo uma aplicacao que imprime uma mapa de separacao de mercadoria, o problema é que gostaria de que todos os itens saíssem numa unica folha, esta acontecendo que dependendo da quantidade de itens esta saindo duas ou tres folhas… mas quero tudo em uma so folha
No meu relatorio esta marcado esta opçao porem ela nao funciona como diz a documentacao (imprima todo o documento como uma página simples)
Eu tenho este metodo que executa perfeitamente, porem como falei antes ele emiti mas de uma folha dependendo da quantidade dos itens.
public boolean setImprimirMapaDeSeparaoImpressoraEspecifica(Ent_Tela_Caixa caixa) {
if (tela_dao.setUpdatePedido(caixa)) {
Connection conexao = Conexao.ObterConexao();
try {
String jasper = "C:\\RelatoriosAdministrativos\\MPSeparacao.jasper";
//Prametros
Map<String, Object> param = new HashMap<>();
HashMap filtro = new HashMap();
filtro.put("NUMPED", caixa.getNumped().toString());
filtro.put("EXPEDICAO", caixa.getLocal().toString());
filtro.put("CODFILIAL", caixa.getCodfilialretira().toString());
filtro.put("CODDEPOSITO", caixa.getCoddeposito().toString());
//Gerando a Visualização do Relatório
JasperPrint print = JasperFillManager.fillReport(jasper, filtro, conexao);
String impressoraSelecionada = caixa.getImpressora();
PrintService[] services = PrintServiceLookup.lookupPrintServices(null, null);
PrintService psSelected = null;
for (PrintService ps : services) {
if (ps.getName().equals(impressoraSelecionada)) {
psSelected = ps;
break;
}
}
if (psSelected != null) {
PrintRequestAttributeSet printRequestAttribute = new HashPrintRequestAttributeSet();
PrintServiceAttributeSet printServiceAttribute = new HashPrintServiceAttributeSet();
printRequestAttribute.add (MediaSizeName.LEDGER);
printServiceAttribute.add(new PrinterName(impressoraSelecionada, null));
JRPrintServiceExporter exporter = new JRPrintServiceExporter();
exporter.setParameter(JRPrintServiceExporterParameter.PRINT_SERVICE, psSelected);
exporter.setParameter(JRExporterParameter.IGNORE_PAGE_MARGINS,false);
exporter.setParameter(JRPrintServiceExporterParameter.PRINT_REQUEST_ATTRIBUTE_SET,printRequestAttribute);
exporter.setParameter(JRExporterParameter.JASPER_PRINT, print);
exporter.exportReport();
}
resp = true;
} catch (Exception erro) {
System.out.println("ERRO " + erro.getMessage());
erro.printStackTrace();
resp = false;
return resp;
} finally {
Conexao.fecharConexao(conexao);
return resp;
}
} else {
System.err.println("Erro ao Imprimir");
}
return resp;
}
Dependendo da quantidade de informação, fica inviável apresentar tudo numa página só. Ainda mais se for em formato de tabela ou lista. Para que fique numa página sempre, vc deve elaborar o relatório para essa finalidade.
Imagine uma relatório que gere um certificado de curso, por exemplo. Dificilmente ele terá 2 páginas, pois o conteúdo cabe perfeitamente numa única página.
Bom dia lucas, aqui na empresa tem uma aplicacao que imprime tudo numa unica pagina, so que aplicacao ém php, nao usa jasper, tipo a impressora é uma termica de 80 mm tipo de super mercado… entao eu sei que da para imprimir, so nao sei como faz no java… as veses como aqui material de marcenaria a impressao chega ate um metro…so que nao sei como fazer o jasper imprimir tudo. ja que a bobina tem 40 metros
Ahh tah. Tu tah falando dessas impressoras térmicas. Nesse caso, se não me engano, o pessoal trabalha enviando uma String
formatada para impressora.
Com o jasper, acredito que o caminho seja a propriedade que vc estava tentando usar msm: Ignore Pagination, mas talvez não tenha funcionado por conta de algum detalhes. Encontrei esse link (da documentação do jasperreports) que possui alguns exemplos de gerar o relatório ignorando as páginas: JasperReports 6.17.0 - No Page Break Sample