91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

如何使用java實現word文檔轉pdf并添加水印

發布時間:2021-09-27 09:47:15 來源:億速云 閱讀:229 作者:小新 欄目:編程語言

這篇文章主要介紹了如何使用java實現word文檔轉pdf并添加水印,具有一定借鑒價值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。

具體如下:

前段時間,項目需要自動生成word文檔,用WordFreeMarker生成word文檔后,又要求生成的文檔能在瀏覽器瀏覽,思來想去,把word文檔轉成pdf就好了,于是乎研究了一下。

將word文檔轉化為PDF是項目中常見的需求之一,目前主流的方法可以分為兩大類,一類是利用各種Office應用進行轉換,譬如Microsoft Office、WPS以及LiberOffice,另一種是利用各種語言提供的對于Office文檔讀取的接口(譬如Apache POI,jacob,docx4j,openoffice),這些要么收費,要么要裝插件,要么轉換之后樣式走形,亂碼等等。

我使用Aspose.Words for Java 可以導出復雜WORD PDF HTML 多種數據格式

官方下載地址:http://www.aspose.com/java/word-component.aspx

我所用的版本是aspose-words-14.9.0-jdk16。需要到的兩個jar包(所需jar包下載。)。

上代碼:

import java.io.File;import java.io.FileOutputStream;import java.io.IOException;import org.slf4j.Logger;import com.aspose.words.Document;import com.aspose.words.SaveFormat;/** * * @ClassName: Word2PdfUtilt* @Description: PDF轉換工具類* @author mzl* @date 2018年7月30日 下午5:26:44* */public class Word2PdfUtilt {    protected static Logger log = Log.get();    public static void main(String[] args) {    doc2pdf("D:\\Workspaces\\小花測試_20180731094521.doc","D:\\Workspaces\\test.pdf");  }  public static void doc2pdf(String inPath, String outPath) {      FileOutputStream os =null;    try {      File file = new File(outPath); // 新建一個空白pdf文檔      os = new FileOutputStream(file);      Document doc = new Document(inPath); // Address是將要被轉化的word文檔      doc.save(os, SaveFormat.PDF);    } catch (Exception e) {      e.printStackTrace();    }finally{        if(os!=null){            try {                    os.close();                } catch (IOException e) {                    e.printStackTrace();                }        }    }  }}

轉成PDF格式后,圖片等樣式均沒有亂。

以上就是生產PDF的步驟了,接下來添加水印:

/*** * @Title: insertWatermarkText* @Description: PDF生成水印* @author mzl* @param doc* @param watermarkText* @throws Exception* @throws*/private 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(500);    //水印高度    watermark.setHeight(100);    //旋轉水印    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");}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));}

感謝你能夠認真閱讀完這篇文章,希望小編分享的“如何使用java實現word文檔轉pdf并添加水印”這篇文章對大家有幫助,同時也希望大家多多支持億速云,關注億速云行業資訊頻道,更多相關知識等著你來學習!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

文安县| 大渡口区| 大英县| 响水县| 莱西市| 星子县| 屯留县| 山西省| 公安县| 丽水市| 特克斯县| 昌都县| 旌德县| 杭锦旗| 工布江达县| 崇阳县| 天长市| 咸丰县| 楚雄市| 平遥县| 三门峡市| 云龙县| 津南区| 本溪| 玉树县| 阿克陶县| 长兴县| 衢州市| 伊春市| 兰溪市| 牙克石市| 二连浩特市| 县级市| 文水县| 哈密市| 个旧市| 江西省| 澳门| 黄石市| 肥东县| 开阳县|