Bom dia a toos.
preciso imprimir um pdf em uma impressora da rede.
O único problema é a a impressão do pdf sai completamente fora dos formatos especificados.
Ou seja, se eu pegar e mostrar o dialog na tela e mandar imprimir, show funciona perfeitamente. Mas se eu mandar imprimir diretamente sem abrir o dialog nao funciona.
Já tentei até criar um pdf do relatorio. O pdf fica certinho. Mas se eu mandar imprimir o pdf para uma impressora da rede sem abrir o dialog de impressao. Novamente sai completamente sem formatação de fontes.
Não sei mais o que é.
vou mostrar aqui as varias maneiras que já tentei.
EX:01
public static void printDocument() throws Exception {
PrintRequestAttributeSet attrs = new HashPrintRequestAttributeSet();
File file = new File("c:\\manda\\teste.pdf");
PDDocument document = PDDocument.load(file);
// PrintService myPrintService = findPrintService(“Caixa-02”);
PrintService myPrintService = findPrintService(“MACARRAO”);
PrinterJob job = PrinterJob.getPrinterJob();
PDFPageable pageAble = new PDFPageable(document, Orientation.PORTRAIT, false);
PDFPrintable printAble = new PDFPrintable(document, Scaling.SCALE_TO_FIT, false);
job.setPageable(pageAble);
attrs.remove(OrientationRequested.class);
attrs.add(OrientationRequested.PORTRAIT);
job.setPageable(new PDFPageable(document));
job.setPrintable(printAble);
job.setPrintService(myPrintService);
job.print(attrs);
}
private static PrintService findPrintService(String printerName) {
PrintService[] printServices = PrintServiceLookup.lookupPrintServices(null, null);
for (PrintService printService : printServices) {
if (printService.getName().trim().equalsIgnoreCase(printerName)) {
return printService;
}
}
return null;
}
EX:02
String spdf = “c:\tmp\exemplo.pdf”;
PDDocument documento = PDDocument.load(new File(spdf));
PrinterJob job = PrinterJob.getPrinterJob();
job.setPageable(new PDFPageable(documento));
job.setPrintService(ipadrao);
job.setCopies(1);
PrintRequestAttributeSet printReq = new HashPrintRequestAttributeSet();
printReq.add(OrientationRequested.PORTRAIT);
job.getPageFormat(printReq);
job.print();
documento.close();