Commit 31ce94c0 by yuwei

项目初始化

parent e64586e9
package cn.datax.commo.office.word; package cn.datax.commo.office.word;
import com.aspose.words.*; import com.aspose.words.*;
import com.aspose.words.Shape;
import java.awt.*;
import java.io.*; import java.io.*;
import java.util.*; import java.util.*;
import java.util.List; import java.util.List;
import java.util.function.Function;
public class WordUtil { public class WordUtil {
...@@ -170,89 +171,37 @@ public class WordUtil { ...@@ -170,89 +171,37 @@ public class WordUtil {
* @param doc word文件流 * @param doc word文件流
* @param watermarkText 水印内容 * @param watermarkText 水印内容
*/ */
public static void insertWatermarkText(Document doc, String watermarkText) { private static void insertWatermarkText(Document doc, String watermarkText) throws Exception {
// 居中
insertWatermarkText(doc, watermarkText, new Function<Shape, Object>() {
@Override
public Object apply(Shape watermark) {
// Place the watermark in the page center.
watermark.setRelativeHorizontalPosition(RelativeHorizontalPosition.PAGE);
watermark.setRelativeVerticalPosition(RelativeVerticalPosition.PAGE);
watermark.setWrapType(WrapType.NONE);
watermark.setVerticalAlignment(VerticalAlignment.CENTER);
watermark.setHorizontalAlignment(HorizontalAlignment.CENTER);
return null;
}
});
// 顶部
insertWatermarkText(doc, watermarkText, new Function<Shape, Object>() {
@Override
public Object apply(Shape watermark) {
watermark.setRelativeHorizontalPosition(RelativeHorizontalPosition.MARGIN);
watermark.setRelativeVerticalPosition(RelativeVerticalPosition.MARGIN);
watermark.setWrapType(WrapType.NONE);
// 我们需要自定义距离顶部的高度
watermark.setVerticalAlignment(VerticalAlignment.TOP);
watermark.setHorizontalAlignment(HorizontalAlignment.CENTER);
// watermark.setTop(120);
return null;
}
});
// 尾部
insertWatermarkText(doc, watermarkText, new Function<Shape, Object>() {
@Override
public Object apply(Shape watermark) {
watermark.setRelativeHorizontalPosition(RelativeHorizontalPosition.MARGIN);
watermark.setRelativeVerticalPosition(RelativeVerticalPosition.MARGIN);
watermark.setWrapType(WrapType.NONE);
// 我们需要自定义距离顶部的高度
watermark.setVerticalAlignment(VerticalAlignment.BOTTOM);
watermark.setHorizontalAlignment(HorizontalAlignment.CENTER);
// 设置距离顶部的高度
// watermark.setTop(480);
return null;
}
});
}
private static void insertWatermarkText(Document doc, String watermarkText, Function<Shape, Object> watermaskPositionConfigFunc) {
Shape watermark = new Shape(doc, ShapeType.TEXT_PLAIN_TEXT); Shape watermark = new Shape(doc, ShapeType.TEXT_PLAIN_TEXT);
watermark.setName("WaterMark");
watermark.getTextPath().setText(watermarkText); watermark.getTextPath().setText(watermarkText);
// 这里设置为宋体可以保证在转换为PDF时中文不是乱码. watermark.getTextPath().setFontFamily("Arial");
watermark.getTextPath().setFontFamily("WeiRuanYaHei"); watermark.setWidth(500);
// WeiRuanYaHei 宋体 watermark.setHeight(100);
try { watermark.setRotation(-40);
// 水印大小 watermark.getFill().setColor(Color.GRAY);
watermark.setWidth(150); watermark.setStrokeColor(Color.GRAY);
watermark.setHeight(30); watermark.setRelativeHorizontalPosition(RelativeHorizontalPosition.PAGE);
} catch (Exception e) { watermark.setRelativeVerticalPosition(RelativeVerticalPosition.PAGE);
throw new RuntimeException(e); watermark.setWrapType(WrapType.NONE);
} watermark.setVerticalAlignment(VerticalAlignment.CENTER);
// 左下到右上 watermark.setHorizontalAlignment(HorizontalAlignment.CENTER);
watermark.setRotation(-20);
// 字体RGB颜色
final String colorStr = "808080";
watermark.getFill().setColor(new java.awt.Color(Integer.parseInt(colorStr, 16)));
watermark.setStrokeColor(new java.awt.Color(Integer.parseInt(colorStr, 16)));
watermaskPositionConfigFunc.apply(watermark);
Paragraph watermarkPara = new Paragraph(doc); Paragraph watermarkPara = new Paragraph(doc);
watermarkPara.appendChild(watermark); watermarkPara.appendChild(watermark);
for (Section sect : doc.getSections()) { for (Section sect : doc.getSections()) {
insertWatermarkIntoHeader(watermarkPara, sect, HeaderFooterType.HEADER_PRIMARY); insertWatermarkIntoHeader(watermarkPara, sect, HeaderFooterType.HEADER_PRIMARY);
insertWatermarkIntoHeader(watermarkPara, sect, HeaderFooterType.HEADER_FIRST);
insertWatermarkIntoHeader(watermarkPara, sect, HeaderFooterType.HEADER_EVEN);
} }
} }
private static void insertWatermarkIntoHeader(Paragraph watermarkPara, Section sect, int headerType) { private static void insertWatermarkIntoHeader(Paragraph watermarkPara, Section sect, int headerType) throws Exception {
HeaderFooter header = sect.getHeadersFooters().getByHeaderFooterType(headerType); HeaderFooter header = sect.getHeadersFooters().getByHeaderFooterType(headerType);
if (header == null) { if (header == null) {
header = new HeaderFooter(sect.getDocument(), headerType); header = new HeaderFooter(sect.getDocument(), headerType);
sect.getHeadersFooters().add(header); sect.getHeadersFooters().add(header);
} }
try { header.appendChild(watermarkPara.deepClone(true));
header.appendChild(watermarkPara.deepClone(true));
} catch (Exception e) {
throw new RuntimeException(e);
}
} }
public static void main(String[] args) throws Exception { public static void main(String[] args) throws Exception {
......
//package cn.datax.service.quartz.config;
//
//import cn.datax.service.quartz.quartz.utils.ScheduleUtil;
//import com.zaxxer.hikari.HikariDataSource;
//import org.quartz.Scheduler;
//import org.quartz.spi.TriggerFiredBundle;
//import org.springframework.beans.factory.config.AutowireCapableBeanFactory;
//import org.springframework.boot.autoconfigure.jdbc.DataSourceProperties;
//import org.springframework.boot.autoconfigure.quartz.QuartzDataSource;
//import org.springframework.boot.context.properties.ConfigurationProperties;
//import org.springframework.context.annotation.Bean;
//import org.springframework.context.annotation.Configuration;
//import org.springframework.context.annotation.Primary;
//import org.springframework.scheduling.quartz.AdaptableJobFactory;
//import org.springframework.scheduling.quartz.SchedulerFactoryBean;
//import org.springframework.stereotype.Component;
//
//import javax.sql.DataSource;
//
//@Configuration
//public class QuartzConfig {
//
// /**
// * 创建 mysql 数据源的配置对象
// */
// @Primary
// @Bean(name = "mysqlDataSourceProperties")
// @ConfigurationProperties(prefix = "spring.datasource.mysql")
// public DataSourceProperties mysqlDataSourceProperties() {
// return new DataSourceProperties();
// }
//
// /**
// * 创建 mysql 数据源
// */
// @Primary
// @Bean(name = "mysqlDataSource")
// @ConfigurationProperties(prefix = "spring.datasource.mysql")
// public DataSource userDataSource() {
// // 获得 DataSourceProperties 对象
// DataSourceProperties properties = this.mysqlDataSourceProperties();
// // 创建 HikariDataSource 对象
// return createHikariDataSource(properties);
// }
//
// /**
// * 创建 quartz 数据源的配置对象
// */
// @Bean(name = "quartzDataSourceProperties")
// @ConfigurationProperties(prefix = "spring.datasource.quartz")
// public DataSourceProperties quartzDataSourceProperties() {
// return new DataSourceProperties();
// }
//
// /**
// * 创建 quartz 数据源
// */
// @Bean(name = "quartzDataSource")
// @ConfigurationProperties(prefix = "spring.datasource.quartz")
// @QuartzDataSource
// public DataSource quartzDataSource() {
// // 获得 DataSourceProperties 对象
// DataSourceProperties properties = this.quartzDataSourceProperties();
// // 创建 HikariDataSource 对象
// return createHikariDataSource(properties);
// }
//
// private static HikariDataSource createHikariDataSource(DataSourceProperties properties) {
// // 创建 HikariDataSource 对象
// HikariDataSource dataSource = properties.initializeDataSourceBuilder().type(HikariDataSource.class).build();
// return dataSource;
// }
//
// /**
// * 该类主要是为了把 job 对象的注入到 spring 中
// */
// @Component("quartzJobFactory")
// public static class QuartzJobFactory extends AdaptableJobFactory {
// //这个对象可以通过 ApplicationContext.getAutowireCapableBeanFactory()获取
// private final AutowireCapableBeanFactory capableBeanFactory;
//
// public QuartzJobFactory(AutowireCapableBeanFactory capableBeanFactory) {
// this.capableBeanFactory = capableBeanFactory;
// }
// /**
// * Job 对象的实例化过程是在Quartz中进行的,通过重写此方法 把job 实例注入到spring容器中
// */
// @Override
// protected Object createJobInstance(TriggerFiredBundle bundle) throws Exception {
// //调用父类的方法
// Object jobInstance = super.createJobInstance(bundle);
// //注入到spring容器
// capableBeanFactory.autowireBean(jobInstance);
// return jobInstance;
// }
// }
//
// /**
// * 注入scheduler到spring
// * @param quartzJobFactory
// * @return Scheduler
// * @throws Exception
// */
// @Bean(name = "scheduler")
// public Scheduler scheduler(QuartzJobFactory quartzJobFactory) throws Exception {
// SchedulerFactoryBean factoryBean = new SchedulerFactoryBean();
// factoryBean.setJobFactory(quartzJobFactory);
// factoryBean.setDataSource(quartzDataSource());
// factoryBean.afterPropertiesSet();
// Scheduler scheduler = factoryBean.getScheduler();
// scheduler.start();
// // 设置ScheduleUtil的定时处理对象
// ScheduleUtil.setScheduler(scheduler);
// return scheduler;
// }
//}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment