List of usage examples for org.apache.pdfbox.pdmodel PDDocument save
public void save(OutputStream output) throws IOException
From source file:fr.acxio.tools.agia.file.pdf.MergePDFProcessor.java
License:Apache License
@Override public Map<String, Object> process(Map<String, Object> sItem) throws Exception { Map<String, Object> aResult = null; if (sourceFactory != null) { Map<String, Object> aSourceParams = new HashMap<String, Object>(sItem); aSourceParams.put(ResourceFactoryConstants.PARAM_STEP_EXEC, getStepExecution()); PDDocumentContainer aContainer = null; try {/* w w w . ja v a 2 s .c o m*/ aContainer = documentFactory.fromParts(sourceFactory, aSourceParams); if (LOGGER.isInfoEnabled()) { if ((aContainer == null) || (aContainer.getParts() == null)) { LOGGER.info("No file to merge"); } else { LOGGER.info("{} file(s) to merge", aContainer.getParts().size()); } } int aPartsCount = aContainer.getParts().size(); if (aPartsCount > 0) { aResult = new HashMap<String, Object>(sItem); Resource aDestinationResource = destinationFactory.getResource(aSourceParams); File aDestFile = aDestinationResource.getFile(); if (aDestFile.exists()) { if (forceReplace && !aDestFile.delete()) { throw new IOException("Destination '" + aDestFile + "' cannot be replaced"); } } else if (aDestFile.getParentFile() != null && !aDestFile.getParentFile().exists() && !aDestFile.getParentFile().mkdirs()) { throw new IOException("Destination '" + aDestFile + "' directory cannot be created"); } PDDocument destination = aContainer.getParts().get(0); PDFMergerUtility merger = new PDFMergerUtility(); for (int i = 1; i < aPartsCount; i++) { merger.appendDocument(destination, aContainer.getParts().get(i)); } destination.save(aDestFile.getAbsolutePath()); aResult.put(key, aDestFile.getAbsolutePath()); if (LOGGER.isInfoEnabled()) { LOGGER.info("Merged to : {}", aResult.get(key)); } } } finally { if (aContainer != null) { aContainer.close(); } } } return aResult; }
From source file:fr.amap.commons.javafx.chart.ChartViewer.java
/** * A handler for the export to PDF option in the context menu. *//*from w ww. ja v a 2 s . com*/ private void handleExportToPDF() { FileChooser fileChooser = new FileChooser(); fileChooser.setSelectedExtensionFilter( new FileChooser.ExtensionFilter("Portable Document Format (PDF)", "pdf")); fileChooser.setTitle("Export to PDF"); File file = fileChooser.showSaveDialog(stage); if (file != null) { try { CanvasPositionsAndSize canvasPositionAndSize = getCanvasPositionAndSize(); PDDocument doc = new PDDocument(); PDPage page = new PDPage(new PDRectangle((float) canvasPositionAndSize.totalWidth, (float) canvasPositionAndSize.totalHeight)); doc.addPage(page); BufferedImage image = new BufferedImage((int) canvasPositionAndSize.totalWidth, (int) canvasPositionAndSize.totalHeight, BufferedImage.TYPE_INT_ARGB); Graphics2D g2 = image.createGraphics(); int index = 0; for (ChartCanvas canvas : chartCanvasList) { Rectangle2D rectangle2D = canvasPositionAndSize.positionsAndSizes.get(index); ((Drawable) canvas.chart).draw(g2, new Rectangle((int) rectangle2D.getX(), (int) rectangle2D.getY(), (int) rectangle2D.getWidth(), (int) rectangle2D.getHeight())); index++; } PDPageContentStream contentStream = new PDPageContentStream(doc, page, true, false); PDXObjectImage pdImage = new PDPixelMap(doc, image); contentStream.drawImage(pdImage, 0, 0); PDPageContentStream cos = new PDPageContentStream(doc, page); cos.drawXObject(pdImage, 0, 0, pdImage.getWidth(), pdImage.getHeight()); cos.close(); doc.save(file); } catch (IOException | COSVisitorException ex) { Logger.getLogger(ChartViewer.class.getName()).log(Level.SEVERE, null, ex); } /*ExportUtils.writeAsPDF(this.chart, (int)canvas.getWidth(), (int)canvas.getHeight(), file);*/ /*ExportUtils.writeAsPDF(this.chart, (int)canvas.getWidth(), (int)canvas.getHeight(), file);*/ } }
From source file:fys.BagagedatabaseController.java
private void sendToDatabase(int dr_id, int dr_personId, int dr_lafId, int tableFrom, int status, String airport, String frontname, String surname, String address, String shipaddress, String residence, String zipcode, String country, String phone, String mail, String labelnumber, String filePath, String flightnumber, String destination, int type, String brand, Integer color, String characteristics) throws IOException, SQLException { try {//from ww w .ja v a 2 s . c o m conn = fys.connectToDatabase(conn); stmt = conn.createStatement(); //connectToDatabase(conn, stmt, "test", "root", "root"); String sql_person = "UPDATE bagagedatabase.person SET first_name='" + frontname + "'," + "surname='" + surname + "', address='" + address + "'," + "residence='" + residence + "', zip_code='" + zipcode + "'," + "country='" + country + "', phone='" + phone + "'," + "mail='" + mail + "'" + "WHERE person_id='" + dr_personId + "'"; stmt.executeUpdate(sql_person); String sql_lost = ""; String sql_airport = ""; String sql_status = ""; DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm"); Date date = new Date(); String dateTimeString = dateFormat.format(date); String[] tokens = dateTimeString.split(" "); if (tokens.length != 2) { throw new IllegalArgumentException(); } String dateString = tokens[0]; String timeString = tokens[1]; if (tableFrom == 0) { //0 = bagagedatabase.lost sql_lost = "UPDATE bagagedatabase.lost SET status='" + status + "'," + "picture='" + filePath + "', type='" + type + "', brand='" + brand + "'," + "color='" + color + "', characteristics='" + characteristics + "'" + "WHERE id='" + dr_id + "'"; //Registreer de status van een bagage. sql_status = "INSERT INTO luggage_status VALUES(" + dr_id + ", '" + dateString + "', '" + timeString + "', '" + status + "', 0);"; switch (status) { //case 0: Gaat van lost naar status Gevonden case 0: sql_airport = "UPDATE bagagedatabase.airport SET airport_found='" + airport + "'," + "label_number='" + labelnumber + "', flight_number='" + flightnumber + "'," + "destination='" + destination + "'" + "WHERE lost_and_found_id='" + dr_lafId + "'"; break; //case 3: Gaat van lost naar status Afgehandeld case 3: sql_airport = "UPDATE bagagedatabase.airport SET airport_found='" + airport + "'," + "label_number='" + labelnumber + "', flight_number='" + flightnumber + "'," + "destination='" + destination + "'" + "WHERE lost_and_found_id='" + dr_lafId + "'"; break; //default: Gaat van lost naar status Vermist, Vernietigd, Nooit Gevonden of Depot default: sql_airport = "UPDATE bagagedatabase.airport SET airport_lost='" + airport + "'," + "label_number='" + labelnumber + "', flight_number='" + flightnumber + "'," + "destination='" + destination + "'" + "WHERE lost_and_found_id='" + dr_lafId + "'"; break; } } else if (tableFrom == 1) { //1 = bagagedatabase.found sql_lost = "UPDATE bagagedatabase.found SET status='" + status + "'," + "picture='" + filePath + "', type='" + type + "', brand='" + brand + "'," + "color='" + color + "', characteristics='" + characteristics + "'" + "WHERE id='" + dr_id + "'"; //Registreer de status van een bagage. sql_status = "INSERT INTO luggage_status VALUES(" + dr_id + ", '" + dateString + "', '" + timeString + "', '" + status + "', 1);"; switch (status) { //case 1: Gaat van found naar status Vermist case 1: sql_airport = "UPDATE bagagedatabase.airport SET airport_lost='" + airport + "'," + "label_number='" + labelnumber + "', flight_number='" + flightnumber + "'," + "destination='" + destination + "'" + "WHERE lost_and_found_id='" + dr_lafId + "'"; break; //case 3: Gaat van found naar status Afgehandeld case 3: sql_airport = "UPDATE bagagedatabase.airport SET airport_lost='" + airport + "'," + "label_number='" + labelnumber + "', flight_number='" + flightnumber + "'," + "destination='" + destination + "'" + "WHERE lost_and_found_id='" + dr_lafId + "'"; break; //default: Gaat van found naar status Gevonden, Vernietigd, Nooit gevonden, Depot default: sql_airport = "UPDATE bagagedatabase.airport SET airport_found='" + airport + "'," + "label_number='" + labelnumber + "', flight_number='" + flightnumber + "'," + "destination='" + destination + "'" + "WHERE lost_and_found_id='" + dr_lafId + "'"; break; } } if (status != 6) { stmt.executeUpdate(sql_lost); } stmt.executeUpdate(sql_airport); if (status != fys.getStatusString(dr_status)) { stmt.executeUpdate(sql_status); } if (status != 3) { int pageid = 4; int type_email = 0; if (mailInput.getText() == null || !FYS.isValidEmailAddress(mailInput.getText()) || mailInput.getText().trim().isEmpty()) { } else { // Email bericht filteren op sommige woorden. String getmessage = fys.replaceEmail( fys.replaceEmail_tF( fys.Email_Message(type_email, fys.Email_Language(mailInput.getText()), pageid), mailInput.getText(), Integer.parseInt(tableFromLabel.getText())), mailInput.getText()); // Email versturen fys.sendEmail(mailInput.getText(), fys.Email_Subject(type_email, fys.Email_Language(mailInput.getText()), pageid), getmessage, "Sent message successfully...."); } } /*Indien de status wordt veranderd naar afgehandeld wordt er een DHL- formulier gemaakt. DISCLAIMER: Het DHL-formulier dat gemaakt wordt is gebaseerd op het officile DHL-emailshipment formulier dat is te vinden op 'http://www.dhl.com/en/express/resource_center/emailship.html'. Het formulier is gekopieerd en aangepast d.m.v. Adobe Acrobat DC en is louter bedoeld voor demonstratieve doeleinden. */ if (status == 3) { //Afgehandeld //Maak nieuwe PDF-document aan de hand van de template File pdfdoc = new File("src/fys/templates/dhltemplate.pdf"); PDDocument document; document = PDDocument.load(pdfdoc); //Laad alle inputvelden op het formulier PDAcroForm acroForm = document.getDocumentCatalog().getAcroForm(); List<PDField> fields = acroForm.getFields(); //Vul alle inputvelden in met de waardes uit de database for (PDField field : fields) { if (field.getFullyQualifiedName().equals("companyName_field")) { field.setValue("Corendon"); } if (field.getFullyQualifiedName().equals("country_field")) { field.setValue(country); } if (field.getFullyQualifiedName().equals("address_field")) { field.setValue(shipaddress); } if (field.getFullyQualifiedName().equals("city_field")) { field.setValue(residence); } if (field.getFullyQualifiedName().equals("postcode_field")) { field.setValue(zipcode); } if (field.getFullyQualifiedName().equals("contactPerson_field")) { field.setValue(frontname + " " + surname); } if (field.getFullyQualifiedName().equals("phone_field")) { field.setValue(phone); } if (field.getFullyQualifiedName().equals("type_field")) { field.setValue("International NonDocument"); } if (field.getFullyQualifiedName().equals("product_field")) { field.setValue("Express WorldWide"); } if (field.getFullyQualifiedName().equals("notification_field")) { field.setValue("fysepsilon@gmail.com "); } if (field.getFullyQualifiedName().equals("content_field")) { field.setValue(fys.getBaggageType(type)); } if (field.getFullyQualifiedName().equals("date_field")) { field.setValue(dateString); } } //Sla het document op document.save("src/fys/formulieren/dhlFormulier" + frontname + surname + dr_personId + ".pdf"); document.close(); int pageid = 5; int type_email = 0; if (mailInput.getText() == null || !FYS.isValidEmailAddress(mailInput.getText()) || mailInput.getText().trim().isEmpty()) { } else { // Email bericht filteren op sommige woorden. String getmessage = fys.replaceEmail( fys.replaceEmail_tF( fys.Email_Message(type_email, fys.Email_Language(mailInput.getText()), pageid), mailInput.getText(), Integer.parseInt(tableFromLabel.getText())), mailInput.getText()); // Email versturen fys.sendEmail(mailInput.getText(), fys.Email_Subject(type_email, fys.Email_Language(mailInput.getText()), pageid), getmessage, "Sent message successfully...."); } } if (status == 4) { //Nooit gevonden int pageid = 6; //Pagina id int type_email = 3; //Onbekend int language_email = 1; //Nederlands ?! String email_paymentdepartment = "fysepsilon@gmail.com"; // Betalingsafdeling mail if (mailInput.getText() == null || !FYS.isValidEmailAddress(mailInput.getText()) || mailInput.getText().trim().isEmpty()) { } else { // Email bericht filteren op sommige woorden. String getmessage = fys.replaceEmail( fys.replaceEmail_tF(fys.Email_Message(type_email, language_email, pageid), mailInput.getText(), Integer.parseInt(tableFromLabel.getText())), mailInput.getText()); // Email versturen fys.sendEmail(email_paymentdepartment, fys.Email_Subject(type_email, language_email, pageid), getmessage, "Sent message successfully...."); } } pictureButton.setText(taal[44]); fys.changeToAnotherFXML(taal[100], "bagagedatabase.fxml"); conn.close(); } catch (SQLException ex) { // handle any errors System.out.println("SQLException: " + ex.getMessage()); System.out.println("SQLState: " + ex.getSQLState()); System.out.println("VendorError: " + ex.getErrorCode()); } }
From source file:fys.StatistiekenController.java
@FXML private void handleExportToPDFAction(ActionEvent event) throws IOException { if ((dateFrom.getText() == null || dateFrom.getText().trim().isEmpty()) || (dateTo.getText() == null || dateTo.getText().trim().isEmpty())) { ErrorLabel.setText(taal[93]);//from w w w . j a v a 2 s. c o m ErrorLabel.setVisible(true); } else { String dateFromInput = dateFrom.getText(); String dateToInput = dateTo.getText(); //Doe dit alleen wanneer er waardes zijn ingevuld. lineChart.setAnimated(false); pieChart.setAnimated(false); //PIECHART //Maak alle data en aantallen weer leeg. int luggage = 0, foundAmount = 0, lostAmount = 0, destroyAmount = 0, settleAmount = 0, neverFoundAmount = 0, depotAmount = 0; int jan = 0, feb = 0, mar = 0, apr = 0, mei = 0, jun = 0, jul = 0, aug = 0, sep = 0, okt = 0, nov = 0, dec = 0; total = 0; series.getData().clear(); pieChartData = FXCollections.observableArrayList(); //Krijg alle data voor de pietchart die tussen de periode van DateFrom en DateTo ligt. try { conn = fys.connectToDatabase(conn); stmt = conn.createStatement(); //connectToDatabase(conn, stmt, "test", "root", "root"); String sql = "SELECT status, date, COUNT(status) AS Count FROM bagagedatabase.luggage_status " + "WHERE date >= \"" + fys.convertToDutchDate(dateFromInput) + "\" " + "AND date <= \"" + fys.convertToDutchDate(dateToInput) + "\" " + "GROUP BY status"; //Voeg alle aantallen per status toe aan variabelen. try (ResultSet rs = stmt.executeQuery(sql)) { while (rs.next()) { luggage++; //Retrieve by column name foundAmount = (rs.getInt("status") == 0 ? rs.getInt("Count") : foundAmount); lostAmount = (rs.getInt("status") == 1 ? rs.getInt("Count") : lostAmount); destroyAmount = (rs.getInt("status") == 2 ? rs.getInt("Count") : destroyAmount); settleAmount = (rs.getInt("status") == 3 ? rs.getInt("Count") : settleAmount); neverFoundAmount = (rs.getInt("status") == 4 ? rs.getInt("Count") : neverFoundAmount); depotAmount = (rs.getInt("status") == 5 ? rs.getInt("Count") : depotAmount); } } } catch (SQLException ex) { // handle any errors System.out.println("SQLException: " + ex.getMessage()); System.out.println("SQLState: " + ex.getSQLState()); System.out.println("VendorError: " + ex.getErrorCode()); } //Voeg de waardes toe aan de array. pieChartData = FXCollections.observableArrayList(new PieChart.Data(ExportToPdfTexts[15], foundAmount), new PieChart.Data(ExportToPdfTexts[16], lostAmount), new PieChart.Data(ExportToPdfTexts[17], destroyAmount), new PieChart.Data(ExportToPdfTexts[18], settleAmount), new PieChart.Data(ExportToPdfTexts[19], neverFoundAmount), new PieChart.Data(ExportToPdfTexts[20], depotAmount)); //Update de titel pieChart.setTitle(ExportToPdfTexts[0]); //Update de piechart met de gevraagde gegevens. pieChart.setData(pieChartData); //Voor elke aantal tel ze met elkaar op en sla het op bij total. for (PieChart.Data d : pieChart.getData()) { total += d.getPieValue(); } //Verander de tekst van elke piechartdata. naar: (aantal statusnaam: percentage). pieChartData.forEach(data -> data.nameProperty().bind(Bindings.concat((int) data.getPieValue(), " ", data.getName(), ": ", (total == 0 || (int) data.getPieValue() == 0) ? 0 : (int) (data.getPieValue() / total * 100), "%"))); //LINECHART //Krijg alle data voor de linechart die tussen de periode van DateFrom en DateTo ligt. try { conn = fys.connectToDatabase(conn); stmt = conn.createStatement(); String sql = "SELECT date, COUNT(date) as Count FROM bagagedatabase.luggage_status " + "WHERE status = 6 AND date >= \"" + fys.convertToDutchDate(dateFromInput) + "\" " + "AND date <= \"" + fys.convertToDutchDate(dateToInput) + "\" " + "GROUP BY date"; ResultSet rs = stmt.executeQuery(sql); while (rs.next()) { //Retrieve by column name //Voeg alle aantallen per maand toe aan variabelen. if (rs.getString("date") != null) { //Krijg van elke date record de maand eruit. String str[] = rs.getString("date").split("-"); int month = Integer.parseInt(str[1]); jan = (month == 1 ? jan += rs.getInt("Count") : jan); feb = (month == 2 ? feb += rs.getInt("Count") : feb); mar = (month == 3 ? mar += rs.getInt("Count") : mar); apr = (month == 4 ? apr += rs.getInt("Count") : apr); mei = (month == 5 ? jan += rs.getInt("Count") : mei); jun = (month == 6 ? jun += rs.getInt("Count") : jun); jul = (month == 7 ? jul += rs.getInt("Count") : jul); aug = (month == 8 ? aug += rs.getInt("Count") : aug); sep = (month == 9 ? sep += rs.getInt("Count") : sep); okt = (month == 10 ? okt += rs.getInt("Count") : okt); nov = (month == 11 ? nov += rs.getInt("Count") : nov); dec = (month == 12 ? dec += rs.getInt("Count") : dec); } } rs.close(); conn.close(); } catch (SQLException ex) { // handle any errors System.out.println("SQLException: " + ex.getMessage()); System.out.println("SQLState: " + ex.getSQLState()); System.out.println("VendorError: " + ex.getErrorCode()); } //Update de titel lineChart.setTitle(ExportToPdfTexts[1]); //Update de linechart naar de waardes die gewenst is. series.setName(ExportToPdfTexts[2]); series.getData().add(new XYChart.Data<>(ExportToPdfTexts[3], jan)); series.getData().add(new XYChart.Data(ExportToPdfTexts[4], feb)); series.getData().add(new XYChart.Data<>(ExportToPdfTexts[5], mar)); series.getData().add(new XYChart.Data(ExportToPdfTexts[6], apr)); series.getData().add(new XYChart.Data<>(ExportToPdfTexts[7], mei)); series.getData().add(new XYChart.Data(ExportToPdfTexts[8], jun)); series.getData().add(new XYChart.Data<>(ExportToPdfTexts[9], jul)); series.getData().add(new XYChart.Data(ExportToPdfTexts[10], aug)); series.getData().add(new XYChart.Data<>(ExportToPdfTexts[11], sep)); series.getData().add(new XYChart.Data(ExportToPdfTexts[12], okt)); series.getData().add(new XYChart.Data<>(ExportToPdfTexts[13], nov)); series.getData().add(new XYChart.Data(ExportToPdfTexts[14], dec)); //Update de piechart en linechart voordat er een screenshot van genomen wordt. lineChart.applyCss(); lineChart.layout(); pieChart.applyCss(); pieChart.layout(); //Maak een screenshot van de piechart en linechart. savePieChartAsPng(); saveLineChartAsPng(); try { //Krijg de datum van vandaag voor pdf. DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd"); Date date = new Date(); String dateString = dateFormat.format(date); //Krijg de content van de template pdf en maake nieuw pdf aan. File pdfdoc = new File("src/fys/templates/statisticstemplate.pdf"); PDDocument document = null; document = PDDocument.load(pdfdoc); PDAcroForm acroForm = document.getDocumentCatalog().getAcroForm(); List<PDField> fields = acroForm.getFields(); // set the text in the form-field <-- does work //Verander voor elk veld de waardes. for (PDField field : fields) { if (field.getFullyQualifiedName().equals("found")) { field.setValue(String.valueOf(foundAmount)); } if (field.getFullyQualifiedName().equals("lost")) { field.setValue(String.valueOf(lostAmount)); } if (field.getFullyQualifiedName().equals("destroyed")) { field.setValue(String.valueOf(destroyAmount)); } if (field.getFullyQualifiedName().equals("completed")) { field.setValue(String.valueOf(settleAmount)); } if (field.getFullyQualifiedName().equals("neverfound")) { field.setValue(String.valueOf(neverFoundAmount)); } if (field.getFullyQualifiedName().equals("depot")) { field.setValue(String.valueOf(depotAmount)); } if (field.getFullyQualifiedName().equals("jan")) { field.setValue(String.valueOf(jan)); } if (field.getFullyQualifiedName().equals("feb")) { field.setValue(String.valueOf(feb)); } if (field.getFullyQualifiedName().equals("mar")) { field.setValue(String.valueOf(mar)); } if (field.getFullyQualifiedName().equals("apr")) { field.setValue(String.valueOf(apr)); } if (field.getFullyQualifiedName().equals("may")) { field.setValue(String.valueOf(mei)); } if (field.getFullyQualifiedName().equals("jun")) { field.setValue(String.valueOf(jun)); } if (field.getFullyQualifiedName().equals("jul")) { field.setValue(String.valueOf(jul)); } if (field.getFullyQualifiedName().equals("aug")) { field.setValue(String.valueOf(aug)); } if (field.getFullyQualifiedName().equals("sep")) { field.setValue(String.valueOf(sep)); } if (field.getFullyQualifiedName().equals("oct")) { field.setValue(String.valueOf(okt)); } if (field.getFullyQualifiedName().equals("nov")) { field.setValue(String.valueOf(nov)); } if (field.getFullyQualifiedName().equals("dec")) { field.setValue(String.valueOf(dec)); } if (field.getFullyQualifiedName().equals("date")) { field.setValue(String.valueOf(dateString)); } if (field.getFullyQualifiedName().equals("period")) { field.setValue(String.valueOf(dateFromInput + " | " + dateToInput)); } } //Retrieving the page PDPage page = document.getPage(0); //Creating PDImageXObject object loginController login = new loginController(); PDImageXObject pieChartImage = PDImageXObject .createFromFile("src/fys/statistieken/PieChart_" + login.getUsersName() + ".png", document); PDImageXObject lineChartImage = PDImageXObject.createFromFile( "src/fys/statistieken/LineChart_" + login.getUsersName() + ".png", document); //creating the PDPageContentStream object PDPageContentStream contents = new PDPageContentStream(document, page, true, true, true); //Drawing the image in the PDF document contents.drawImage(pieChartImage, 75, 0, 350, 300); contents.drawImage(lineChartImage, 425, 0, 350, 300); //Closing the PDPageContentStream object contents.close(); //Sla het docment op. document.save("src/fys/statistieken/statistics" + dateFromInput + dateToInput + ".pdf"); document.close(); //Verwijder de plaatjes die waren opgeslagen. savePieChartAsPng().delete(); saveLineChartAsPng().delete(); //Sluit de popup home_pane.setDisable(false); pdfPane.setVisible(false); } catch (IOException ex) { Logger.getLogger(StatistiekenController.class.getName()).log(Level.SEVERE, null, ex); } } }
From source file:generarPDF.ReporteFlujosCliente.java
public void guardarDocumentoDialogo(JDialog dialogo, ArrayList<Integer> flujosID, int cliente_id, Calendar fechaInicial, Calendar fechaFinal) { PDDocument documento = crearInformeMovimientosCliente(flujosID, cliente_id, fechaInicial, fechaFinal); JFileChooser fc = new JFileChooser(); FileNameExtensionFilter filter = new FileNameExtensionFilter("Archivo PDF", "pdf", "text"); fc.setFileFilter(filter);/*from w w w . j a v a 2 s . co m*/ fc.showSaveDialog(dialogo); if (fc.getSelectedFile() != null) { File selectedFile = fc.getSelectedFile(); try { documento.save(selectedFile + ".pdf"); JOptionPane.showMessageDialog(dialogo, "El archivo ha sido guardado en disco"); } catch (Exception ex) { JOptionPane.showMessageDialog(dialogo, "El archivo no se puede leer!"); } } }
From source file:geotheme.pdf.generatePDF.java
License:Open Source License
public ByteArrayOutputStream createPDFFromImage(wmsParamBean wpb, String host) throws IOException, COSVisitorException { PDDocument doc = null; ByteArrayOutputStream baos = new ByteArrayOutputStream(); OutputStreamWriter wr = null; OutputStreamWriter wl = null; URLConnection geoConn = null; URLConnection legConn = null; int width = 500; int height = 500; wpb.setBBOX(retainAspectRatio(wpb.getBBOX())); StringBuffer sb = new StringBuffer(); sb.append(this.pdfURL); sb.append("&layers=").append(this.pdfLayers); sb.append("&bbox=").append(wpb.getBBOX()); sb.append("&Format=image/jpeg"); sb.append("&width=").append(width); sb.append("&height=").append(height); try {/*from w w w .java2 s .c o m*/ wpb.setREQUEST("GetMap"); wpb.setWIDTH(Integer.toString(width)); wpb.setHEIGHT(Integer.toString(height)); URL url = new URL(host); URL urll = new URL(host); URL osm = new URL(sb.toString()); geoConn = url.openConnection(); geoConn.setDoOutput(true); legConn = urll.openConnection(); legConn.setDoOutput(true); wr = new OutputStreamWriter(geoConn.getOutputStream(), "UTF-8"); wr.write(wpb.getURL_PARAM()); wr.flush(); wpb.setREQUEST("GetLegendGraphic"); wpb.setTRANSPARENT("FALSE"); wpb.setWIDTH(""); wpb.setHEIGHT(""); wl = new OutputStreamWriter(legConn.getOutputStream(), "UTF-8"); wl.write(wpb.getURL_PARAM() + "&legend_options=fontSize:9;"); wl.flush(); doc = new PDDocument(); PDPage page = new PDPage(/*PDPage.PAGE_SIZE_A4*/); doc.addPage(page); BufferedImage img = ImageIO.read(geoConn.getInputStream()); BufferedImage leg = ImageIO.read(legConn.getInputStream()); PDXObjectImage ximage = new PDPixelMap(doc, img); PDXObjectImage xlegend = new PDPixelMap(doc, leg); PDXObjectImage xosm = new PDJpeg(doc, osm.openStream()); PDPageContentStream contentStream = new PDPageContentStream(doc, page); PDFont font = PDType1Font.HELVETICA_OBLIQUE; contentStream.beginText(); contentStream.setFont(font, 8); contentStream.moveTextPositionByAmount(450, 10); Date date = new Date(); contentStream.drawString(date.toString()); contentStream.endText(); contentStream.beginText(); contentStream.setFont(font, 8); contentStream.moveTextPositionByAmount(10, 10); contentStream.drawString("GeoFuse Report: mario.basa@gmail.com"); contentStream.endText(); contentStream.drawImage(xosm, 20, 160); contentStream.drawImage(ximage, 20, 160); contentStream.drawImage(xlegend, width - xlegend.getWidth() - 3, 170); contentStream.beginText(); contentStream.setFont(font, 50); contentStream.moveTextPositionByAmount(20, 720); contentStream.drawString(wpb.getPDF_TITLE()); contentStream.endText(); contentStream.beginText(); contentStream.setFont(font, 18); contentStream.moveTextPositionByAmount(20, 695); contentStream.drawString(wpb.getPDF_NOTE()); contentStream.endText(); contentStream.setStrokingColor(180, 180, 180); float bx[] = { 10f, 10f, 30 + width, 30 + width, 10f }; float by[] = { 150f, 170 + height, 170 + height, 150f, 150f }; contentStream.drawPolygon(bx, by); contentStream.close(); doc.save(baos); } catch (Exception e) { e.printStackTrace(); } finally { if (doc != null) { doc.close(); } if (wr != null) { wr.close(); } if (wl != null) { wl.close(); } } return baos; }
From source file:GUI.Helper.PDFIOHelper.java
public static void writeSummaryReport(MainController mc) { mc.selectStep(6);// w w w .ja va2 s .c om FileChooser fc = new FileChooser(); fc.setTitle("Save WZITS Tool Project"); fc.getExtensionFilters().add(new FileChooser.ExtensionFilter("PDF File (.pdf)", "*.pdf")); if (mc.getProject().getSaveFile() != null) { File initDir = mc.getProject().getSaveFile().getParentFile(); if (initDir.isDirectory()) { fc.setInitialDirectory(initDir); } } File saveFile = fc.showSaveDialog(MainController.getWindow()); //mc.getMainWindow() if (saveFile != null) { Platform.runLater(new Runnable() { @Override public void run() { boolean exportSuccess = true; try { PDDocument doc = new PDDocument(); for (int factSheetIdx = 1; factSheetIdx <= 8; factSheetIdx++) { Node n = mc.goToFactSheet(factSheetIdx, true); MainController.getStage().show(); BorderPane bp = (BorderPane) ((ScrollPane) n).getContent(); PDPage page = new PDPage(); doc.addPage(page); PDPageContentStream content = new PDPageContentStream(doc, page); WritableImage wi = bp.snapshot(new SnapshotParameters(), null); double prefHeight = wi.getHeight(); double prefWidth = wi.getWidth(); BufferedImage bi = SwingFXUtils.fromFXImage(wi, null); PDImageXObject ximage = LosslessFactory.createFromImage(doc, bi); int drawWidth = (int) Math.min(MAX_DRAW_WIDTH, Math.round(WIDTH_FACTOR * prefWidth)); int drawHeight = (int) Math.round(HEIGHT_FACTOR * prefHeight); int numPages = (int) Math.ceil(drawHeight / MAX_DRAW_HEIGHT); drawHeight = (int) Math.min(MAX_DRAW_HEIGHT, drawHeight); content.drawImage(ximage, MARGIN_LEFT_X, MARGIN_TOP_Y - drawHeight, drawWidth, drawHeight); content.fillAndStroke(); content.close(); } drawReportHeaderFooter(doc, mc.getProject(), true); doc.save(saveFile); doc.close(); } catch (IOException ie) { System.out.println("ERROR"); exportSuccess = false; } if (exportSuccess) { Alert al = new Alert(Alert.AlertType.CONFIRMATION); al.setTitle("WZITS Tool"); al.setHeaderText("Fact sheet export successful"); al.showAndWait(); } else { Alert al = new Alert(Alert.AlertType.WARNING); al.setTitle("WZITS Tool"); al.setHeaderText("Fact sheet export failed"); al.showAndWait(); } mc.selectStep(6); } }); } }
From source file:GUI.Helper.PDFIOHelper.java
public static void writeStepSummary(MainController mc, int factSheetIdx) { Node n = mc.goToFactSheet(factSheetIdx, false); FileChooser fc = new FileChooser(); fc.setTitle("Save WZITS Tool Project"); fc.getExtensionFilters().add(new FileChooser.ExtensionFilter("PDF File (.pdf)", "*.pdf")); if (mc.getProject().getSaveFile() != null) { File initDir = mc.getProject().getSaveFile().getParentFile(); if (initDir.isDirectory()) { fc.setInitialDirectory(initDir); }/*w w w. j a va 2s.co m*/ } File saveFile = fc.showSaveDialog(MainController.getWindow()); //mc.getMainWindow() if (saveFile != null) { BorderPane bp = (BorderPane) ((ScrollPane) n).getContent(); //Scene scene = new Scene(bp); //n.applyCss(); //bp.applyCss(); //WritableImage wi = scene.snapshot(null); WritableImage wi = bp.snapshot(new SnapshotParameters(), null); double prefHeight = wi.getHeight(); double prefWidth = wi.getWidth(); BufferedImage bi = SwingFXUtils.fromFXImage(wi, null); PDDocument doc = new PDDocument(); PDPage page = new PDPage(); doc.addPage(page); boolean exportSuccess = false; try { //ImageIO.write(bi, "png", new File("test.png")); PDPageContentStream content = new PDPageContentStream(doc, page); PDImageXObject ximage = LosslessFactory.createFromImage(doc, bi); int drawWidth = (int) Math.min(MAX_DRAW_WIDTH, Math.round(WIDTH_FACTOR * prefWidth)); int drawHeight = (int) Math.round(HEIGHT_FACTOR * prefHeight); int numPages = (int) Math.ceil(drawHeight / MAX_DRAW_HEIGHT); drawHeight = (int) Math.min(MAX_DRAW_HEIGHT, drawHeight); content.drawImage(ximage, MARGIN_LEFT_X, MARGIN_TOP_Y - drawHeight, drawWidth, drawHeight); content.fillAndStroke(); content.close(); drawReportHeaderFooter(doc, mc.getProject(), true); doc.save(saveFile); doc.close(); exportSuccess = true; } catch (IOException ie) { System.out.println("ERROR"); } if (exportSuccess) { Alert al = new Alert(Alert.AlertType.CONFIRMATION); al.setTitle("WZITS Tool"); al.setHeaderText("Fact sheet export successful"); al.showAndWait(); } else { Alert al = new Alert(Alert.AlertType.WARNING); al.setTitle("WZITS Tool"); al.setHeaderText("Fact sheet export failed"); al.showAndWait(); } } }
From source file:in.co.itasca.hms.api.CarODataSingleProcessor.java
License:Apache License
@Override public ODataResponse readEntityMedia(GetMediaResourceUriInfo uriInfo, String contentType) throws ODataException { // if(entityName.equalsIgnoreCase(ENTITYSET_REGISTRATION)){ if (uriInfo.getNavigationSegments().size() == 0) { EdmEntitySet entitySet = uriInfo.getStartEntitySet(); int id = getKeyValue(uriInfo.getKeyPredicates().get(0)); try {/*from w w w. ja v a 2s . com*/ // Create a document and add a page to it PDDocument document; IService service = ServiceFactory.getInstance(null).getService(ENTITYSET_REGISTRATION); RegistrationService reg = (RegistrationService) service; // Save the results and ensure that the document is properly closed: ByteArrayOutputStream out = new ByteArrayOutputStream(); document = reg.getPDF(id); document.save("10.pdf"); document.save(out); document.close(); String mimeType = "image/pdf"; return ODataResponse.fromResponse(EntityProvider.writeBinary(mimeType, out.toByteArray())).build(); } catch (Exception e) { // TODO: handle exception } } return super.readEntityMedia(uriInfo, contentType); }
From source file:indexer.Indexer.java
public static void writePDF(String file_location, Map<String, Set> map) throws IOException { PDFMergerUtility finalDoc = new PDFMergerUtility(); PDDocument document = PDDocument.load(file_location); PDPage page = (PDPage) document.getDocumentCatalog().getAllPages().get(0); PDPageContentStream contentStream = new PDPageContentStream(document, page, true, true); contentStream.beginText();/*from www . j a va 2 s .c o m*/ contentStream.setFont(PDType1Font.HELVETICA, 12); for (Map.Entry<String, Set> entry : map.entrySet()) { contentStream.drawString(entry.getKey() + "- " + entry.getValue().toString()); } contentStream.endText(); contentStream.close(); ByteArrayOutputStream out = new ByteArrayOutputStream(); try { document.save(out); } catch (COSVisitorException ex) { Logger.getLogger(Indexer.class.getName()).log(Level.SEVERE, null, ex); } finalDoc.addSource(new ByteArrayInputStream(out.toByteArray())); document.close(); }