diff --git a/coolstore-partner-common/pom.xml b/coolstore-partner-common/pom.xml index 0961b14dd..cdf95f685 100644 --- a/coolstore-partner-common/pom.xml +++ b/coolstore-partner-common/pom.xml @@ -98,6 +98,12 @@ openpdf 1.3.30 + + + org.apache.pdfbox + pdfbox + 2.0.27 + \ No newline at end of file diff --git a/coolstore-partner-common/src/main/java/com/cool/store/utils/PDFUtils.java b/coolstore-partner-common/src/main/java/com/cool/store/utils/PDFUtils.java index 272b19a0e..3df31afd9 100644 --- a/coolstore-partner-common/src/main/java/com/cool/store/utils/PDFUtils.java +++ b/coolstore-partner-common/src/main/java/com/cool/store/utils/PDFUtils.java @@ -5,10 +5,13 @@ import com.lowagie.text.Font; import com.lowagie.text.Image; import com.lowagie.text.Paragraph; import com.lowagie.text.pdf.*; +import org.apache.pdfbox.pdmodel.PDDocument; +import org.apache.pdfbox.rendering.PDFRenderer; +import javax.imageio.ImageIO; import java.awt.*; -import java.io.IOException; -import java.io.OutputStream; +import java.awt.image.BufferedImage; +import java.io.*; /** * 使用 OpenPDF 封装的 pdf 工具类 @@ -120,7 +123,42 @@ public class PDFUtils { throw new RuntimeException(ex); } } + } + /** + * PDF 转图片 + * @param inputStream pdf 输入流 + * @param dpi + */ + public static ByteArrayOutputStream pdf2Img(InputStream inputStream, float dpi) { + PDDocument document = null; + ByteArrayOutputStream outputStream = null; + try { + // 加载pdf文档 + FileInputStream fileInputStream = new FileInputStream("passLetter.pdf"); + document = PDDocument.load(fileInputStream); + // PDF文档渲染对象 + PDFRenderer renderer = new PDFRenderer(document); + int pageCount = document.getNumberOfPages(); + for (int i = 0; i < pageCount; i++) { + /* + * renderImage(i,1.9f) + * i: 指定页对象下标,从0开始,0即第一页 + * 1.9f:DPI值(Dots Per Inch),官方描述比例因子,其中 1 = 72 DPI + */ + BufferedImage image = renderer.renderImage(i, dpi); + outputStream = new ByteArrayOutputStream(); + FileOutputStream fileOutputStream = new FileOutputStream("pdf2img.png"); + ImageIO.write(image, "PNG", outputStream); + byte[] byteArray = outputStream.toByteArray(); + fileOutputStream.write(byteArray); + fileOutputStream.close(); + return outputStream; + } + }catch (Exception e){ + e.printStackTrace(); + } + return outputStream; } } diff --git a/coolstore-partner-common/src/main/java/com/cool/store/utils/PassLetterUtils.java b/coolstore-partner-common/src/main/java/com/cool/store/utils/PassLetterUtils.java index a94e5ee53..a78b41bf6 100644 --- a/coolstore-partner-common/src/main/java/com/cool/store/utils/PassLetterUtils.java +++ b/coolstore-partner-common/src/main/java/com/cool/store/utils/PassLetterUtils.java @@ -6,6 +6,7 @@ import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.RandomUtil; import com.lowagie.text.Document; import com.lowagie.text.Image; +import com.lowagie.text.pdf.BaseFont; import com.lowagie.text.pdf.PdfReader; import com.lowagie.text.pdf.PdfWriter; @@ -49,7 +50,8 @@ public class PassLetterUtils { return outputStream; } catch (IOException e) { throw new RuntimeException(e); - } finally { + } + finally { try { document.close(); outputStream.close(); @@ -73,8 +75,10 @@ public class PassLetterUtils { try { ByteArrayInputStream inputStream = new ByteArrayInputStream(outputStream.toByteArray()); PdfReader pdfReader = new PdfReader(inputStream); - PDFUtils.putParagraphAbsolutely(pdfReader, outputStream, x, y, content, 20, new Color(255, 82,25)); - } catch (IOException e) { + String fontFamillyPath = PassLetterUtils.class.getResource("/static/simsun.ttc").getPath(); + BaseFont font = BaseFont.createFont(fontFamillyPath + ",0", BaseFont.IDENTITY_H, BaseFont.NOT_EMBEDDED); + PDFUtils.putParagraphAbsolutely(pdfReader, outputStream, x, y, content, font, 20, 1, new Color(255, 82,25)); + } catch (Exception e) { throw new RuntimeException(e); } } diff --git a/coolstore-partner-dao/src/main/java/com/cool/store/mapper/HyPartnerInterviewMapper.java b/coolstore-partner-dao/src/main/java/com/cool/store/mapper/HyPartnerInterviewMapper.java index b26ecc51e..f6f345a13 100644 --- a/coolstore-partner-dao/src/main/java/com/cool/store/mapper/HyPartnerInterviewMapper.java +++ b/coolstore-partner-dao/src/main/java/com/cool/store/mapper/HyPartnerInterviewMapper.java @@ -37,13 +37,13 @@ public interface HyPartnerInterviewMapper { * 修改面试状态 * 预约状态 0 待预约;1待面试;2已开始;3待审核;4审批中;5审批通过;6拒绝 */ - int updateInterviewStatus(@Param("interviewId") String interviewId, @Param("status") Integer status); + int updateInterviewStatus(@Param("interviewPlanId") String interviewPlanId, @Param("status") Integer status); /** * 修改面试实际开始时间 * @param dateTime "yyyy-MM-dd HH:mm:ss" */ - int updateActualStartTime(@Param("interviewId") String interviewId, @Param("dateTime") String dateTime); + int updateActualStartTime(@Param("interviewPlanId") String interviewPlanId, @Param("dateTime") String dateTime); /** * 修改加盟商或面试官进入面试时间 @@ -51,27 +51,27 @@ public interface HyPartnerInterviewMapper { * @param dateTime "yyyy-MM-dd HH:mm:ss" * @return */ - int updateEnterTime(@Param("interviewId") String interviewId, @Param("userType") Integer userType, @Param("dateTime") String dateTime); + int updateEnterTime(@Param("interviewPlanId") String interviewPlanId, @Param("userType") Integer userType, @Param("dateTime") String dateTime); /** * 将加盟商是否参会修改为参会 * 0未参加,1参加 */ - int updateWhetherPartnerEnter(@Param("interviewId") String interviewId); + int updateWhetherPartnerEnter(@Param("interviewPlanId") String interviewPlanId); /** * 根据会议 id 查询面试官 id */ - EnterInterviewVO getInterviewerByInterviewId(@Param("interviewId") String interviewId); + EnterInterviewVO getInterviewerByInterviewPlanId(@Param("interviewPlanId") String interviewPlanId); /** * 获取通知函详情 */ - PartnerPassLetterDetailVO getPassLetterDetail(@Param("interviewId") String interviewId); + PartnerPassLetterDetailVO getPassLetterDetail(@Param("interviewPlanId") String interviewPlanId); /** * 生成通过函 pdf 后修改 */ - int updatePassLetterInfo(@Param("passCode") String passCode, @Param("passFileUrl") String passFileUrl, @Param("expiryDate") String expiryDate, @Param("interviewId") String interviewId); + int updatePassLetterInfo(@Param("passCode") String passCode, @Param("passPdfUrl") String passPdfUrl, @Param("passImageUrl") String passImageUrl, @Param("expiryDate") String expiryDate, @Param("interviewId") String interviewId); } \ No newline at end of file diff --git a/coolstore-partner-dao/src/main/resources/mapper/HyPartnerInterviewMapper.xml b/coolstore-partner-dao/src/main/resources/mapper/HyPartnerInterviewMapper.xml index 2eee85c8c..09982b133 100644 --- a/coolstore-partner-dao/src/main/resources/mapper/HyPartnerInterviewMapper.xml +++ b/coolstore-partner-dao/src/main/resources/mapper/HyPartnerInterviewMapper.xml @@ -27,7 +27,7 @@ - + @@ -255,7 +255,7 @@ +