package com.demo; import java.awt.Color; import java.awt.image.BufferedImage; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.InputStream; import javax.imageio.ImageIO; import com.aspose.words.ConvertUtil; import com.aspose.words.Document; import com.aspose.words.DocumentBuilder; import com.aspose.words.HeaderFooter; import com.aspose.words.HeaderFooterType; import com.aspose.words.HorizontalAlignment; import com.aspose.words.ImportFormatMode; import com.aspose.words.License; 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; public class AsposeDemo { /** * license * @return */ static{ InputStream is = ConvertUtil.class.getClassLoader().getResourceAsStream("license.xml"); License aposeLic = new License(); try { aposeLic.setLicense(is); } catch (Exception e) { e.printStackTrace(); } } /** * @param args */ public static void main(String[] args) { try { //开始时间 long old = System.currentTimeMillis(); File file1 = new File ("C:\\TEST\\Test001.doc"); File file1_1 = new File ("C:\\TEST\\Test001.doc"); File file2 = new File ("C:\\TEST\\Test001.pdf"); File file3 = new File ("C:\\TEST\\Test001.rtf"); //1、word转PDF word2Pdf(file1,file2); //2、word转RTF word2Rtf(file1,file3); //3、将doc2合并到doc1 Document mergeDoc = mergeDoc(getDoc(file1),getDoc(file1_1)); mergeDoc.save("C:\\TEST\\mergeDoc.doc",SaveFormat.DOC); //4、添加水印 insertWatermarkText(getDoc(file1),"我愛北京天安門"); getDoc(file1).save("C:\\TEST\\file1_2.doc",SaveFormat.DOC); //结束时间 long now = System.currentTimeMillis(); System.out.println("共耗时:" + ((now - old) / 1000.0) + "秒\n\n"); } catch (Exception e) { e.printStackTrace(); } } /** * word转PDF * @param src 目标文件 * @param result 保存文件 * @throws FileNotFoundException * @throws Exception */ public static void word2Pdf(File src,File result) throws FileNotFoundException, Exception { Document doc = new Document(new FileInputStream(src)); doc.save(result.getAbsolutePath(),SaveFormat.PDF); } /** * 将doc2合并到doc1 * @param doc1 * @param doc2 * @throws Exception */ public static Document mergeDoc(Document doc1, Document doc2) throws Exception{ doc1.appendDocument(doc2, ImportFormatMode.KEEP_SOURCE_FORMATTING); return doc1; } /** * 转RTF * @param src * @param result * @throws FileNotFoundException * @throws Exception */ public static void word2Rtf(File src,File result) throws FileNotFoundException, Exception { Document doc = new Document(new FileInputStream(src)); doc.save(result.getAbsolutePath(),SaveFormat.RTF); } /** * 获得要操作的word文档对象 * @param src * @return * @throws Exception */ public static Document getDoc(File src) throws Exception{ return new Document(new FileInputStream(src)); } /** * 整个doc添加水印 * @param doc 文档对象 * @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(500); watermark.setHeight(100); watermark.setRotation(-40); watermark.getFill().setColor(Color.GRAY); watermark.setStrokeColor(Color.GRAY); 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); } } /** * 插入水印 * @param watermarkPara * @param sect * @param headerType * @throws Exception */ public 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 * @throws Exception */ public static void removeWatermark(Document doc) throws Exception { for (Section sect : doc.getSections()) { removeWatermarkFromHeader(sect, HeaderFooterType.HEADER_PRIMARY); removeWatermarkFromHeader(sect, HeaderFooterType.HEADER_FIRST); removeWatermarkFromHeader(sect, HeaderFooterType.HEADER_EVEN); } } /** * 移除指定Section的水印 * @param sect * @param headerType * @throws Exception */ public static void removeWatermarkFromHeader(Section sect, int headerType) throws Exception { HeaderFooter header = sect.getHeadersFooters().getByHeaderFooterType(headerType); if (header != null) { header.removeAllChildren(); } } /** * 向文档指定位置插入图片 * @param doc * @throws Exception */ @SuppressWarnings("unused") private static void insertInMage(Document doc) throws Exception { DocumentBuilder builder2 = new DocumentBuilder(doc); BufferedImage image = ImageIO.read(new FileInputStream("C:/Users/Administrator/Desktop/测试/eplugger.png")); //输出图象文件二进制数制 builder2.moveToBookmark("userimage"); builder2.insertImage(image, 90, 90); } }
最近下载更多
3334004690 LV10
6月24日
lmroman LV8
4月2日
wusiyin LV14
2022年9月1日
xueying049 LV5
2022年5月9日
x2b2d2 LV12
2021年8月4日
1439107348 LV1
2020年10月27日
慵懒的小橘猫 LV11
2020年5月21日
gxpcwm LV22
2019年7月23日
1105570390 LV8
2019年7月22日
news_2019 LV2
2019年7月3日
最近浏览更多
3334004690 LV10
6月24日
lmroman LV8
4月2日
467277 LV13
3月26日
akittyboy LV9
2月25日
neuwxr2015 LV8
2023年2月7日
1358849392 LV21
2022年11月11日
li_xiangquan
2022年11月9日
暂无贡献等级
wusiyin LV14
2022年9月1日
魔幻男灵 LV8
2022年6月12日
xueying049 LV5
2022年5月9日