色婷婷狠狠18禁久久YY,CHINESE性内射高清国产,国产女人18毛片水真多1,国产AV在线观看

java如何實現(xiàn)在web工程中用OpenOffice生成帶有圖片水印的pdf

錢艷冰2年前34瀏覽0評論

java如何實現(xiàn)在web工程中用OpenOffice生成帶有圖片水印的pdf?

需要itext2.1.5,

以下是對pdf加水印的代碼,包括文字水印和圖片水印

public int fileCopy(String srcPath, String destPath) { FileOutputStream fos = null; FileInputStream fis = null; try { fos = new FileOutputStream(destPath); fis = new FileInputStream(srcPath); byte[] buffer = new byte[1024]; int len = 0; while ((len = fis.read(buffer)) > 0) { fos.write(buffer, 0, len); } return 1; } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } finally { try { fis.close(); fos.flush(); fos.close(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } return 0; } /** * 為pdf文件加文字水印 * * @param srcPath * 源文件路徑 * @param destPath * 目標文件路徑 * @param waterText * 水印文字 * @throws DocumentException * @throws IOException */ public void wordWaterMark(String srcPath, String destPath, String waterText) throws DocumentException, IOException { int result = fileCopy(srcPath, destPath); if (result == 1) { // 待加水印的文件 Pdfreader reader = new PdfReader(destPath); // 加完水印的文件 PdfStamper stamper = new PdfStamper(reader, new FileOutputStream(srcPath)); int total = reader.getNumberOfPages() + 1; PdfContentByte content; // 設置字體 BaseFont base = BaseFont.createFont(fontPath, BaseFont.IDENTITY_H, BaseFont.NOT_EMBEDDED); // 水印文字 int j = waterText.length(); // 文字長度 char c = 0; int high = 0;// 高度 // 循環(huán)對每頁插入水印 for (int i = 1; i < total; i++) { // 水印的起始 high = 60; content = stamper.getunderContent(i); PdfGState gs = new PdfGState(); gs.setFillOpacity(0.1f);// 設置透明度為0.2 content.setGState(gs); // 開始 content.beginText(); // 設置顏色 // content.setColorFill(new Color()); // 設置字體及字號 content.setFontAndSize(base, 88); // 設置起始位置 content.setTextMatrix(120, 333); // 開始寫入水印 for (int k = 0; k < j; k++) { content.setTextRise(high); c = waterText.charAt(k); content.showText(c + ""); high += 20; } content.endText(); } stamper.close(); System.out.println("添加成功++++++++++++++++++++++++++++++++++++++++++"); } else { System.out.println("復制pdf失敗===================="); } } public void picWaterMark(String srcPath, String destPath, String imageFilePath) throws DocumentException, IOException { int result = fileCopy(srcPath, destPath); if (result == 1) { // 待加水印的文件 PdfReader reader = new PdfReader(destPath); // 加完水印的文件 PdfStamper stamper = new PdfStamper(reader, new FileOutputStream(srcPath)); Image img = Image.getInstance(imageFilePath); img.setAbsolutePosition(50, 400);// 坐標 img.setRotation(20);// 旋轉 弧度 img.setRotationDegrees(45);// 旋轉 角度 // image.scaleAbsolute(200,100);//自定義大小 img.scalePercent(50);// 依照比例縮放 int pageSize = reader.getNumberOfPages(); for (int i = 1; i <= pageSize; i++) { PdfContentByte under = stamper.getUnderContent(i); under.addImage(img); PdfGState gs = new PdfGState(); gs.setFillOpacity(0.2f);// 設置透明度為0.2 under.setGState(gs); } stamper.close();// 關閉 System.out.println("添加成功++++++++++++++++++++++++++++++++++++++++++"); } else { System.out.println("復制pdf失敗===================="); } }

linux下轉pdf可以用libreoffice,需要安裝,這個是免費的,具體代碼如下:

String command = "libreoffice5.0 --invisible --convert-to pdf:writer_pdf_Export --outdir " + destFilepath + " " + source; try { p = Runtime.getRuntime().exec(command); p.waitFor(); } catch (InterruptedException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); }

java 轉pdf,java如何實現(xiàn)在web工程中用OpenOffice生成帶有圖片水印的pdf