List of usage examples for org.apache.pdfbox.pdmodel PDPage PDPage
public PDPage()
From source file:se.streamsource.streamflow.web.application.pdf.PdfDocument.java
License:Apache License
public void init() { try {// www. ja v a 2 s. c om pdf = new PDDocument(); PDPage page = new PDPage(); pdf.addPage(page); page.setMediaBox(pageSize); maxStringLength = page.getMediaBox().getWidth() - (leftMargin + rightMargin); contentStream = new PDPageContentStream(pdf, page); contentStream.beginText(); y = page.getMediaBox().getHeight() - headerMargin; contentStream.moveTextPositionByAmount(leftMargin, y); } catch (IOException e) { try { if (contentStream != null) { contentStream.close(); } } catch (IOException ioe) { contentStream = null; } throw new IllegalStateException(e.getMessage()); } }
From source file:se.streamsource.streamflow.web.application.pdf.PdfDocument.java
License:Apache License
private void pageBreakIfNeeded(PdfFont font) throws IOException { if (y - font.height < footerMargin) { PDPage newPage = new PDPage(); newPage.setMediaBox(pageSize);// w ww.j a va2 s .c o m if (contentStream != null) { contentStream.endText(); //Drawing all lines here after complete filling page if (this.pageLines.size() > 0) { for (ListIterator<LineObject> itr = pageLines.listIterator(); itr.hasNext();) { LineObject lineObject = itr.next(); this.line(lineObject.getEndX(), lineObject.getyPosition(), lineObject.getColor()); itr.remove(); } } contentStream.close(); } pdf.addPage(newPage); contentStream = new PDPageContentStream(pdf, newPage); y = newPage.getMediaBox().getHeight() - headerMargin - font.height; contentStream.beginText(); contentStream.moveTextPositionByAmount(leftMargin, y); } }
From source file:so.rezervacija.StampajRezervaciju.java
@Override protected void izvrsiKonkretnuOperaciju() throws Exception { PDDocument doc = null;/* w w w . j ava 2 s. com*/ PDPage page = null; try { doc = new PDDocument(); page = new PDPage(); doc.addPage(page); PDFont pdfFont = PDType1Font.HELVETICA_BOLD; float fontSize = 25; float leading = 1.5f * fontSize; PDPageContentStream contentStream = new PDPageContentStream(doc, page); PDRectangle mediabox = page.findMediaBox(); float margin = 72; float width = mediabox.getWidth() - 2 * margin; float startX = mediabox.getLowerLeftX() + margin; float startY = mediabox.getUpperRightY() - margin; String text = "Izvrsili ste rezervaciju za tretman " + r.getTretman() + ", vreme rezervacije:" + new SimpleDateFormat("YYYY-MM-dd HH:mm").format(r.getVreme()) + " zaposleni koji ce vrsiti tretman:" + r.getZaposleni().getImePrezime(); List<String> lines = new ArrayList<String>(); int lastSpace = -1; while (text.length() > 0) { int spaceIndex = text.indexOf(' ', lastSpace + 1); if (spaceIndex < 0) { lines.add(text); text = ""; } else { String subString = text.substring(0, spaceIndex); float size = fontSize * pdfFont.getStringWidth(subString) / 1000; if (size > width) { if (lastSpace < 0) // So we have a word longer than the line... draw it anyways { lastSpace = spaceIndex; } subString = text.substring(0, lastSpace); lines.add(subString); text = text.substring(lastSpace).trim(); lastSpace = -1; } else { lastSpace = spaceIndex; } } } contentStream.beginText(); contentStream.setFont(pdfFont, fontSize); contentStream.moveTextPositionByAmount(startX, startY); for (String line : lines) { contentStream.drawString(line); contentStream.moveTextPositionByAmount(0, -leading); } contentStream.endText(); contentStream.close(); doc.save("PotvrdaRezervacije.pdf"); if (Desktop.isDesktopSupported()) { try { File myFile = new File("../ServerProjekat/PotvrdaRezervacije.pdf"); Desktop.getDesktop().open(myFile); } catch (IOException ex) { // no application registered for PDFs } } doc.close(); } catch (Exception e) { System.out.println(e); } }
From source file:src.view.controller.MainController.java
public void testAddImage() { try {/*from w w w . j a va 2 s . com*/ ImageController imageController = new ImageController(); // Chargement du document File file = new File(TEST_DOC_TITLE + ".pdf"); PDDocument document = PDDocument.load(file); document.addPage(new PDPage()); PDPageContentStream contentStream = new PDPageContentStream(document, document.getPage(document.getNumberOfPages() - 1), PDPageContentStream.AppendMode.APPEND, true); // Ajout d'une image sur la deuxime page imageController.addImage(document, contentStream, TEST_IMG_NAME, 100, 400, 0.2f); contentStream.close(); document.save(TEST_DOC_TITLE + ".pdf"); document.close(); System.out.println(TRANSLATOR.getString("TEST_IMAGE_ADDED")); } catch (IOException e) { System.out.println(e.toString()); } }
From source file:src.view.controller.MainController.java
public void testAddTable() { try {//from w ww.jav a2 s.c o m TableController tableController = new TableController(); // Chargement du document File file = new File(TEST_DOC_TITLE + ".pdf"); PDDocument document = PDDocument.load(file); document.addPage(new PDPage()); PDPageContentStream contentStream = new PDPageContentStream(document, document.getPage(document.getNumberOfPages() - 1), PDPageContentStream.AppendMode.APPEND, true); // Instanciation d'un tableau Table table = new Table(100, 600, 200, 200); // Gnration du tableau table.generateTable(2, 7); table.addColumns(2); // Rcupration d'une cellule Cell cell = table.getCell(0); // Initialisation du contenu cell.setContent("TEST"); // Affichage du contenu dans la cellule tableController.printCellContent(contentStream, cell, "center", "middle"); // Ajout d'un tableau tableController.printTable(contentStream, table, false); contentStream.close(); document.save(TEST_DOC_TITLE + ".pdf"); System.out.println(TRANSLATOR.getString("TEST_TABLE_ADDED")); } catch (IOException e) { System.out.println(e.toString()); } }
From source file:src.view.controller.menu.MenuDocument.java
/** * Bouton d'ajout de page au document en cours *///from w w w . j a v a 2 s . c o m public static void btnDocumentAddPage() { PDDocument document = INSTANCE.getDocFileOpened().getDocument(); document.addPage(new PDPage()); Displayer.addPageOpenedTab(); System.out.println(TRANSLATOR.getString("PAGE_ADD_SUCCESS")); }
From source file:st.schoepfer.dicom2pdf.pdf.handler.PdfFileHandler.java
private void loadPDFFile() { // Laded die gewnschte Datei. // Wenn dabei ein Fehler auftritt wird ein neues Dokument mit einer leeren Seite geladen. try {//from ww w .j ava 2 s . c o m this.aFile = PDDocument.load(this.FileName); } catch (Exception ex) { this.aFile = new PDDocument(); this.aFile.addPage(new PDPage()); } }
From source file:stepReport.reports.model.savePDFModel.java
public void savePDFSemanal(File file, String[][] matrizDados) { if (matrizDados == null) return;/*from ww w . j a v a 2 s . c om*/ //Cria o documento PDDocument document = new PDDocument(); //Vou criando as paginas dinamicamente de acordo com o numero de registros a serem impressos. //Para cada 25 registros, crio uma nova pagina //O valor de k vai ser atualizado durante o loop de impressao de registros, //assim como o loop de impressao de registro comeca a partir do valor de k int k = 1; int pagina = 0; while (k < matrizDados.length) { //Variavel com o numero da pagina pagina++; //Adiciona uma pagina PDPage page = new PDPage(); //Configura o padrao de tamanho da pagina page.setMediaBox(PDRectangle.A4); //Configura a orientacao page.setRotation(90); //Adiciona a pagina ao documento document.addPage(page); PDFont font; //Obtem a largura da pagina float pageWidth = page.getMediaBox().getWidth(); try { //abre o buffer pra edicao da pagina PDPageContentStream contentStream = new PDPageContentStream(document, page); //Gira a pagina em 90 graus contentStream.transform(new Matrix(0, 1, -1, 0, pageWidth, 0)); PDImageXObject pdImage = PDImageXObject.createFromFile("./step2.png", document); contentStream.drawImage(pdImage, 30, 520); //Define a cor da letra contentStream.setNonStrokingColor(Color.BLACK); //Abre pra edicao escrita contentStream.beginText(); //Configura a fonte de titulo e o tamanho no buffer font = PDType1Font.COURIER_BOLD; contentStream.setFont(font, 18); contentStream.setLeading(14.5f); contentStream.newLineAtOffset(250, 530); contentStream.showText("Resumo de Horas semanais"); //Imprime o numero da pagina font = PDType1Font.COURIER; contentStream.setFont(font, 12); contentStream.newLineAtOffset(490, 0); contentStream.showText("Pag " + Integer.toString(pagina)); //Define o ponto de partida em X e Y contentStream.newLineAtOffset(-700, -50); //Define a fonte do cabecalho font = PDType1Font.COURIER_BOLD; contentStream.setFont(font, 12); //carrega o cabecalho com nome, profissao, itera pra cada data da semana e depois o total String titulo = StringUtils.rightPad("Nome", 20) + StringUtils.rightPad("Profissao", 16); for (int i = 2; i < matrizDados[0].length; i++) titulo += matrizDados[0][i] + " "; //Escreve o cabecalho contentStream.showText(titulo); //Troca a fonte pra normal font = PDType1Font.COURIER; contentStream.setFont(font, 12); //TODO criar loop duplo para criar pagina e depois imprimir o dado enquanto houver dados a serem impressos contentStream.newLine(); //Para cada linha da matriz recebida, vou formatar os campos nome, profissao, cada data da semana e o total pra imprimir na linha //Tenho que comecar a partir de k porque pode nao ser a primeira pagina. //Configuro o limite baseado se eu estou ou nao na ultima pagina int limite = (k + savePDFModel.REGISTROS_PAGINA < matrizDados.length - 1) ? savePDFModel.REGISTROS_PAGINA : matrizDados.length - k; for (int i = 0; i < limite; i++) { String nome = this.formatName(matrizDados[i + k][0]); String profissao = this.formatProfissao(matrizDados[i + k][1]); String linha = nome + profissao; for (int j = 2; j < matrizDados[i].length; j++) linha += StringUtils.rightPad(matrizDados[i + k][j], 10); contentStream.showText(linha); contentStream.newLine(); } k += limite; //Imprime o total em negrito quando chega no final System.out.println(k); if (k >= matrizDados.length) { font = PDType1Font.COURIER_BOLD; contentStream.setFont(font, 12); Double[] totais = new Double[matrizDados[0].length - 2]; for (int i = 0; i < totais.length; i++) totais[i] = 0.0; for (int i = 1; i < matrizDados.length; i++) { for (int j = 2; j < matrizDados[i].length; j++) { if (!matrizDados[i][j].equals("")) totais[j - 2] += Double.parseDouble(matrizDados[i][j]); } } String linhaTot = StringUtils.rightPad("Totais", 36); for (int i = 0; i < totais.length; i++) { linhaTot += StringUtils.rightPad(totais[i].toString(), 10); } contentStream.showText(linhaTot); //Imprime a linha de assinatura this.signatureLine(contentStream); } contentStream.endText(); contentStream.close(); } catch (javax.imageio.IIOException ex) { JOptionPane.showMessageDialog(new JFrame(), "Imagem step2.png no encontrada"); return; } catch (IOException ex) { Logger.getLogger(savePDFModel.class.getName()).log(Level.SEVERE, null, ex); } } try { //Esse save vai dentro do loop? document.save(file); document.close(); } catch (IOException ex) { Logger.getLogger(savePDFModel.class.getName()).log(Level.SEVERE, null, ex); } }
From source file:swp.bibjsf.renderer.Printer.java
License:Apache License
/** * Creates a PDF document containing the ID cards for <code>idcontent</code>. * * @param idcontent idcontent data of readers whose ID card is to be printed * @return PDF document containing the ID cards * @throws IOException thrown if document cannot be created *///from www . j a v a 2 s. c om protected PDDocument createDocument(List<Content> idcontent) throws IOException { // Create a document and add a page to it PDDocument document = new PDDocument(); PDPage page = new PDPage(); page.setMediaBox(PDPage.PAGE_SIZE_A4); document.addPage(page); int rowNumber = 0; int columnNumber = 0; // print numberOfCardsPerColumn x numberOfCardsPerRow cards per A4 page for (Content data : idcontent) { // System.out.println("IDCardPrinter.createDocument() " + columnNumber + " " + rowNumber); printCard(document, page, columnNumber, rowNumber, data); columnNumber++; if (columnNumber % numberOfCardsPerRow() == 0) { // start new row rowNumber++; columnNumber = 0; } if (rowNumber == numberOfCardsPerColumn()) { // start new page page = new PDPage(); page.setMediaBox(PDPage.PAGE_SIZE_A4); document.addPage(page); rowNumber = 0; } } return document; }
From source file:uia.pdf.PDFMakerTest.java
License:Apache License
@Test public void justTest() throws Exception { PDDocument doc = new PDDocument(); try {/*from w w w . j a va 2 s .c om*/ PDPage page = new PDPage(); doc.addPage(page); PDPageContentStream contents = new PDPageContentStream(doc, page, AppendMode.APPEND, false, false); contents.moveTo(20, 650); contents.lineTo(500, 650); contents.stroke(); contents.close(); PDImageXObject pdImage = PDImageXObject .createFromFile(PDFMakerTest.class.getResource("sample.jpg").getFile(), doc); contents = new PDPageContentStream(doc, page, AppendMode.APPEND, false, false); contents.drawImage(pdImage, 20, 700); contents.close(); contents = new PDPageContentStream(doc, page, AppendMode.APPEND, false, false); contents.moveTo(20, 550); contents.lineTo(500, 550); contents.stroke(); contents.close(); doc.save("C:\\TEMP\\IMAGE.PDF"); } finally { doc.close(); } }