Explorar o código

修改版本为2.0.0

wangliang %!s(int64=4) %!d(string=hai) anos
pai
achega
a6648d2a4d

+ 2 - 2
distributed-print-business/pom.xml

@@ -4,7 +4,7 @@
 	<modelVersion>4.0.0</modelVersion>
 	<groupId>com.qmth.distributed.print.business</groupId>
 	<artifactId>distributed-print-business</artifactId>
-	<version>1.0.0</version>
+	<version>2.0.0</version>
     <build>
         <plugins>
             <plugin>
@@ -22,7 +22,7 @@
 	<parent>
 		<groupId>com.qmth.distributed.print.service</groupId>
 		<artifactId>distributed-print-service</artifactId>
-		<version>1.0.0</version>
+		<version>2.0.0</version>
 	</parent>
 
 	<dependencies>

+ 28 - 0
distributed-print-business/src/main/java/com/qmth/distributed/print/business/util/htmltopdf/HtmlToPdfInterceptor.java

@@ -0,0 +1,28 @@
+package com.qmth.distributed.print.business.util.htmltopdf;
+
+import java.io.BufferedReader;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.InputStreamReader;
+
+public class HtmlToPdfInterceptor extends Thread {
+    private InputStream is;
+
+    public HtmlToPdfInterceptor(InputStream is){
+        this.is = is;
+    }
+
+    @Override
+    public void run(){
+        try{
+            InputStreamReader isr = new InputStreamReader(is, "utf-8");
+            BufferedReader br = new BufferedReader(isr);
+            String line = null;
+            while ((line = br.readLine()) != null) {
+                System.out.println(line.toString()); //输出内容
+            }
+        }catch (IOException e){
+            e.printStackTrace();
+        }
+    }
+}

+ 71 - 0
distributed-print-business/src/main/java/com/qmth/distributed/print/business/util/htmltopdf/wkhtmltopdf.java

@@ -0,0 +1,71 @@
+package com.qmth.distributed.print.business.util.htmltopdf;
+
+import java.io.File;
+
+public class wkhtmltopdf {
+
+    // wkhtmltopdf在系统中的路径
+    private static String toPdfTool = "/usr/local/bin/wkhtmltopdf";
+
+    /**
+     * html转pdf
+     *
+     * @param srcPath  html路径,可以是硬盘上的路径,也可以是网络路径
+     * @param destPath pdf保存路径
+     * @return 转换成功返回true
+     */
+    public static boolean convert(String srcPath, String destPath) {
+        File file = new File(destPath);
+        File parent = file.getParentFile();
+        // 如果pdf保存路径不存在,则创建路径
+        if (!parent.exists()) {
+            parent.mkdirs();
+        }
+        StringBuilder cmd = new StringBuilder();
+//        if (System.getProperty("os.name").indexOf("Windows") == -1) {
+        // 非windows 系统
+//            toPdfTool = "/usr/local/bin/wkhtmltopdf";
+//        }
+        cmd.append(toPdfTool);
+        cmd.append(" ");
+
+        cmd.append("  --page-size A3 ");// 打A3
+//        cmd.append("  --page-size A4 ");// 打A4
+//        cmd.append("  --header-line");// 页眉下面的线
+//        cmd.append(" --header-center 这里是页眉这里是页眉这里是页眉这里是页眉 ");//页眉中间内容
+//        cmd.append("  --margin-top 3cm ");// 设置页面上边距 (default 10mm)
+//        //cmd.append(" --header-html  file:///" + "https://blog.csdn.net/x6582026/article/details/53835835");// (添加一个HTML页眉,后面是网址)
+//        cmd.append(" --header-spacing 5 ");// (设置页眉和内容的距离,默认0)
+//        cmd.append(" --footer-center 第[page]页/共[topage]页");//设置在中心位置的页脚内容
+//        //cmd.append(" --footer-html  file:///" + "https://blog.csdn.net/x6582026/article/details/53835835");// (添加一个HTML页脚,后面是网址)
+//        cmd.append(" --footer-line");// * 显示一条线在页脚内容上)
+//        cmd.append(" --footer-spacing 5 ");// (设置页脚和内容的距离)
+
+        cmd.append(srcPath);
+        cmd.append(" ");
+        cmd.append(destPath);
+
+        System.out.println(cmd.toString());
+        boolean result = true;
+        try {
+            Process proc = Runtime.getRuntime().exec(cmd.toString());
+            HtmlToPdfInterceptor error = new HtmlToPdfInterceptor(proc.getErrorStream());
+            HtmlToPdfInterceptor output = new HtmlToPdfInterceptor(proc.getInputStream());
+            error.start();
+            output.start();
+            proc.waitFor();
+        } catch (Exception e) {
+            result = false;
+            e.printStackTrace();
+        }
+        return result;
+    }
+
+    public static void main(String[] args) {
+//        HtmlToPdf.convert("http://www.baidu.com", "F:/pdf/baidu.pdf");
+        String filename = "3120ee49668e4bf48fd8c161a2abb73b的副本";
+        wkhtmltopdf.convert("/Users/king/Downloads/测试附件/" + filename + ".html", "/Users/king/Downloads/pdf/" + filename + "A4.pdf");
+//        HtmlToPdf.convert("http://api.gyingyuan.com/", "F:/pdf/"+ UUID.randomUUID().toString()+".pdf");
+//        HtmlToPdf.convert("https://www.aliyun.com/jiaocheng/285649.html", "F:/pdf/baidu.pdf");
+    }
+}

+ 2 - 2
distributed-print-common/pom.xml

@@ -4,13 +4,13 @@
     <modelVersion>4.0.0</modelVersion>
     <groupId>com.qmth.distributed.print.common</groupId>
     <artifactId>distributed-print-common</artifactId>
-    <version>1.0.0</version>
+    <version>2.0.0</version>
     <packaging>jar</packaging>
 
     <parent>
         <groupId>com.qmth.distributed.print.service</groupId>
         <artifactId>distributed-print-service</artifactId>
-        <version>1.0.0</version>
+        <version>2.0.0</version>
     </parent>
 
     <dependencies>

+ 2 - 2
distributed-print-task/pom.xml

@@ -4,13 +4,13 @@
 	<modelVersion>4.0.0</modelVersion>
 	<groupId>com.qmth.distributed.print.task</groupId>
 	<artifactId>distributed-print-task</artifactId>
-	<version>1.0.0</version>
+	<version>2.0.0</version>
 	<packaging>jar</packaging>
 
 	<parent>
 		<groupId>com.qmth.distributed.print.service</groupId>
 		<artifactId>distributed-print-service</artifactId>
-		<version>1.0.0</version>
+		<version>2.0.0</version>
 	</parent>
 
 	<dependencies>

+ 2 - 2
distributed-print/pom.xml

@@ -4,13 +4,13 @@
 	<modelVersion>4.0.0</modelVersion>
 	<groupId>com.qmth.distributed.print</groupId>
 	<artifactId>distributed-print</artifactId>
-	<version>1.0.0</version>
+	<version>2.0.0</version>
 	<packaging>jar</packaging>
 
 	<parent>
 		<groupId>com.qmth.distributed.print.service</groupId>
 		<artifactId>distributed-print-service</artifactId>
-		<version>1.0.0</version>
+		<version>2.0.0</version>
 	</parent>
 
 	<dependencies>

+ 6 - 14
distributed-print/src/main/java/com/qmth/distributed/print/api/SysController.java

@@ -21,11 +21,11 @@ import com.qmth.distributed.print.business.service.*;
 import com.qmth.distributed.print.business.util.AuthUtil;
 import com.qmth.distributed.print.business.util.RedisUtil;
 import com.qmth.distributed.print.business.util.ServletUtil;
+import com.qmth.distributed.print.business.util.htmltopdf.wkhtmltopdf;
 import com.qmth.distributed.print.business.util.security.Md5Utils;
 import com.qmth.distributed.print.common.SignatureEntityTest;
 import com.qmth.distributed.print.common.contant.SystemConstant;
 import com.qmth.distributed.print.common.enums.ExceptionResultEnum;
-import com.qmth.distributed.print.common.util.JacksonUtil;
 import com.qmth.distributed.print.common.util.Result;
 import com.qmth.distributed.print.common.util.ResultUtil;
 import com.qmth.distributed.print.common.util.SessionUtil;
@@ -33,7 +33,6 @@ import io.swagger.annotations.*;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.data.redis.core.RedisTemplate;
 import org.springframework.transaction.annotation.Transactional;
 import org.springframework.validation.BindingResult;
 import org.springframework.web.bind.annotation.*;
@@ -42,8 +41,10 @@ import org.springframework.web.multipart.MultipartFile;
 import javax.annotation.Resource;
 import javax.validation.Valid;
 import java.security.NoSuchAlgorithmException;
-import java.util.*;
-import java.util.concurrent.TimeUnit;
+import java.util.Collections;
+import java.util.List;
+import java.util.Objects;
+import java.util.Set;
 import java.util.stream.Collectors;
 
 /**
@@ -247,21 +248,12 @@ public class SysController {
         return ResultUtil.ok(true);
     }
 
-//    @Resource
-//    RedisTemplate redisTemplate;
-
     @ApiOperation(value = "根据机构代码查询机构信息接口")
     @RequestMapping(value = "/school/query_by_school_code", method = RequestMethod.POST)
     @ApiResponses({@ApiResponse(code = 200, message = "学校信息", response = EditResult.class)})
     @Aac(auth = BOOL.FALSE)
     public Result queryBySchoolCode(@ApiParam(value = "机构code", required = true) @RequestParam String code) {
-//        for (int i = 0; i < 10; i++) {
-//            Map<String, Object> map = new HashMap<>();
-//            map.put(i + "", "测试" + i);
-//            redisTemplate.opsForList().leftPush("userImport", map);
-//        }
-//        Map<String, Object> map = (Map<String, Object>) redisTemplate.opsForList().rightPop("userImport", 0, TimeUnit.MILLISECONDS);
-//        log.info("map:{}", JacksonUtil.parseJson(map));
+        wkhtmltopdf.convert("/ONLINE_EXAM/distributed/3120ee49668e4bf48fd8c161a2abb73b的副本.html", "/ONLINE_EXAM/distributed/3120ee49668e4bf48fd8c161a2abb73b的副本.pdf");
         if (!Objects.equals(code.toUpperCase(), RoleTypeEnum.ADMIN.name())) {
             BasicSchool basicSchool = cacheService.schoolCache(code);
             if (Objects.isNull(basicSchool)) {

+ 1 - 1
pom.xml

@@ -4,7 +4,7 @@
     <modelVersion>4.0.0</modelVersion>
     <groupId>com.qmth.distributed.print.service</groupId>
     <artifactId>distributed-print-service</artifactId>
-    <version>1.0.0</version>
+    <version>2.0.0</version>
     <packaging>pom</packaging>
 
     <modules>