r654 - in trunk: . faxtomail-persistence/src/main/java/com/franciaflex/faxtomail/persistence/entities faxtomail-ui-swing faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/pdfeditor faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/util
Author: kmorin Date: 2014-09-30 14:22:29 +0200 (Tue, 30 Sep 2014) New Revision: 654 Url: http://forge.codelutin.com/projects/faxtomail/repository/revisions/654 Log: test impression avec pdfbox Modified: trunk/faxtomail-persistence/src/main/java/com/franciaflex/faxtomail/persistence/entities/ClientTopiaDao.java trunk/faxtomail-ui-swing/pom.xml trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/pdfeditor/PDFEditorUIHandler.java trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/util/FaxToMailUIUtil.java trunk/pom.xml Modified: trunk/faxtomail-persistence/src/main/java/com/franciaflex/faxtomail/persistence/entities/ClientTopiaDao.java =================================================================== --- trunk/faxtomail-persistence/src/main/java/com/franciaflex/faxtomail/persistence/entities/ClientTopiaDao.java 2014-09-29 15:02:51 UTC (rev 653) +++ trunk/faxtomail-persistence/src/main/java/com/franciaflex/faxtomail/persistence/entities/ClientTopiaDao.java 2014-09-30 12:22:29 UTC (rev 654) @@ -40,7 +40,7 @@ String query = "FROM " + Client.class.getName() + " WHERE " + property + " LIKE :propValue"; Map<String, Object> args = new HashMap<>(); - args.put("propValue", "%" + value + "%"); + args.put("propValue", "%\"" + value + "\"%"); List<Client> result = findAll(query, args); return result; } Modified: trunk/faxtomail-ui-swing/pom.xml =================================================================== --- trunk/faxtomail-ui-swing/pom.xml 2014-09-29 15:02:51 UTC (rev 653) +++ trunk/faxtomail-ui-swing/pom.xml 2014-09-30 12:22:29 UTC (rev 654) @@ -226,6 +226,11 @@ </dependency> <dependency> + <groupId>org.apache.pdfbox</groupId> + <artifactId>pdfbox</artifactId> + </dependency> + + <dependency> <groupId>javax.media.jai</groupId> <artifactId>com.springsource.javax.media.jai.core</artifactId> <version>1.1.3</version> Modified: trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/pdfeditor/PDFEditorUIHandler.java =================================================================== --- trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/pdfeditor/PDFEditorUIHandler.java 2014-09-29 15:02:51 UTC (rev 653) +++ trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/pdfeditor/PDFEditorUIHandler.java 2014-09-30 12:22:29 UTC (rev 654) @@ -78,15 +78,7 @@ import com.franciaflex.faxtomail.ui.swing.util.AbstractFaxToMailUIHandler; import com.franciaflex.faxtomail.ui.swing.util.FaxToMailUIUtil; import com.franciaflex.faxtomail.ui.swing.util.JImagePanel; -import com.itextpdf.text.Document; import com.itextpdf.text.DocumentException; -import com.itextpdf.text.PageSize; -import com.itextpdf.text.Paragraph; -import com.itextpdf.text.pdf.PdfWriter; -import com.sun.media.jai.codec.ByteArraySeekableStream; -import com.sun.media.jai.codec.ImageCodec; -import com.sun.media.jai.codec.ImageDecoder; -import com.sun.media.jai.codec.SeekableStream; import com.sun.pdfview.PDFFile; import com.sun.pdfview.PDFPage; Modified: trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/util/FaxToMailUIUtil.java =================================================================== --- trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/util/FaxToMailUIUtil.java 2014-09-29 15:02:51 UTC (rev 653) +++ trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/util/FaxToMailUIUtil.java 2014-09-30 12:22:29 UTC (rev 654) @@ -52,10 +52,15 @@ import java.util.Comparator; import java.util.HashMap; import java.util.List; +import java.util.Locale; import java.util.Map; import java.util.regex.Pattern; import javax.media.jai.PlanarImage; +import javax.print.PrintService; +import javax.print.attribute.HashPrintRequestAttributeSet; +import javax.print.attribute.PrintRequestAttributeSet; +import javax.print.attribute.standard.JobName; import javax.swing.Icon; import javax.swing.JTextPane; import javax.swing.JTree; @@ -80,6 +85,11 @@ import org.apache.commons.lang3.SystemUtils; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; +import org.apache.pdfbox.pdmodel.PDDocument; +import org.apache.pdfbox.pdmodel.PDPage; +import org.apache.pdfbox.pdmodel.edit.PDPageContentStream; +import org.apache.pdfbox.pdmodel.font.PDFont; +import org.apache.pdfbox.pdmodel.font.PDType1Font; import org.nuiton.jaxx.application.ApplicationTechnicalException; import org.nuiton.jaxx.application.swing.util.ApplicationUIUtil; import org.nuiton.util.FileUtil; @@ -113,8 +123,6 @@ import com.sun.media.jai.codec.ImageCodec; import com.sun.media.jai.codec.ImageDecoder; import com.sun.media.jai.codec.SeekableStream; -import com.sun.pdfview.PDFFile; -import com.sun.pdfview.PDFPrintPage; /** * @author kmorin - morin@codelutin.com @@ -495,41 +503,28 @@ protected static boolean printWithPdfRenderer(String printName, FileInputStream fis, boolean defaultPrinter) { boolean result = false; + PDDocument document = null; try { - // Create a PDFFile from a File reference - FileChannel fc = fis.getChannel(); - ByteBuffer bb = fc.map(FileChannel.MapMode.READ_ONLY, 0, fc.size()); - PDFFile pdfFile = new PDFFile(bb); // Create PDF Print Page - PDFPrintPage pages = new PDFPrintPage(pdfFile); - // fix fit to page - // see http://lynema.org/2010/12/29/printing-a-pdf-in-java-with-pdfrenderer PrinterJob pjob = PrinterJob.getPrinterJob(); - PageFormat pf = pjob.defaultPage(); - pf.setOrientation(PageFormat.PORTRAIT); - - Paper paper = new Paper(); - paper.setImageableArea(0, 0, paper.getWidth() * 2, paper.getHeight()); - pf.setPaper(paper); - - // Create Print Job pjob.setJobName(printName); - Book book = new Book(); - book.append(pages, pf, pdfFile.getNumPages()); - pjob.setPageable(book); - - // Send print job to default printer - result = defaultPrinter || pjob.printDialog(); - if (result) { - pjob.print(); + + document = PDDocument.load(fis); + if (defaultPrinter) { + document.silentPrint(pjob); + } else { + document.print(pjob); } + result = true; - } catch (PrinterException | IOException ex) { + } catch (PrinterException | IOException e) { if (log.isErrorEnabled()) { - log.error("can't print", ex); + log.error("can't print", e); } - } + } finally { + IOUtils.closeQuietly(document); + } return result; } @@ -570,8 +565,10 @@ try { br = new BufferedReader(new InputStreamReader(inputStream, StandardCharsets.UTF_8)); StringBuilder text = new StringBuilder(); - while (br.readLine() != null) { - text.append(br.readLine()).append("\n"); + String line = br.readLine(); + while (line != null) { + text.append(line).append("\n"); + line = br.readLine(); } document.add(new Paragraph(text.toString())); br.close(); Modified: trunk/pom.xml =================================================================== --- trunk/pom.xml 2014-09-29 15:02:51 UTC (rev 653) +++ trunk/pom.xml 2014-09-30 12:22:29 UTC (rev 654) @@ -304,6 +304,12 @@ <version>5.5.2</version> </dependency> + <dependency> + <groupId>org.apache.pdfbox</groupId> + <artifactId>pdfbox</artifactId> + <version>1.8.7</version> + </dependency> + <!-- librairie Jaxx --> <dependency> <groupId>org.nuiton.jaxx</groupId>
participants (1)
-
kmorin@users.forge.codelutin.com