日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > java >内容正文

java

Aspose.Java实现word转pdf,添加水印等操作

發布時間:2023/12/10 java 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Aspose.Java实现word转pdf,添加水印等操作 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Aspose.Java實現word轉pdf,添加水印等操作

  • 一. word轉pdf
  • 二. 文檔插入水印

Aspose是一款商用版控件,支持各類文檔操作,這里主要介紹如何在Springboot項目中使用破解版。

一. word轉pdf

  • 在項目中導入aspose.word包 百度網盤下載 提取碼:pokb
  • 新建一個asposeUtil類,類中建立如下靜態方法
  • /*** @param wordPath 需要被轉換的word全路徑帶文件名* @param pdfPath 轉換之后pdf的全路徑帶文件名*/public static void doc2pdf(String wordPath, String pdfPath) {if (!getLicense()) { // 驗證License 若不驗證則轉化出的pdf文檔會有水印產生return;}try {long old = System.currentTimeMillis();File file = new File(pdfPath); //新建一個pdf文檔FileOutputStream os = new FileOutputStream(file);Document doc = new Document(wordPath); //Address是將要被轉化的word文檔doc.save(os, com.aspose.words.SaveFormat.PDF);long now = System.currentTimeMillis();os.close(); // System.out.println("共耗時:" + ((now - old) / 1000.0) + "秒"); //轉化用時} catch (Exception e) {e.printStackTrace();}}
  • 新建license.xml文件(放入Springboot項目的resources目錄下)
  • <License><Data><Products><Product>Aspose.Total for Java</Product><Product>Aspose.Words for Java</Product></Products><EditionType>Enterprise</EditionType><SubscriptionExpiry>20991231</SubscriptionExpiry><LicenseExpiry>20991231</LicenseExpiry><SerialNumber>8bfe198c-7f0c-4ef8-8ff0-acc3237bf0d7</SerialNumber></Data><Signature>sNLLKGMUdF0r8O1kKilWAGdgfs2BvJb/2Xp8p5iuDVfZXmhppo+d0Ran1P9TKdjV4ABwAgKXxJ3jcQTqE/2IRfqwnPf8itN8aFZlV3TJPYeD3yWE7IT55Gz6EijUpC7aKeoohTb4w2fpox58wWoF3SNp6sK6jDfiAUGEHYJ9pjU=</Signature> </License>

    存放位置如圖所示

    4. 建立getLicense()方法

    private static boolean getLicense() {boolean result = false;try {InputStream is = asposeUtil.class.getClassLoader().getResourceAsStream("license.xml"); // 如果是普通java項目(非Springboot項目)license.xml應放在..\WebRoot\WEB-INF\classes路徑下System.out.println(is);License aposeLic = new License();aposeLic.setLicense(is); // com.aspose.cells.License cell = new com.aspose.cells.License(); // cell.setLicense(is);result = true;} catch (Exception e) {e.printStackTrace();}return result;}
  • 之后我們直接通過asposeUtil.doc2pdf(wordPath, pdfPath)即可完成轉換
  • 二. 文檔插入水印

    插入水印的方法與上面大致相同,下面給出插入水印具體代碼

    /*** 為word文檔添加水印* @param doc word文檔模型* @param watermarkText 需要添加的水印字段* @throws Exception*/public static void insertWatermarkText(Document doc, String watermarkText) throws Exception {Shape watermark = new Shape(doc, ShapeType.TEXT_PLAIN_TEXT);//水印內容watermark.getTextPath().setText(watermarkText);//水印字體watermark.getTextPath().setFontFamily("宋體");//水印寬度watermark.setWidth(100);//水印高度watermark.setHeight(20);//旋轉水印watermark.setRotation(-40);//水印顏色 淺灰色watermark.getFill().setColor(Color.lightGray);watermark.setStrokeColor(Color.lightGray);//設置相對水平位置watermark.setRelativeHorizontalPosition(RelativeHorizontalPosition.PAGE);//設置相對垂直位置watermark.setRelativeVerticalPosition(RelativeVerticalPosition.PAGE);//設置包裝類型watermark.setWrapType(WrapType.NONE);//設置垂直對齊watermark.setVerticalAlignment(VerticalAlignment.CENTER);//設置文本水平對齊方式watermark.setHorizontalAlignment(HorizontalAlignment.CENTER);Paragraph watermarkPara = new Paragraph(doc);watermarkPara.appendChild(watermark);for (Section sect : doc.getSections()){insertWatermarkIntoHeader(watermarkPara, sect, HeaderFooterType.HEADER_PRIMARY);insertWatermarkIntoHeader(watermarkPara, sect, HeaderFooterType.HEADER_FIRST);insertWatermarkIntoHeader(watermarkPara, sect, HeaderFooterType.HEADER_EVEN);}System.out.println("Watermark Set");}/*** 在頁眉中插入水印* @param watermarkPara* @param sect* @param headerType* @throws Exception*/private static void insertWatermarkIntoHeader(Paragraph watermarkPara, Section sect, int headerType) throws Exception{HeaderFooter header = sect.getHeadersFooters().getByHeaderFooterType(headerType);if (header == null){header = new HeaderFooter(sect.getDocument(), headerType);sect.getHeadersFooters().add(header);}header.appendChild(watermarkPara.deepClone(true));}/*** 設置水印屬性* @param doc* @param wmText* @param left* @param top* @return* @throws Exception*/public static Shape ShapeMore(Document doc, String wmText, double left, double top)throws Exception{ // Shape waterShape = new Shape(doc, ShapeType.TEXT_PLAIN_TEXT);Shape waterShape = new Shape(doc, ShapeType.IMAGE);waterShape.getImageData().setImage(wmText);waterShape.setWidth(100.0);waterShape.setHeight(100.0);waterShape.setRotation(0);waterShape.setFilled(true); // //水印內容 // waterShape.getTextPath().setText(wmText); // //水印字體 // waterShape.getTextPath().setFontFamily("宋體"); // //水印寬度 // waterShape.setWidth(40); // //水印高度 // waterShape.setHeight(13); // //旋轉水印 // waterShape.setRotation(-40);//水印顏色 淺灰色/*waterShape.getFill().setColor(Color.lightGray);waterShape.setStrokeColor(Color.lightGray);*/waterShape.setStrokeColor(new Color(210,210,210));//將水印放置在頁面中心waterShape.setLeft(left);waterShape.setTop(top);//設置包裝類型waterShape.setWrapType(WrapType.NONE);return waterShape;}/*** 插入多個水印* @param mdoc* @param wmText* @throws Exception*/public static void WaterMarkMore(Document mdoc, String wmText)throws Exception{Paragraph watermarkPara = new Paragraph(mdoc); // for (int j = 0; j < 500; j = j + 100) // { // for (int i = 0; i < 700; i = i + 85) // { // Shape waterShape = ShapeMore(mdoc, wmText, j, i); // watermarkPara.appendChild(waterShape); // } // }Shape waterShape = ShapeMore(mdoc, wmText, 155, 300);watermarkPara.appendChild(waterShape);for (Section sect : mdoc.getSections()){insertWatermarkIntoHeader(watermarkPara, sect, HeaderFooterType.HEADER_PRIMARY);insertWatermarkIntoHeader(watermarkPara, sect, HeaderFooterType.HEADER_FIRST);insertWatermarkIntoHeader(watermarkPara, sect, HeaderFooterType.HEADER_EVEN);}}

    總結

    以上是生活随笔為你收集整理的Aspose.Java实现word转pdf,添加水印等操作的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。