List of usage examples for org.apache.pdfbox.pdmodel PDDocument save
public void save(OutputStream output) throws IOException
From source file:interfaces.InterfazPrincipal.java
private void botonGuardarFacturaActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_botonGuardarFacturaActionPerformed // TODO add your handling code here: String id_cliente = jTextField_Factura_Cliente_Id.getText(); if (id_cliente.equals("") || valorActualFactura.equals("0.0")) { JOptionPane.showMessageDialog(this, "Por favor indique el monto de la factura o ingrese los productos a ella"); } else {/* w w w . jav a 2 s . c o m*/ //System.err.println("Numero de filas" + TablaDeFacturaProducto.getRowCount()); ArrayList<String> lineaCodigoProductos = new ArrayList<String>(); ArrayList<String> lineaUnidadesProductos = new ArrayList<String>(); ArrayList<String> lineaMontoProductos = new ArrayList<String>(); double monto = 0d; try { double pago = Double.parseDouble( (String) JOptionPane.showInputDialog("Ingrese por favor el monto pagado por el cliente")); while (pago < 0.0) { pago = Double.parseDouble((String) JOptionPane.showInputDialog( "El pago debe ser positivo \nIngrese por favor el monto pagado por el cliente")); } double prestamo = Double.parseDouble(valorActualPrestamo.getText()); double montoFactura = Double.parseDouble(valorActualFactura.getText()); while (montoFactura - pago < 0.0) { pago = Double.parseDouble((String) JOptionPane.showInputDialog( "El pago no debe ser superior al monto de la factura \nIngrese por favor el monto pagado por el cliente")); } if (prestamo - montoFactura <= 0.0) { int opcion = JOptionPane.showConfirmDialog(this, "Con este prstamo el cliente excede su limite de prestamos. \n Desea continuar?", "Mensaje del sistema", JOptionPane.YES_NO_OPTION); if (opcion != JOptionPane.YES_OPTION) { return; } } for (int i = 0; i < TablaDeFacturaProducto.getRowCount(); i++) { /* * Fila 0: ID producto * Fila 4: Cantidad */ String ProductoId = String.valueOf(TablaDeFacturaProducto.getValueAt(i, 0)); lineaCodigoProductos.add(ProductoId); int numeroUnidades = Integer.parseInt(String.valueOf(TablaDeFacturaProducto.getValueAt(i, 4))); String unidades = String.valueOf(numeroUnidades); lineaUnidadesProductos.add(unidades); double valorUnitario = Double .parseDouble(String.valueOf(TablaDeFacturaProducto.getValueAt(i, 5))); double valorProductoTotal = numeroUnidades * valorUnitario; lineaMontoProductos.add(String.valueOf(valorProductoTotal)); monto += valorProductoTotal; } if (TablaDeFacturaProducto.getRowCount() == 0) { monto = Double.parseDouble(valorActualFactura.getText()); } String estado = ""; if (monto == pago) { estado = "pagado"; } else { estado = "fiado"; } ControladorFactura controladorFactura = new ControladorFactura(); //String[] selection = {"cliente_id", "fecha", "estado", "identificacionCliente"}; Calendar calendario = Calendar.getInstance(); String dia = Integer.toString(calendario.get(Calendar.DATE)); String mes = Integer.toString(calendario.get(Calendar.MONTH)) + 1; String annio = Integer.toString(calendario.get(Calendar.YEAR)); Date date = new Date(); DateFormat hourFormat = new SimpleDateFormat("HH:mm:ss"); String hora = hourFormat.format(date); String fecha = annio + "-" + mes + "-" + dia + " " + hora; String[] selection = { id_cliente, fecha, estado, String.valueOf(monto) }; ArrayList<String[]> facturaActual = controladorFactura.insertFactura(selection); //Ingresar productos if (TablaDeFacturaProducto.getRowCount() > 0) { ControladorFactura_Productos controladorFactura_Productos = new ControladorFactura_Productos(); for (int i = 0; i < lineaCodigoProductos.size(); i++) { // String [] selection = {"factura_id","producto_id","unidades","precio"}; String[] insertarLineaProducto = { facturaActual.get(0)[0], lineaCodigoProductos.get(i), lineaUnidadesProductos.get(i), lineaMontoProductos.get(i) }; controladorFactura_Productos.insertFactura_Productos(insertarLineaProducto); } } //Ingresar flujo factura ControladorFlujoFactura controladorFlujoFactura = new ControladorFlujoFactura(); // String [] selection = {"factura_id","tipo_flujo","fecha","identificacionCliente"}; String value[] = { facturaActual.get(0)[0], "abono", fecha, String.valueOf(pago) }; controladorFlujoFactura.insertFlujo_Factura(value); String value2[] = { facturaActual.get(0)[0], "deuda", fecha, String.valueOf(monto) }; controladorFlujoFactura.insertFlujo_Factura(value2); botonEstablecerMontoFactura.setEnabled(false); botonAgregarProducto.setEnabled(false); botonGuardarFactura.setEnabled(false); jTextField_Factura_Cliente_Id.setText(""); DefaultTableModel modeloTabla = (DefaultTableModel) TablaDeFacturaProducto.getModel(); for (int i = 0; i < modeloTabla.getRowCount(); i++) { modeloTabla.removeRow(i); } modeloTabla.setRowCount(0); TablaDeFacturaProducto.setModel(modeloTabla); Object opciones[] = { "Cerrar", "Imprimir", "Guardar en disco" }; GenerarFactura generarFactura = new GenerarFactura(); int opcion = JOptionPane.showOptionDialog(this, "Se ha guardado la factura con xito\nQue desea hacer?", "Elija una opcin", JOptionPane.OK_CANCEL_OPTION, JOptionPane.INFORMATION_MESSAGE, null, opciones, null); switch (opcion) { case 1: generarFactura.imprimirFactura(Integer.parseInt(facturaActual.get(0)[0]), this); break; case 2: PDDocument documento = generarFactura.crearFactura(Integer.parseInt(facturaActual.get(0)[0]), this); JFileChooser fc = new JFileChooser(); FileNameExtensionFilter filter = new FileNameExtensionFilter("Archivo PDF", "pdf", "text"); fc.setFileFilter(filter); fc.showSaveDialog(this); if (fc.getSelectedFile() != null) { File selectedFile = fc.getSelectedFile(); try { documento.save(selectedFile + ".pdf"); JOptionPane.showMessageDialog(this, "El archivo ha sido guardado en disco"); } catch (Exception ex) { JOptionPane.showMessageDialog(this, "EL Archivo no se puede leer!"); } } break; default: break; } nombreClienteCrearFactura.setText(""); IdentificacionClienteBuscarFactura.setText(""); valorActualPrestamo.setText(""); jTextField_Factura_Cliente_Id.setText(""); jTextField_Factura_Producto_Nombre.setText(""); jTextField_Factura_Producto_Descripcion.setText(""); valorMontoFactura.setText(""); valorActualFactura.setText("0.0"); valorActualPrestamo.setText("0.0"); botonGuardarFactura.setEnabled(false); botonEstablecerMontoFactura.setEnabled(false); botonAgregarProducto.setEnabled(false); } catch (Exception e) { } } }
From source file:interfaces.InterfazPrincipal.java
private void TablaDeBuscarFacturaMouseClicked(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_TablaDeBuscarFacturaMouseClicked int fila = TablaDeBuscarFactura.getSelectedRow(); int identificacion = (int) TablaDeBuscarFactura.getValueAt(fila, 1); Object opciones[] = { "Imprimir", "Guardar", " Eliminar", "Cancelar" }; int opcion = JOptionPane.showOptionDialog(this, "Que operacin desea realizar con la factura " + identificacion + "?", "Mensaje del sistema", JOptionPane.OK_CANCEL_OPTION, JOptionPane.INFORMATION_MESSAGE, null, opciones, null); GenerarFactura generarFactura = new GenerarFactura(); switch (opcion) { case 0://from w w w . j a va 2 s. c om generarFactura.imprimirFactura(identificacion, this); break; case 1: PDDocument documento = generarFactura.crearFactura(identificacion, this); JFileChooser fc = new JFileChooser(); FileNameExtensionFilter filter = new FileNameExtensionFilter("Archivo PDF", "pdf", "text"); fc.setFileFilter(filter); fc.showSaveDialog(this); if (fc.getSelectedFile() != null) { File selectedFile = fc.getSelectedFile(); try { documento.save(selectedFile + ".pdf"); JOptionPane.showMessageDialog(this, "El archivo ha sido guardado en disco"); } catch (Exception ex) { JOptionPane.showMessageDialog(this, "El Archivo no se puede leer!\nInformacin tcnica\n" + ex.toString()); } break; } case 2: int confirmacion = JOptionPane.showConfirmDialog(this, "Quieres eliminar la factura " + identificacion + " factura?"); if (confirmacion == JOptionPane.YES_OPTION) { ControladorFactura controladorFactura = new ControladorFactura(); controladorFactura.deleteFactura(" where factura_id = " + identificacion); } break; case 3: break; default: break; } }
From source file:interfaces.InterfazPrincipal.java
private void jButton6ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton6ActionPerformed ControladorFlujoFactura controladorFlujoFactura = new ControladorFlujoFactura(); ArrayList<String[]> listado = controladorFlujoFactura.getTodosFlujo_Factura(""); DefaultTableModel modelo = (DefaultTableModel) TablaDeReporteDiario.getModel(); if (modelo.getRowCount() > 0) { for (int k = modelo.getRowCount() - 1; k > -1; k--) { modelo.removeRow(k);/*from w w w . j a v a2 s.co m*/ } } int contador = 1; double abono = 0; double deuda = 0; for (int i = 0; i < listado.size(); i++) { String[] fila = listado.get(i); String[] partirEspacios = fila[3].split("\\s"); //El primer string es la fecha sin hora //Ahora esparamos por - String[] tomarAgeMesDia = partirEspacios[0].split("-"); //Realizar filtro int ageConsulta = Integer.parseInt(tomarAgeMesDia[0]); int mesConsulta = Integer.parseInt(tomarAgeMesDia[1]); int diaConsulta = Integer.parseInt(tomarAgeMesDia[2]); Calendar fechaDeLaBD = new GregorianCalendar(ageConsulta, mesConsulta, diaConsulta); int anioInicial = fechaReporteDiario.getSelectedDate().get(Calendar.YEAR); int mesInicial = fechaReporteDiario.getSelectedDate().get(Calendar.MONTH) + 1; int diaInicial = fechaReporteDiario.getSelectedDate().get(Calendar.DAY_OF_MONTH); Calendar fechaInicialRango = new GregorianCalendar(anioInicial, mesInicial, diaInicial); //fechaReporteDiarioHasta int anioFinal = fechaReporteDiarioHasta.getSelectedDate().get(Calendar.YEAR); int mesFinal = fechaReporteDiarioHasta.getSelectedDate().get(Calendar.MONTH) + 1; int diaFinal = fechaReporteDiarioHasta.getSelectedDate().get(Calendar.DAY_OF_MONTH); Calendar fechaFinalRango = new GregorianCalendar(anioFinal, mesFinal, diaFinal); //System.out.println("antes"); //System.out.println("Va a comparar" + fechaDeLaBD.toString()); //System.out.println(" con " + fechaInicialRango.toString()); if (fechaDeLaBD.compareTo(fechaInicialRango) >= 0 && fechaDeLaBD.compareTo(fechaFinalRango) <= 0) { //System.out.println("Entra"); Object[] row = new Object[5]; row[0] = (contador); contador++; row[1] = fila[1]; row[2] = fila[3]; row[3] = fila[2]; row[4] = fila[4]; modelo.addRow(row); //flujo_id","factura_id","tipo_flujo","fecha","valor" /*System.out.println("fila 0" + fila[0]); System.out.println("fila 1" + fila[1]); System.out.println("fila 2" + fila[2]); System.out.println("fila 3" + fila[3]);*/ if (fila[2].equals("abono")) { abono += Double.parseDouble(fila[4]); } else { deuda += Double.parseDouble(fila[4]); } ; } } ReporteDiarioAbono.setText(abono + ""); ReporteDiarioDeuda.setText(deuda + ""); TablaDeReporteDiario.setModel(modelo); Object opciones[] = { "Cerrar", "Imprimir", "Guardar en disco" }; int opcion = JOptionPane.showOptionDialog(this, "Se ha generado el diario solicitado\nQue desea hacer?", "Elija una opcin", JOptionPane.OK_CANCEL_OPTION, JOptionPane.INFORMATION_MESSAGE, null, opciones, null); GenerarReporteDiario generarReporteDiario = new GenerarReporteDiario(); switch (opcion) { case 1: generarReporteDiario.imprimiDiario(fechaReporteDiario.getSelectedDate(), fechaReporteDiarioHasta.getSelectedDate(), modelo, this); break; case 2: PDDocument documento = generarReporteDiario.crearDiario(fechaReporteDiario.getSelectedDate(), fechaReporteDiarioHasta.getSelectedDate(), modelo, this); JFileChooser fc = new JFileChooser(); FileNameExtensionFilter filter = new FileNameExtensionFilter("Archivo PDF", "pdf", "text"); fc.setFileFilter(filter); fc.showSaveDialog(this); if (fc.getSelectedFile() != null) { File selectedFile = fc.getSelectedFile(); try { documento.save(selectedFile + ".pdf"); JOptionPane.showMessageDialog(this, "El archivo ha sido guardado en disco"); } catch (Exception ex) { JOptionPane.showMessageDialog(this, "EL Archivo no se puede leer!"); } } break; default: break; } }
From source file:io.konik.carriage.pdfbox.PDFBoxInvoiceAppender.java
License:Open Source License
@Override public void append(AppendParameter appendParameter) { InputStream inputPdf = appendParameter.inputPdf(); try {// w ww .ja v a 2 s . c o m PDDocument doc = PDDocument.load(inputPdf); setMetadata(doc, appendParameter); attachZugferdFile(doc, appendParameter.attachmentFile()); doc.getDocument().setVersion(1.7f); doc.save(appendParameter.resultingPdf()); doc.close(); } catch (Exception e) { throw new InvoiceAppendError("Error appending Invoice", e); } }
From source file:javaexample.RadialTextPdf.java
License:Open Source License
public void generateDocument() throws IOException, COSVisitorException { PDDocument document = new PDDocument(); try {/*from w w w . jav a 2 s . c o m*/ // Sets some document metadata. PDDocumentInformation information = new PDDocumentInformation(); information.setTitle("Radial Text PDF example with Apache PDFBox"); information.setAuthor("Andrea Binello (\"andbin\")"); document.setDocumentInformation(information); // Generates and saves the document. generatePage(document); document.save(filename); } finally { try { document.close(); } catch (IOException e) { } } }
From source file:johnbrooksupgrade.PDFService.java
private void SaveActionPerformed(java.awt.event.ActionEvent evt) { Salesman = txtNewUser.getText().isEmpty() ? cmbSalesPerson.getSelectedItem().toString() : txtNewUser.getText();/* w w w .j av a 2 s . c o m*/ Date = DateInput.getText(); String ClientName = ClientnameInput.getText(); String ProjectName = ProjectNameInput.getText(); if (Branch == null) { JOptionPane.showMessageDialog(null, "Please Select a branch and try again.", "Error", JOptionPane.ERROR_MESSAGE); } else { /*** * This is the logic that prints the information to a PDF ***/ //We want to save the file to Windows' temporary files folder so it can be loaded from there straight away //This temporary file is deleted when the program is exited File myfile = new File("C:\\Windows\\Temp\\ConveyorFile.pdf"); //creates a new pdf if ((myfile) != null) { try { PDDocument doc; PDPage page; doc = new PDDocument(); // Create a new blank page and add it to the document page = new PDPage(); doc.addPage(page); PDFont font = PDType1Font.COURIER_BOLD; PDPageContentStream content = new PDPageContentStream(doc, page); content.beginText(); content.setFont(font, 30); // creates a new page and gives it formatting of text content.moveTextPositionByAmount(110, 600); content.drawString("Technical Specifications "); PDFont font2 = PDType1Font.COURIER; content.setFont(font, 14); content.moveTextPositionByAmount(-50, -65); content.drawString("Date:" + Date); content.moveTextPositionByAmount(0, -14); content.drawString("Sales person: " + Salesman); content.moveTextPositionByAmount(0, -14); content.drawString("Client Name: " + ClientName); content.moveTextPositionByAmount(0, -14); content.drawString("Project Name: " + ProjectName); content.moveTextPositionByAmount(0, -14); content.drawString("Branch: " + Branch); content.moveTextPositionByAmount(0, -32); // Specifications content.setFont(PDType1Font.COURIER_BOLD, 20); content.drawString("Specifications"); content.moveTextPositionByAmount(0, -10); content.setFont(font, 14); content.moveTextPositionByAmount(10, -14); content.drawString("Speed of Belt M/pm: " + mainDataEntry.Speedofbeltanswer29f); content.moveTextPositionByAmount(0, -14); content.drawString( "Drum/Sprocket Mtrs: " + String.format("%.2f", mainDataEntry.Drumdiameterinput1)); content.moveTextPositionByAmount(0, -14); content.drawString("Metres per minute: " + mainDataEntry.getMetresperminuteanswer4f()); content.moveTextPositionByAmount(0, -14); content.drawString("Metres per hour: " + mainDataEntry.getMetresperhouranswer5f()); content.moveTextPositionByAmount(0, -14); content.drawString("Product per hour: " + mainDataEntry.getLengthperhouranswer7f()); content.moveTextPositionByAmount(0, -14); content.drawString("Kg's per hour: " + mainDataEntry.getKgsperhouranswer9f()); content.moveTextPositionByAmount(0, -14); content.drawString("Kg at any given time: " + mainDataEntry.getKgatanygiventimeanswer10f()); content.moveTextPositionByAmount(-10, -28); // Results content.setFont(PDType1Font.COURIER_BOLD, 20); content.drawString("Results"); content.moveTextPositionByAmount(0, -10); content.setFont(font, 14); content.moveTextPositionByAmount(10, -14); content.drawString("RPM: " + String.format("%.2f", mainDataEntry.getRpmconveyor34())); content.moveTextPositionByAmount(0, -14); content.drawString("Application Factor: " + mainDataEntry.getRadiananswer25f()); content.moveTextPositionByAmount(0, -14); content.drawString("Pull Force Kg/f: " + mainDataEntry.PullForce); content.moveTextPositionByAmount(0, -14); content.drawString("Nm Torque: " + mainDataEntry.getNmanswer15f()); content.moveTextPositionByAmount(0, -14); content.drawString("Service Factor: " + mainDataEntry.getServicefactor17f()); content.moveTextPositionByAmount(0, -14); content.drawString("Design Kw: " + mainDataEntry.getDesignkwanswer18f()); content.moveTextPositionByAmount(-10, -28); // Gearbox recommendations // only bother with section if the gearbox details aren't empty if (!mainDataEntry.GearboxDetailsForPDF.isEmpty()) { content.setFont(PDType1Font.COURIER_BOLD, 20); content.drawString("Gearbox/Motor Recommendations"); content.moveTextPositionByAmount(2, -25); content.setFont(PDType1Font.COURIER_BOLD, 18); content.drawString(mainDataEntry.GearboxType + ":"); content.setFont(font, 14); content.moveTextPositionByAmount(10, -25); String[] display; // For the brooks cyclo we need to split the string by these values // then write each index of the resulting array separately so the // result doesn't just run off the page display = mainDataEntry.GearboxDetailsForPDF.get(0).split("Ratio: |Overload "); // Only need to do this when the string has been split out by Ratio or Overload // i.e. this is only the case for brooks cyclo, the other two types fit the page fine if (display.length > 1) { display[1] = "Ratio: " + display[1]; content.drawString(display[0]); content.moveTextPositionByAmount(0, -14); content.drawString(display[1]); if (display.length > 2) { display[2] = "Overload " + display[2]; content.moveTextPositionByAmount(0, -14); content.drawString(display[2]); } } else { // first option must exist for the program to get this far content.drawString(mainDataEntry.GearboxDetailsForPDF.get(0)); } content.moveTextPositionByAmount(0, -14); // only bother with the second option if it exists if (mainDataEntry.GearboxDetailsForPDF.size() > 1) { display = mainDataEntry.GearboxDetailsForPDF.get(1).split("Ratio: |Overload "); if (display.length > 1) { content.moveTextPositionByAmount(0, -15); display[1] = "Ratio: " + display[1]; content.drawString(display[0]); content.moveTextPositionByAmount(0, -14); content.drawString(display[1]); if (display.length > 2) { display[2] = "Overload " + display[2]; content.moveTextPositionByAmount(0, -14); content.drawString(display[2]); } } else { content.moveTextPositionByAmount(0, -14); content.drawString(mainDataEntry.GearboxDetailsForPDF.get(1)); } } } content.endText(); image2 = ImageIO.read(new File("logosmall.jpg")); BufferedImage logo = image2; // writes the image to the file PDXObjectImage jblogo = new PDPixelMap(doc, logo); content.drawImage(jblogo, 20, 650); //postions image content.close(); doc.getDocument(); doc.save(myfile.getAbsolutePath()); // open the file Desktop.getDesktop().open(myfile); doc.close(); close(); //saves pdf and closes it } catch (IOException | COSVisitorException ie) { JOptionPane.showMessageDialog(null, ie.getMessage(), "Error!", JOptionPane.INFORMATION_MESSAGE); } } } }
From source file:merge_split.MergeSplit.java
License:Apache License
private void MergeButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_MergeButtonActionPerformed try {// w ww. ja v a2 s . c om PDDocument samplePdf = new PDDocument(); ArrayList<PDDocument> list = new ArrayList<>(); for (int i = 0; i < dtm.getRowCount(); i++) { File file = new File((String) dtm.getValueAt(i, 0)); String code = (String) dtm.getValueAt(i, 3); PDDocument doc1; if (code.equals("ok")) { doc1 = PDDocument.load(file); } else { doc1 = PDDocument.load(file, code); } list.add(doc1); doc1.setAllSecurityToBeRemoved(true); TreeSet tree = findPages((String) dtm.getValueAt(i, 2)); for (int j = 0; j < doc1.getNumberOfPages(); j++) { if (tree.contains(j + 1)) { samplePdf.addPage(doc1.getPage(j)); } } } System.out.println("Number:" + samplePdf.getNumberOfPages()); String destination = jTextField1.getText() + "\\" + jTextField2.getText() + ".pdf"; PDDocumentInformation info = samplePdf.getDocumentInformation(); info.setAuthor(jTextField3.getText()); File output = new File(destination); samplePdf.save(output); samplePdf.close(); for (int i = 0; i < list.size(); i++) { list.get(i).close(); } } catch (IOException ex) { JOptionPane.showMessageDialog(null, "Your input is incorrect. Please fill all the fields.", "Input warning", JOptionPane.WARNING_MESSAGE); } }
From source file:merge_split.MergeSplit.java
License:Apache License
private void RotateButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_RotateButtonActionPerformed try {// w w w. ja va2 s .co m PDDocument samplePdf = new PDDocument(); File file = new File(RotateFileField.getText()); PDDocument doc1; if (rotatecode.equals("ok")) { doc1 = PDDocument.load(file); } else { doc1 = PDDocument.load(file, rotatecode); } doc1.setAllSecurityToBeRemoved(true); TreeSet tree = findPages(RotatePagesField.getText()); for (int j = 0; j < doc1.getNumberOfPages(); j++) { PDPage page = doc1.getPage(j); if (tree.contains(j + 1)) { if (Rotate90.isSelected()) { page.setRotation(90); samplePdf.addPage(page); } else if (Rotate180.isSelected()) { page.setRotation(180); samplePdf.addPage(page); } else if (Rotate270.isSelected()) { page.setRotation(270); samplePdf.addPage(page); } } else { samplePdf.addPage(page); } } System.out.println("Number:" + samplePdf.getNumberOfPages()); String destination = RotateDestinationField.getText() + "\\" + RotateNameField.getText() + ".pdf"; PDDocumentInformation info = samplePdf.getDocumentInformation(); info.setAuthor(RotateAuthorField.getText()); File output = new File(destination); samplePdf.save(output); samplePdf.close(); } catch (IOException ex) { Logger.getLogger(MergeSplit.class.getName()).log(Level.SEVERE, null, ex); JOptionPane.showMessageDialog(null, "Your input is incorrect. Please fill all the fields.", "Input warning", JOptionPane.WARNING_MESSAGE); } }
From source file:merge_split.MergeSplit.java
License:Apache License
private void RotateButton1ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_RotateButton1ActionPerformed PDDocument document = new PDDocument(); InputStream in = null;//from w ww . j a va 2 s.c o m BufferedImage bimg = null; try { in = new FileInputStream((String) ImageFileField.getText()); bimg = ImageIO.read(in); } catch (IOException ex) { JOptionPane.showMessageDialog(null, "Image could not be read.", "Image could not be read", JOptionPane.WARNING_MESSAGE); } float width = bimg.getWidth(); float height = bimg.getHeight(); PDPage page = new PDPage(new PDRectangle(width, height)); document.addPage(page); PDImageXObject imgpdf; try { imgpdf = PDImageXObject.createFromFile((String) ImageFileField.getText(), document); try (PDPageContentStream contentStream = new PDPageContentStream(document, page)) { contentStream.drawImage(imgpdf, 0, 0); } in.close(); } catch (IOException ex) { JOptionPane.showMessageDialog(null, "Image could not be converted.", "Proccess could not be finished", JOptionPane.WARNING_MESSAGE); } String destination = ImageDestinationField.getText() + "\\" + ImageNameField.getText() + ".pdf"; PDDocumentInformation info = document.getDocumentInformation(); info.setAuthor(ImageAuthorField.getText()); File output = new File(destination); try { document.save(output); } catch (IOException ex) { JOptionPane.showMessageDialog(null, "Not all fields were filled.", "Input Problem", JOptionPane.WARNING_MESSAGE); } try { document.close(); } catch (IOException ex) { JOptionPane.showMessageDialog(null, "Not all fields were filled.", "Input Problem", JOptionPane.WARNING_MESSAGE); } }
From source file:merge_split.MergeSplit.java
License:Apache License
private void SplitButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_SplitButtonActionPerformed try {//from w w w . j a v a 2s .c o m File file = new File(SplitFileField.getText()); PDDocument doc1; if (splitcode.equals("ok")) { doc1 = PDDocument.load(file); } else { doc1 = PDDocument.load(file, splitcode); } doc1.setAllSecurityToBeRemoved(true); if (MultipleButton.isSelected()) { PDDocument pdf1 = new PDDocument(); PDDocument pdf2 = new PDDocument(); TreeSet tree = findPages(SplitPagesField.getText()); for (int j = 0; j < doc1.getNumberOfPages(); j++) { PDPage page = doc1.getPage(j); if (tree.contains(j + 1)) { pdf1.addPage(page); } else { pdf2.addPage(page); } } String destination1 = SplitDestinationField.getText() + "\\" + SplitNameField.getText() + "1.pdf"; String destination2 = SplitDestinationField.getText() + "\\" + SplitNameField.getText() + "2.pdf"; PDDocumentInformation info = pdf1.getDocumentInformation(); info.setAuthor(SplitAuthorField.getText()); PDDocumentInformation info2 = pdf2.getDocumentInformation(); info2.setAuthor(SplitAuthorField.getText()); if (pdf1.getNumberOfPages() > 0) { File output1 = new File(destination1); pdf1.save(output1); } if (pdf2.getNumberOfPages() > 0) { File output2 = new File(destination2); pdf2.save(output2); } pdf1.close(); pdf2.close(); } else if (SingleButton.isSelected()) { for (int j = 0; j < doc1.getNumberOfPages(); j++) { PDDocument pdf1 = new PDDocument(); PDPage page = doc1.getPage(j); pdf1.addPage(page); int pagenumber = j + 1; String destination1 = SplitDestinationField.getText() + "\\" + SplitNameField.getText() + pagenumber + ".pdf"; PDDocumentInformation info = pdf1.getDocumentInformation(); info.setAuthor(SplitAuthorField.getText()); if (pdf1.getNumberOfPages() > 0) { File output1 = new File(destination1); pdf1.save(output1); } pdf1.close(); } } doc1.close(); } catch (IOException ex) { JOptionPane.showMessageDialog(null, "Your input is incorrect. Please fill all the fields.", "Input warning", JOptionPane.WARNING_MESSAGE); java.util.logging.Logger.getLogger(MergeSplit.class.getName()).log(java.util.logging.Level.SEVERE, null, ex); } }