java实现word转pdf实现在线预览(可以带水印)

硅谷探秘者 650 0 0

java实现word转pdf实现在线预览(可以带水印)

使用之前需要两个jar包的依赖

文件下载地址:http://www.jiajiajia.club/file/info/4uwe2d/111

Java代码实现
package test.pdftest;

import java.awt.Color;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;

import com.aspose.words.Document;
import com.aspose.words.HeaderFooter;
import com.aspose.words.HeaderFooterType;
import com.aspose.words.HorizontalAlignment;
import com.aspose.words.Paragraph;
import com.aspose.words.RelativeHorizontalPosition;
import com.aspose.words.RelativeVerticalPosition;
import com.aspose.words.SaveFormat;
import com.aspose.words.Section;
import com.aspose.words.Shape;
import com.aspose.words.ShapeType;
import com.aspose.words.VerticalAlignment;
import com.aspose.words.WrapType;
/**
 * 	world转pdf实现在线预览
 * @author 硅谷探秘者(jia)
 *
 */
public class Test {
	public static void main(String[] args) {
		doc2pdf("E:\\test\\files\\a.docx","E:\\test\\files\\a.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文档
	      insertWatermarkText(doc,"贾佳佳");//带水印,如果不需要直接注释掉就行了
	      doc.save(os, SaveFormat.PDF);
	    } catch (Exception e) {
	      e.printStackTrace();
	    }finally{
	        if(os!=null){
	            try {
	                    os.close();
	                } catch (IOException e) {
	                    e.printStackTrace();
	                }
	        }
	    }
	  }
	
	/**
	* @Description: PDF生成水印
	* @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));
	}
}	
实现效果

 

猜你喜欢
jar依赖 923 javaworldpdf所需jar包-pdf线一、依赖文件二、java代码packagetest.pdftest;importjava.awt.Color
工具 2620 java完美htmlpdf1.pom依赖:dependencygroupIdcom.itextpdf/groupIdartifactIditextpdf
java基础 581 java集合之TreeMap原理TreeMap集合的说简单也简单说复杂也复杂,说简单是因为TreeMap底层完全依靠红黑树这个数据结构,相比与HashMap来说TreeMap不用考虑
数据结构与算法 1240 ; publicNode(intvalue,Nodenext){ super(); this.value=value; this.next=next; }}算法packageclub.test;/***
weblog 389 java服务端sha256加密importjava.io.UnsupportedEncodingException;importjava.security.MessageDigest
java基础 444 关键词URLEncoderURLDecoderescapeencodeURIencodeURIComponentdecodeURIunescapejavaStrings=URLEncoder.encode("这是上岛咖啡你哈卡斯","utf-8");Strings2=URLDecoder.decode("%E8%BF%99%E6%98%AF%E4%B8%8A%E5%B2%9B%E5%92%96%E
框架 1399 如果你的eclipse安装了springboot插件通过下面方式1.选择springboot项目右击选择spring-adddevtools2.点击后pom文件中会出一个依赖
数据结构与算法 421 ,放入后台的一个执行队列中,后台慢慢执行,当队列中没有业务数据时,使该执行线程进入等待状态。当业务数据添加进队列中后唤醒处于等待状态的执行线程,继续处理业务。一、阻塞队列的packagecom.
归档
2018年11月  12 2018年12月  33 2019年01月  28 2019年02月  28 2019年03月  32 2019年04月  27 2019年05月  33 2019年06月  6 2019年07月  12 2019年08月  12 2019年09月  21 2019年10月  8 2019年11月  15 2019年12月  25 2020年01月  9 2020年02月  5 2020年03月  16 2020年04月  4 2020年06月  1 2020年07月  7 2020年08月  13 2020年09月  9 2020年10月  5 2020年12月  3 2021年01月  1 2021年02月  5 2021年03月  7
标签
算法基础 linux 前端 c++ 数据结构 框架 数据库 计算机基础 储备知识 java基础 ASM 其他 深入理解java虚拟机 nginx git 消息中间件 搜索 maven redis docker dubbo
目录