[Resolvido]Como gerar um pdf do PrinterJob?

Pessoal tenho aqui um bloco de codigo que imprime diretamente na impressora local padrao.
Quero saber como gerar um pdf atraves do PrinterJob, esse pdf vou usar em projeto web.

PrintService  service = PrintServiceLookup.lookupDefaultPrintService();

PrinterJob job = PrinterJob.getPrinterJob();
job.setPrintService(service);
job.setPrintable(relatorio, relatorio.getFormatoPagina());
job.setCopies(relatorio.getCopias());
job.print();// imprime direto na impressora

Como gerar um pdf do PrinterJob ???

Alguém ?

Juro que algum dia ainda vou criar um blog com soluções para os mistérios de programação que o google não soluciona kkkkkkkkkkk
Ta ai mais uma solução :slight_smile:

private byte[] gerarPdfRelatorio(Relatorio relatorio) throws DocumentException {

		relatorio.gerarRelatorio();

		Document doc = new Document();
		ByteArrayOutputStream baos = new ByteArrayOutputStream();
		PdfWriter writer = PdfWriter.getInstance(doc, baos);

		if (writer != null) {
			doc.compress = true;
			writer.setFullCompression();
		}

		doc.setMargins(0, 0, 0, 0);
		doc.open();
		PdfContentByte cb = writer.getDirectContent();
		writer.setMargins(0, 0, 0, 0);

		for (int p = 0; p < relatorio.getQuantidadePaginas(); p++) {
			PdfTemplate tp = cb.createTemplate(relatorio.getTamanho().width, relatorio.getTamanho().height);
			Graphics2D g2 = tp.createGraphics(relatorio.getTamanho().width, relatorio.getTamanho().height);

			relatorio.print((Graphics) g2, new PageFormat(), p);
			g2.dispose();
			cb.addTemplate(tp, 0, 0);
			if (p < relatorio.getQuantidadePaginas())
				doc.newPage();
		}

		doc.close();

		return baos.toByteArray();