|
|
@@ -3,6 +3,8 @@ package com.izouma.awesomeAdmin;
|
|
|
import com.izouma.awesomeAdmin.domain.BaseEntity;
|
|
|
import com.izouma.awesomeAdmin.domain.User;
|
|
|
import com.izouma.awesomeAdmin.web.BaseController;
|
|
|
+import com.jacob.activeX.ActiveXComponent;
|
|
|
+import com.jacob.com.Dispatch;
|
|
|
import lombok.SneakyThrows;
|
|
|
import org.apache.commons.lang3.RandomStringUtils;
|
|
|
import org.apache.commons.text.CaseUtils;
|
|
|
@@ -93,7 +95,7 @@ public class CommonTest {
|
|
|
AffineTransform affinetransform = new AffineTransform();
|
|
|
FontRenderContext frc = new FontRenderContext(affinetransform, true, true);
|
|
|
Font font = Font.createFont(Font.TRUETYPE_FONT, this.getClass()
|
|
|
- .getResourceAsStream("/font/SourceHanSansCN-Normal.ttf"));
|
|
|
+ .getResourceAsStream("/font/SourceHanSansCN-Normal.ttf"));
|
|
|
System.out.println((int) (font.deriveFont(14f).getStringBounds("aaa", frc).getWidth()));
|
|
|
}
|
|
|
|
|
|
@@ -111,24 +113,24 @@ public class CommonTest {
|
|
|
StringBuilder idxJs = new StringBuilder();
|
|
|
for (Class<? extends Enum> entity : entitySet) {
|
|
|
idxJs.append("import ").append(entity.getSimpleName()).append(" from \"./").append(entity.getSimpleName())
|
|
|
- .append("\";\n");
|
|
|
+ .append("\";\n");
|
|
|
StringBuilder str = new StringBuilder("export default {\n");
|
|
|
for (Enum enumConstant : entity.getEnumConstants()) {
|
|
|
str.append(" ").append(enumConstant.name()).append(": \"").append(enumConstant.name())
|
|
|
- .append("\",\n");
|
|
|
+ .append("\",\n");
|
|
|
}
|
|
|
str.append("}");
|
|
|
Files.write(Paths.get(System.getProperty("user.dir"), "src", "main", "vue", "src", "constants", entity
|
|
|
.getSimpleName() + ".js"), str.toString()
|
|
|
- .getBytes(StandardCharsets.UTF_8), CREATE, TRUNCATE_EXISTING);
|
|
|
+ .getBytes(StandardCharsets.UTF_8), CREATE, TRUNCATE_EXISTING);
|
|
|
Files.write(Paths.get(System.getProperty("user.dir"), "src", "main", "zmj_mp", "src", "constants", entity
|
|
|
.getSimpleName() + ".js"), str.toString()
|
|
|
- .getBytes(StandardCharsets.UTF_8), CREATE, TRUNCATE_EXISTING);
|
|
|
+ .getBytes(StandardCharsets.UTF_8), CREATE, TRUNCATE_EXISTING);
|
|
|
}
|
|
|
idxJs.append("export default {\n");
|
|
|
for (Class<? extends Enum> entity : entitySet) {
|
|
|
idxJs.append(" ").append(entity.getSimpleName()).append(": ").append(entity.getSimpleName())
|
|
|
- .append(",\n");
|
|
|
+ .append(",\n");
|
|
|
}
|
|
|
idxJs.append("}");
|
|
|
System.out.println(idxJs.toString());
|
|
|
@@ -172,4 +174,45 @@ public class CommonTest {
|
|
|
FileCopyUtils.copy(out, new File("/Users/drew/Desktop/111.jpg"));
|
|
|
System.out.println(out);
|
|
|
}
|
|
|
+
|
|
|
+ @Test
|
|
|
+ public void testword2pdf() {
|
|
|
+ ActiveXComponent app = null;
|
|
|
+ String wordFile = "C:\\Users\\xiong\\Downloads\\文件正文.doc";
|
|
|
+ String pdfFile = "C:\\Users\\xiong\\Downloads\\文件正文.pdf";
|
|
|
+
|
|
|
+ System.out.println("开始转换...");
|
|
|
+ // 开始时间
|
|
|
+ long start = System.currentTimeMillis();
|
|
|
+ try {
|
|
|
+ // 打开word
|
|
|
+ app = new ActiveXComponent("Word.Application");
|
|
|
+ // 设置word不可见,很多博客下面这里都写了这一句话,其实是没有必要的,因为默认就是不可见的,如果设置可见就是会打开一个word文档,对于转化为pdf明显是没有必要的
|
|
|
+ //app.setProperty("Visible", false);
|
|
|
+ // 获得word中所有打开的文档
|
|
|
+ Dispatch documents = app.getProperty("Documents").toDispatch();
|
|
|
+ System.out.println("打开文件: " + wordFile);
|
|
|
+ // 打开文档
|
|
|
+ Dispatch document = Dispatch.call(documents, "Open", wordFile, false, true).toDispatch();
|
|
|
+ // 如果文件存在的话,不会覆盖,会直接报错,所以我们需要判断文件是否存在
|
|
|
+ File target = new File(pdfFile);
|
|
|
+ if (target.exists()) {
|
|
|
+ target.delete();
|
|
|
+ }
|
|
|
+ System.out.println("另存为: " + pdfFile);
|
|
|
+ // 另存为,将文档报错为pdf,其中word保存为pdf的格式宏的值是17
|
|
|
+ Dispatch.call(document, "SaveAs", pdfFile, 17);
|
|
|
+ // 关闭文档
|
|
|
+ Dispatch.call(document, "Close", false);
|
|
|
+ // 结束时间
|
|
|
+ long end = System.currentTimeMillis();
|
|
|
+ System.out.println("转换成功,用时:" + (end - start) + "ms");
|
|
|
+ } catch (Exception e) {
|
|
|
+ e.getMessage();
|
|
|
+ System.out.println("转换失败" + e.getMessage());
|
|
|
+ } finally {
|
|
|
+ // 关闭office
|
|
|
+ app.invoke("Quit", 0);
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|