List of usage examples for com.itextpdf.text.pdf PdfStamper getWriter
public PdfWriter getWriter()
From source file:net.algem.edition.PdfHandler.java
License:Open Source License
public void createPdf(String fileName, ByteArrayOutputStream out, short templateType) throws IOException, DocumentException { try {/*from www . ja v a 2 s. c om*/ File tmpFile = File.createTempFile(fileName, ".pdf"); final String target = tmpFile.getPath(); PageTemplate pt = getTemplate(templateType); PdfReader reader = new com.itextpdf.text.pdf.PdfReader(out.toByteArray()); if (pt != null) { PdfStamper stamper = new PdfStamper(reader, new FileOutputStream(target)); // PdfStamper stamper = new PdfStamper(reader, new PrintStream(new FileOutputStream(target), true, "UTF-8")); PdfReader model = new com.itextpdf.text.pdf.PdfReader(pt.getContent()); PdfImportedPage importedPage = stamper.getImportedPage(model, 1); for (int i = 1; i <= reader.getNumberOfPages(); i++) { PdfContentByte canvas = stamper.getUnderContent(i); canvas.addTemplate(importedPage, 0, 0); } stamper.getWriter().freeReader(model); model.close(); stamper.close(); } else { PdfStamper stamper = new PdfStamper(reader, new FileOutputStream(target)); //PdfStamper stamper = new PdfStamper(reader, new PrintStream(new FileOutputStream(target), true, "UTF-8")); stamper.close(); } preview(target, null); } catch (SQLException ex) { GemLogger.logException(ex); } }
From source file:org.h819.commons.file.MyPDFUtils.java
/** * ? pdf ??//www . j a va 2 s. c o m * * @param srcPdfFile the original PDF * @param descPdfFile the resulting PDF * @throws java.io.IOException * @throws DocumentException */ public static void compressPdf(File srcPdfFile, File descPdfFile) throws IOException, DocumentException { if (srcPdfFile == null || !srcPdfFile.exists()) throw new IOException("src pdf file '" + srcPdfFile + "' does not exsit."); PdfReader reader = getPdfReader(srcPdfFile); PdfStamper stamper = new PdfStamper(reader, new FileOutputStream(descPdfFile.getAbsoluteFile()), PdfWriter.VERSION_1_7); stamper.getWriter().setCompressionLevel(9); int total = reader.getNumberOfPages() + 1; for (int i = 1; i < total; i++) { reader.setPageContent(i, reader.getPageContent(i)); } stamper.setFullCompression(); stamper.close(); reader.close(); }
From source file:org.h819.commons.file.MyPDFUtils.java
/** * ?pdf/*w w w. j a va 2s . c om*/ * * @param srcPdfFile the original PDF * @param descPdfFile the resulting PDF * @throws java.io.IOException * @throws DocumentException */ public static void decompressPdf(File srcPdfFile, File descPdfFile) throws IOException, DocumentException { if (srcPdfFile == null || !srcPdfFile.exists()) throw new IOException("src pdf file '" + srcPdfFile + "' does not exsit."); PdfReader reader = getPdfReader(srcPdfFile); PdfStamper stamper = new PdfStamper(reader, new FileOutputStream(descPdfFile.getAbsoluteFile())); stamper.getWriter().setCompressionLevel(PdfStream.NO_COMPRESSION); int total = reader.getNumberOfPages() + 1; for (int i = 1; i < total; i++) { reader.setPageContent(i, reader.getPageContent(i)); } stamper.close(); reader.close(); }
From source file:org.h819.commons.file.MyPDFUtils.java
/** * pdf /*from w w w .ja va 2 s.c o m*/ * * @param srcPdfFile ? * @param descPdfFile * @param userPassword ?? ,null ? * @param ownerPassword ?? ,null ? * @param allowHideMenuBar ???? * @param allowHideToolbar ?? * @param allowPrinting ??? * @param allowCopy ??? * @throws java.io.IOException * @throws DocumentException */ public static void encryptPdf(File srcPdfFile, File descPdfFile, String userPassword, String ownerPassword, boolean allowHideMenuBar, boolean allowHideToolbar, boolean allowPrinting, boolean allowCopy) throws IOException { if (srcPdfFile == null || !srcPdfFile.exists()) throw new IOException("src pdf file '" + srcPdfFile + "' does not exist."); byte[] userByte = null; byte[] ownerByte = null; /** User password. */ if (userPassword != null) userByte = userPassword.getBytes(); /** Owner password. */ if (ownerPassword != null) ownerByte = ownerPassword.getBytes(); try { PdfReader reader = getPdfReader(srcPdfFile); PdfStamper stamper = new PdfStamper(reader, new FileOutputStream(descPdfFile.getAbsoluteFile())); // // ???? PdfWriter.setViewerPreferences addViewerPreference // ? api ??? addViewerPreference ? // ???"|"()?, ? PdfWriter.HideWindowUI // ???, ?? // ( addViewerPreference ) stamper.getWriter().addViewerPreference(PdfName.CENTERWINDOW, PdfBoolean.PDFTRUE); stamper.getWriter().addViewerPreference(PdfName.DISPLAYDOCTITLE, PdfBoolean.PDFTRUE); stamper.getWriter().addViewerPreference(PdfName.FITWINDOW, PdfBoolean.PDFTRUE); // writer.addViewerPreference(PdfName.HIDEWINDOWUI, // PdfBoolean.PDFTRUE); if (!allowHideToolbar) stamper.getWriter().addViewerPreference(PdfName.HIDETOOLBAR, PdfBoolean.PDFTRUE); if (!allowHideMenuBar) stamper.getWriter().addViewerPreference(PdfName.HIDEMENUBAR, PdfBoolean.PDFTRUE); // allow if (allowPrinting && allowCopy) stamper.setEncryption(userByte, ownerByte, PdfWriter.ALLOW_PRINTING | PdfWriter.ALLOW_COPY, true); else if (allowPrinting) stamper.setEncryption(userByte, ownerByte, PdfWriter.ALLOW_PRINTING, true); else if (allowCopy) stamper.setEncryption(userByte, ownerByte, PdfWriter.ALLOW_COPY, true); else stamper.setEncryption(userByte, ownerByte, 0, true); stamper.close(); reader.close(); logger.info(srcPdfFile.getAbsoluteFile() + " encrypt finished."); } catch (DocumentException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } }
From source file:org.h819.commons.file.MyPDFUtils.java
/** * ?pdf???/*from w w w . j a v a2 s . co m*/ * <p> * javaScript ???? javaScript ? * </p> * * @param srcPdfFileDir ? * @param descPdfFileDir * @param startDate ? "2011,01,01" * @param alerDays ??? * @param expiredDays ????? * @throws java.io.IOException */ public static void setExpireDateWithJavaScript(File srcPdfFileDir, File descPdfFileDir, String startDate, int alerDays, int expiredDays) throws IOException { // ?? if (alerDays >= expiredDays) { logger.info(" ' ' " + alerDays + " '' " + expiredDays); return; } // ??? ? if (StringUtils.countMatches(startDate, ",") != 2) { logger.info(startDate + " ?? '2011,01,01' ?"); return; } if (!isEnoughSpace(srcPdfFileDir, descPdfFileDir)) return; File listFiles[] = srcPdfFileDir.listFiles(); if (listFiles.length == 0) { logger.info("srcPdfFileDir has not file. " + srcPdfFileDir.getAbsolutePath()); return; } // ?? // String[] resources = new String[]{"/pdfexpiration.js"}; File resPath = MyFileUtils.copyResourceFileFromJarLibToTmpDir("/pdfexpiration.js"); //???? // ? String jsStr = FileUtils.readFileToString(resPath); /** ? js ? */ // ? jsStr = StringUtils.replace(jsStr, "2011,01,01", startDate); // ? jsStr = StringUtils.replace(jsStr, "alertDays = 355", "alertDays = " + Integer.toString(alerDays)); // ? jsStr = StringUtils.replace(jsStr, "expiredDays = 365", "expiredDays = " + Integer.toString(expiredDays)); System.out.println(jsStr); // logger.info(descPdfFileDir.getAbsolutePath()); for (File f : listFiles) { String fileName = f.getName(); String extensiion = FilenameUtils.getExtension(fileName).toLowerCase(); if (f.isFile()) { if (extensiion.equals("pdf")) { PdfReader reader = getPdfReader(f); File fileDesc = new File(descPdfFileDir.getAbsolutePath() + File.separator + fileName); try { PdfStamper stamper = new PdfStamper(reader, new FileOutputStream(fileDesc)); // Get the writer (to add actions and annotations) PdfWriter writer = stamper.getWriter(); PdfAction action = PdfAction.javaScript(jsStr, writer, true); // javaScript ? stamper.setPageAction(PdfWriter.PAGE_OPEN, action, 1); // Close the stamper stamper.close(); reader.close(); logger.info(fileDesc.getAbsolutePath() + " ? !"); } catch (DocumentException e) { // TODO Auto-generated catch block e.printStackTrace(); } } else continue; } // end if f.isFile else if (f.isDirectory()) { setExpireDateWithJavaScript(f, new File(descPdfFileDir.getAbsolutePath() + File.separator + fileName), startDate, alerDays, expiredDays); } // end if f.isDirectory else continue; } // end for }
From source file:org.h819.commons.file.MyPDFUtilss.java
/** * pdf //from w ww.ja v a 2s .c o m * * @param srcPdfFile ? * @param descPdfFile * @param userPassword ?? ,null ? * @param ownerPassword ?? ,null ? * @param allow_HideMenubar ???? * @param allow_HideToolbar ?? * @param allow_printing ??? * @param allow_copy ??? * @throws java.io.IOException * @throws DocumentException */ public static void encryptPdf(File srcPdfFile, File descPdfFile, String userPassword, String ownerPassword, boolean allow_HideMenubar, boolean allow_HideToolbar, boolean allow_printing, boolean allow_copy) throws IOException { if (srcPdfFile == null || !srcPdfFile.exists()) throw new IOException("src pdf file '" + srcPdfFile + "' does not exsit."); byte[] USER = null; byte[] OWNER = null; /** User password. */ if (userPassword != null) USER = userPassword.getBytes(); /** Owner password. */ if (ownerPassword != null) OWNER = ownerPassword.getBytes(); try { PdfReader reader = getPdfReader(srcPdfFile); PdfStamper stamper = new PdfStamper(reader, new FileOutputStream(descPdfFile.getAbsoluteFile())); // // ???? PdfWriter.setViewerPreferences addViewerPreference // ? api ??? addViewerPreference ? // ???"|"()?, ? PdfWriter.HideWindowUI // ???, ?? // ( addViewerPreference ) stamper.getWriter().addViewerPreference(PdfName.CENTERWINDOW, PdfBoolean.PDFTRUE); stamper.getWriter().addViewerPreference(PdfName.DISPLAYDOCTITLE, PdfBoolean.PDFTRUE); stamper.getWriter().addViewerPreference(PdfName.FITWINDOW, PdfBoolean.PDFTRUE); // writer.addViewerPreference(PdfName.HIDEWINDOWUI, // PdfBoolean.PDFTRUE); if (!allow_HideToolbar) stamper.getWriter().addViewerPreference(PdfName.HIDETOOLBAR, PdfBoolean.PDFTRUE); if (!allow_HideMenubar) stamper.getWriter().addViewerPreference(PdfName.HIDEMENUBAR, PdfBoolean.PDFTRUE); // allow if (allow_printing && allow_copy) stamper.setEncryption(USER, OWNER, PdfWriter.ALLOW_PRINTING | PdfWriter.ALLOW_COPY, true); else if (allow_printing) stamper.setEncryption(USER, OWNER, PdfWriter.ALLOW_PRINTING, true); else if (allow_copy) stamper.setEncryption(USER, OWNER, PdfWriter.ALLOW_COPY, true); else stamper.setEncryption(USER, OWNER, 0, true); stamper.close(); logger.info(srcPdfFile.getAbsoluteFile() + " encrypt finished."); } catch (DocumentException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } }
From source file:org.h819.commons.file.MyPDFUtilss.java
/** * ?pdf???/* ww w. j av a2 s . c o m*/ * <p> * javaScript ???? javaScript ? * </p> * * @param srcPdfFileDir ? * @param descPdfFileDir * @param startDate ? "2011,01,01" * @param alerDays ??? * @param expiredDays ????? * @throws java.io.IOException */ public static void setExpireDateWithJavaScript(File srcPdfFileDir, File descPdfFileDir, String startDate, int alerDays, int expiredDays) throws IOException { // ?? if (alerDays >= expiredDays) { logger.info(" ' ' " + alerDays + " '' " + expiredDays); return; } // ??? ? if (StringUtils.countMatches(startDate, ",") != 2) { logger.info(startDate + " ?? '2011,01,01' ?"); return; } if (!isEnoughtSpace(srcPdfFileDir, descPdfFileDir)) return; File listFiles[] = srcPdfFileDir.listFiles(); if (listFiles.length == 0) { logger.info("srcPdfFileDir has not file. " + srcPdfFileDir.getAbsolutePath()); return; } // ?? // String[] resources = new String[]{"/pdfexpiration.js"}; File resPath = MyFileUtils.copyResourceFileFromJarLibToTmpDir("/pdfexpiration.js"); //???? // ? String jsStr = FileUtils.readFileToString(resPath); /** ? js ? */ // ? jsStr = StringUtils.replace(jsStr, "2011,01,01", startDate); // ? jsStr = StringUtils.replace(jsStr, "alertDays = 355", "alertDays = " + Integer.toString(alerDays)); // ? jsStr = StringUtils.replace(jsStr, "expiredDays = 365", "expiredDays = " + Integer.toString(expiredDays)); System.out.println(jsStr); // logger.info(descPdfFileDir.getAbsolutePath()); for (File f : listFiles) { String fileName = f.getName(); String extensiion = FilenameUtils.getExtension(fileName).toLowerCase(); if (f.isFile()) { if (extensiion.equals("pdf")) { PdfReader reader = getPdfReader(f); File fileDesc = new File(descPdfFileDir.getAbsolutePath() + File.separator + fileName); try { PdfStamper stamper = new PdfStamper(reader, new FileOutputStream(fileDesc)); // Get the writer (to add actions and annotations) PdfWriter writer = stamper.getWriter(); PdfAction action = PdfAction.javaScript(jsStr, writer, true); // javaScript ? stamper.setPageAction(PdfWriter.PAGE_OPEN, action, 1); // Close the stamper stamper.close(); reader.close(); logger.info(fileDesc.getAbsolutePath() + " ? !"); } catch (DocumentException e) { // TODO Auto-generated catch block e.printStackTrace(); } } else continue; } // end if f.isFile else if (f.isDirectory()) { setExpireDateWithJavaScript(f, new File(descPdfFileDir.getAbsolutePath() + File.separator + fileName), startDate, alerDays, expiredDays); } // end if f.isDirectory else continue; } // end for }