From c93ad66797e4830ccf4de81c1e8787ab90b22791 Mon Sep 17 00:00:00 2001
From: feiyu02 <risaku@163.com>
Date: 星期一, 04 七月 2022 16:07:28 +0800
Subject: [PATCH] 1. 承诺书pdf生产模块
---
src/main/resources/templates/commitment-construction.docx | 0
src/main/resources/templates/pdfDemo5.docx | 0
src/main/resources/templates/pdfDemo.ftl | 280 ++++++++++++++++++
src/main/kotlin/cn/flightfeather/supervision/common/pdf/GeneratePdfUtil.kt | 107 +++++++
src/main/kotlin/cn/flightfeather/supervision/lightshare/service/CommitmentService.kt | 2
src/main/kotlin/cn/flightfeather/supervision/lightshare/service/Impl/CommitmentServiceImpl.kt | 13
src/main/resources/templates/temporary.html | 280 ++++++++++++++++++
src/test/kotlin/cn/flightfeather/supervision/lightshare/service/Impl/CommitmentServiceImplTest.kt | 40 ++
src/main/kotlin/cn/flightfeather/supervision/lightshare/web/CommitmentController.kt | 7
pom.xml | 47 ++
src/main/kotlin/cn/flightfeather/supervision/common/pdf/DynamicParam.kt | 21 +
src/main/kotlin/cn/flightfeather/supervision/common/pdf/PdfUtil.kt | 82 +++++
src/main/resources/application.yml | 12
13 files changed, 873 insertions(+), 18 deletions(-)
diff --git a/pom.xml b/pom.xml
index ab5d11b..cfa143f 100644
--- a/pom.xml
+++ b/pom.xml
@@ -28,6 +28,7 @@
<!-- tk.mybatis -->
<mapper.plugin>tk.mybatis.mapper.generator.MapperPlugin</mapper.plugin>
<mapper.Mapper>tk.mybatis.mapper.common.Mapper</mapper.Mapper>
+ <itext.version>7.2.2</itext.version>
</properties>
<dependencies>
@@ -267,6 +268,19 @@
<artifactId>poi</artifactId>
<version>4.1.2</version>
</dependency>
+ <!-- https://mvnrepository.com/artifact/org.apache.poi/poi-ooxml -->
+ <dependency>
+ <groupId>org.apache.poi</groupId>
+ <artifactId>poi-ooxml</artifactId>
+ <version>4.1.2</version>
+ </dependency>
+ <!-- https://mvnrepository.com/artifact/org.apache.poi/poi-excelant -->
+<!-- <dependency>-->
+<!-- <groupId>org.apache.poi</groupId>-->
+<!-- <artifactId>poi-excelant</artifactId>-->
+<!-- <version>5.2.2</version>-->
+<!-- </dependency>-->
+
<!--闃块噷浜戞帹閫�-->
<dependency>
@@ -297,27 +311,31 @@
<!-- pdf:start -->
+ <!-- https://mvnrepository.com/artifact/com.itextpdf/itext7-core -->
<dependency>
<groupId>com.itextpdf</groupId>
- <artifactId>itextpdf</artifactId>
- <version>5.5.13.3</version>
+ <artifactId>itext7-core</artifactId>
+ <version>${itext.version}</version>
+ <type>pom</type>
</dependency>
- <dependency>
- <groupId>com.itextpdf.tool</groupId>
- <artifactId>xmlworker</artifactId>
- <version>5.5.13.3</version>
- </dependency>
- <!-- 鏀寔涓枃 -->
+ <!-- https://mvnrepository.com/artifact/com.itextpdf/html2pdf -->
<dependency>
<groupId>com.itextpdf</groupId>
- <artifactId>itext-asian</artifactId>
- <version>5.2.0</version>
+ <artifactId>html2pdf</artifactId>
+ <version>4.0.2</version>
+ </dependency>
+ <!-- https://mvnrepository.com/artifact/com.itextpdf/font-asian -->
+ <dependency>
+ <groupId>com.itextpdf</groupId>
+ <artifactId>font-asian</artifactId>
+ <version>${itext.version}</version>
+ <scope>test</scope>
</dependency>
<!-- 鏀寔css鏍峰紡娓叉煋 -->
<dependency>
<groupId>org.xhtmlrenderer</groupId>
<artifactId>flying-saucer-pdf-itext5</artifactId>
- <version>9.1.22</version>
+ <version>9.1.16</version>
</dependency>
<!-- 杞崲html涓烘爣鍑唜html鍖� -->
<dependency>
@@ -325,7 +343,12 @@
<artifactId>jtidy</artifactId>
<version>r938</version>
</dependency>
- <!-- pdf:end -->
+ <!-- https://mvnrepository.com/artifact/org.freemarker/freemarker -->
+ <dependency>
+ <groupId>org.freemarker</groupId>
+ <artifactId>freemarker</artifactId>
+ <version>2.3.31</version>
+ </dependency>
</dependencies>
diff --git a/src/main/kotlin/cn/flightfeather/supervision/common/pdf/DynamicParam.kt b/src/main/kotlin/cn/flightfeather/supervision/common/pdf/DynamicParam.kt
new file mode 100644
index 0000000..bf7ca2d
--- /dev/null
+++ b/src/main/kotlin/cn/flightfeather/supervision/common/pdf/DynamicParam.kt
@@ -0,0 +1,21 @@
+package cn.flightfeather.supervision.common.pdf
+
+import java.io.File
+
+/**
+ * @Description: 鐢熸垚PDF鍙傛暟
+ * @author lgd
+ * @date 2022骞�4鏈�27鏃� 涓嬪崍6:04:56
+ */
+data class DynamicParam(
+ // 妯$増璺緞
+ val templatePath: String,
+ // 妯℃澘鏂囦欢鍚�(.ftl缁撳熬)
+ val templateName: String,
+ // 鐢熸垚璺緞
+ val outPath: String,
+ // 鐢熸垚鏂囦欢鍚�(.pdf缁撳熬)
+ val outName: String,
+ // 鎵�闇�鏂囨湰鍙傛暟
+ val param: Map<String, Any>
+)
\ No newline at end of file
diff --git a/src/main/kotlin/cn/flightfeather/supervision/common/pdf/GeneratePdfUtil.kt b/src/main/kotlin/cn/flightfeather/supervision/common/pdf/GeneratePdfUtil.kt
new file mode 100644
index 0000000..4f3e65e
--- /dev/null
+++ b/src/main/kotlin/cn/flightfeather/supervision/common/pdf/GeneratePdfUtil.kt
@@ -0,0 +1,107 @@
+package cn.flightfeather.supervision.common.pdf
+
+import com.itextpdf.html2pdf.ConverterProperties
+import com.itextpdf.html2pdf.HtmlConverter
+import com.itextpdf.layout.font.FontProvider
+import com.itextpdf.text.pdf.BaseFont
+import freemarker.template.Configuration
+import org.xhtmlrenderer.pdf.ITextRenderer
+import java.io.*
+import javax.servlet.http.HttpServletResponse
+
+/**
+ * @Description: 鐢熸垚PDF鍚堝悓宸ュ叿绫�
+ */
+object GeneratePdfUtil {
+ private const val TEMPORARY_CONTRACT_HTML = "src/main/resources/templates/temporary.html"
+
+ private const val SIMSUM_FILE = "src/main/resources/font/simsun.ttc"
+ @Throws(Exception::class)
+ fun generateContract(param: DynamicParam): String {
+ // 鐢熸垚html鍚堝悓
+ generateHTML(param.templatePath, param.templateName, param.param)
+ // 鏍规嵁html鍚堝悓鐢熸垚pdf鍚堝悓
+ generatePDF(param.outPath + param.outName)
+ // 鍒犻櫎涓存椂html鏍煎紡鍚堝悓
+// removeFile(TEMPORARY_CONTRACT_HTML)
+ return param.outPath + param.outName
+ }
+
+ /**
+ * @Description 鐢熸垚html鏍煎紡鍚堝悓
+ */
+ @Throws(Exception::class)
+ private fun generateHTML(templatePath: String, templateName: String, paramMap: Map<String, Any>) {
+ val cfg = Configuration()
+ cfg.defaultEncoding = "UTF-8"
+ /**
+ * 1.setClassForTemplateLoading(this.getClass(), "/HttpWeb");
+ * 鍩轰簬绫昏矾寰勶紝HttpWeb鍖呬笅鐨刦ramemaker.ftl鏂囦欢
+ * 2.setDirectoryForTemplateLoading(new File("/template"));
+ * 鍩轰簬鏂囦欢绯荤粺,template鐩綍涓嬬殑鏂囦欢
+ * 3.setServletContextForTemplateLoading(request.getSession().getServletContext(), "/template");
+ * 鍩轰簬Servlet Context锛屾寚鐨勬槸鍩轰簬WebRoot涓嬬殑template涓嬬殑framemaker.ftl鏂囦欢
+ */
+ cfg.setDirectoryForTemplateLoading(File(templatePath))
+
+ // templateName.ftl涓鸿瑁呰浇鐨勬ā鏉�
+ val template = cfg.getTemplate(templateName)
+ val outHtmFile = File(TEMPORARY_CONTRACT_HTML)
+ val out: Writer = BufferedWriter(OutputStreamWriter(FileOutputStream(outHtmFile)))
+ // 灏嗗弬鏁拌緭鍑哄埌妯$増锛屽苟鎿嶄綔鍒癏TML涓�
+ template.process(paramMap, out)
+ out.close()
+ }
+
+ /**
+ * @Description 鏍规嵁html鐢熸垚pdf鏍煎紡鍚堝悓
+ */
+ @Throws(Exception::class)
+ private fun generatePDF(pdfUrl: String) {
+ val htmFile = File(TEMPORARY_CONTRACT_HTML)
+ val pdfFile = File(pdfUrl)
+ println(pdfUrl)
+// val url = htmFile.toURI()
+// val os: OutputStream = FileOutputStream(pdfFile)
+// val renderer = ITextRenderer()
+// renderer.setDocument(url)
+// val fontResolver = renderer.fontResolver
+// // 瑙e喅涓枃鏀寔闂
+// fontResolver.addFont(SIMSUM_FILE, BaseFont.IDENTITY_H, BaseFont.NOT_EMBEDDED)
+// renderer.layout()
+// renderer.createPDF(os)
+// os.close()
+ val p = ConverterProperties()
+ p.fontProvider = FontProvider().apply {
+// this.addFont(SIMSUM_FILE)
+ this.addDirectory("src/main/resources/font/")
+ }
+ HtmlConverter.convertToPdf(htmFile, pdfFile, p)
+ }
+
+ /**
+ * @Description 绉婚櫎鏂囦欢
+ */
+ private fun removeFile(fileUrl: String) {
+ val file = File(fileUrl)
+ file.delete()
+ }
+
+ @Throws(Exception::class)
+ fun returnPdfStream(response: HttpServletResponse, pathName: String?) {
+ response.contentType = "application/pdf"
+ val file = File(pathName)
+ if (file.exists()) {
+ val `in` = FileInputStream(file)
+ val out: OutputStream = response.outputStream
+ val b = ByteArray(1024 * 5)
+ var n: Int
+ while (`in`.read(b).also { n = it } != -1) {
+ out.write(b, 0, n)
+ }
+ out.flush()
+ `in`.close()
+ out.close()
+ }
+ }
+}
\ No newline at end of file
diff --git a/src/main/kotlin/cn/flightfeather/supervision/common/pdf/PdfUtil.kt b/src/main/kotlin/cn/flightfeather/supervision/common/pdf/PdfUtil.kt
new file mode 100644
index 0000000..f85361f
--- /dev/null
+++ b/src/main/kotlin/cn/flightfeather/supervision/common/pdf/PdfUtil.kt
@@ -0,0 +1,82 @@
+package cn.flightfeather.supervision.common.pdf
+
+import org.apache.poi.util.Units
+import org.apache.poi.xwpf.usermodel.XWPFDocument
+import org.apache.poi.xwpf.usermodel.XWPFParagraph
+import java.io.File
+import java.io.FileInputStream
+import java.io.FileOutputStream
+import java.io.IOException
+
+
+object PdfUtil {
+
+ fun generateContract(dynamicParam: DynamicParam): String {
+ val src = dynamicParam.templatePath+dynamicParam.templateName
+ val out = dynamicParam.outPath + dynamicParam.outName
+
+ val inputStream = FileInputStream(File(src))
+ val xwpfDocument = XWPFDocument(inputStream)
+
+ replace(xwpfDocument, dynamicParam.param)
+
+ output(xwpfDocument, out)
+
+ return out
+ }
+
+ /**
+ * 鏇挎崲娈佃惤涓寚瀹氱殑鏂囨湰
+ */
+ fun replace(doc:XWPFDocument, params:Map<String, Any>) {
+ try {
+ setContent(doc.paragraphs, params)
+
+ for (tab in doc.tables) {
+ for (row in tab.rows) {
+ for (cell in row.tableCells) {
+ //娉ㄦ剰锛実etParagraphs涓�瀹氫笉鑳芥紡鎺�
+ //鍥犱负涓�涓〃鏍奸噷闈㈠彲鑳戒細鏈夊涓渶瑕佹浛鎹㈢殑鏂囧瓧
+ //濡傛灉娌℃湁杩欎釜姝ラ閭d箞鏂囧瓧浼氭浛鎹笉浜�
+ setContent(cell.paragraphs, params)
+ }
+ }
+ }
+ } catch (e: IOException) {
+ e.printStackTrace()
+ }
+ }
+
+ private fun setContent(paragraphs: List<XWPFParagraph>, params: Map<String, Any>) {
+ for (p in paragraphs) {
+ for (r in p.runs) {
+ //闇�瑕佹浛鎹㈢殑鏂囨湰
+ val text = r.getText(0)
+ //鏇挎崲鎸囧畾鐨勬枃鏈�
+ for (key in params.keys) {
+ if (text != null && text == key) {
+ //鏇挎崲鐨勬椂鍊欒娉ㄦ剰锛宻etText鏄湁涓や釜鍙傛暟鐨�
+ //绗竴涓槸鏇挎崲鐨勬枃鏈紝绗簩涓槸浠庡摢閲屽紑濮嬫浛鎹�
+ //0鏄浛鎹㈠叏閮紝濡傛灉涓嶈缃偅涔堥粯璁ゅ氨鏄粠鍘熸枃瀛�
+ //缁撳熬寮�濮嬭拷鍔�
+ val v = params[key]
+ when (v) {
+ is String -> r.setText(v, 0)
+ is File -> {
+ val input = FileInputStream(v)
+ val pic = r.addPicture(input, XWPFDocument.PICTURE_TYPE_JPEG, v.name, Units.toEMU(40.0), Units.toEMU(40.0))
+
+ input.close()
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+
+ fun output(doc: XWPFDocument, outSrc: String) {
+ doc.write(FileOutputStream(outSrc))
+ doc.close()
+ }
+}
\ No newline at end of file
diff --git a/src/main/kotlin/cn/flightfeather/supervision/lightshare/service/CommitmentService.kt b/src/main/kotlin/cn/flightfeather/supervision/lightshare/service/CommitmentService.kt
index 5f96bcc..5f887fa 100644
--- a/src/main/kotlin/cn/flightfeather/supervision/lightshare/service/CommitmentService.kt
+++ b/src/main/kotlin/cn/flightfeather/supervision/lightshare/service/CommitmentService.kt
@@ -9,4 +9,6 @@
fun getLetterOfCommitment(userId: String, page: Int, perPage: Int, response: HttpServletResponse): List<Commitment>
fun uploadLetterOfCommitment(userId: String, commitmentVoList: String, files: Array<MultipartFile>): Boolean
+
+ fun createLetterOfCommitment(userId: String, params: MutableMap<String, Any>): String
}
\ No newline at end of file
diff --git a/src/main/kotlin/cn/flightfeather/supervision/lightshare/service/Impl/CommitmentServiceImpl.kt b/src/main/kotlin/cn/flightfeather/supervision/lightshare/service/Impl/CommitmentServiceImpl.kt
index 85e8d33..795468e 100644
--- a/src/main/kotlin/cn/flightfeather/supervision/lightshare/service/Impl/CommitmentServiceImpl.kt
+++ b/src/main/kotlin/cn/flightfeather/supervision/lightshare/service/Impl/CommitmentServiceImpl.kt
@@ -1,5 +1,8 @@
package cn.flightfeather.supervision.lightshare.service.Impl
+import cn.flightfeather.supervision.common.pdf.DynamicParam
+import cn.flightfeather.supervision.common.pdf.GeneratePdfUtil
+import cn.flightfeather.supervision.common.pdf.PdfUtil
import cn.flightfeather.supervision.domain.entity.Commitment
import cn.flightfeather.supervision.domain.mapper.CommitmentMapper
import cn.flightfeather.supervision.infrastructure.utils.DateUtil
@@ -76,4 +79,14 @@
return commitmentVos.size == success
}
+
+ override fun createLetterOfCommitment(userId: String, params: MutableMap<String, Any>): String {
+ val templatePath = (Thread.currentThread().contextClassLoader?.getResource("/")?.path ?: "src/main") + "/resources/templates/"
+ val templateName = "pdfDemo.ftl"
+ val contractPath = (Thread.currentThread().contextClassLoader?.getResource("/")?.path ?: "src/main") + "/resources/templates/"
+ val contractName = "pdfDemo5.pdf"
+ val param = DynamicParam(templatePath, templateName, contractPath, contractName, params)
+ GeneratePdfUtil.generateContract(param)
+ return ""
+ }
}
\ No newline at end of file
diff --git a/src/main/kotlin/cn/flightfeather/supervision/lightshare/web/CommitmentController.kt b/src/main/kotlin/cn/flightfeather/supervision/lightshare/web/CommitmentController.kt
index 17184e8..d9c7558 100644
--- a/src/main/kotlin/cn/flightfeather/supervision/lightshare/web/CommitmentController.kt
+++ b/src/main/kotlin/cn/flightfeather/supervision/lightshare/web/CommitmentController.kt
@@ -34,4 +34,11 @@
@ApiParam(value = "鎵胯涔︿俊鎭痡son") @RequestParam("params") commitmentVoList: String,
@ApiParam(value = "鎵胯涔﹀浘鐗�") @RequestPart("images") files: Array<MultipartFile>
) = commitmentService.uploadLetterOfCommitment(userId, commitmentVoList, files)
+
+ @ApiOperation(value = "鐢熶骇鎵胯涔�")
+ @PostMapping("/letter/create")
+ fun createLetterOfCommitment(
+ @ApiParam(value = "鐢ㄦ埛id") @RequestParam userId: String,
+ @ApiParam(value = "鎵胯涔﹀弬鏁�") @RequestBody params: MutableMap<String, Any>
+ ) = commitmentService.createLetterOfCommitment(userId, params)
}
\ No newline at end of file
diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml
index bcaccfa..af25bea 100644
--- a/src/main/resources/application.yml
+++ b/src/main/resources/application.yml
@@ -12,14 +12,14 @@
# password: 123456
#-TestEnd-
- url: jdbc:mysql://localhost:3306/ledger?serverTimezone=Asia/Shanghai&prepStmtCacheSize=517&cachePrepStmts=true&autoReconnect=true&characterEncoding=utf-8&allowMultiQueries=true&useSSL=false
- username: ledger
- password: ledger_fxxchackxr
+# url: jdbc:mysql://localhost:3306/ledger?serverTimezone=Asia/Shanghai&prepStmtCacheSize=517&cachePrepStmts=true&autoReconnect=true&characterEncoding=utf-8&allowMultiQueries=true&useSSL=false
+# username: ledger
+# password: ledger_fxxchackxr
# 寮�鍙戣繙绋嬫湇鍔″櫒
-# url: jdbc:mysql://47.100.191.150:3306/ledger?serverTimezone=Asia/Shanghai&prepStmtCacheSize=517&cachePrepStmts=true&autoReconnect=true&characterEncoding=utf-8&allowMultiQueries=true&useSSL=false
-# username: remoteU1
-# password: eSoF8DnzfGTlhAjE
+ url: jdbc:mysql://47.100.191.150:3306/ledger?serverTimezone=Asia/Shanghai&prepStmtCacheSize=517&cachePrepStmts=true&autoReconnect=true&characterEncoding=utf-8&allowMultiQueries=true&useSSL=false
+ username: remoteU1
+ password: eSoF8DnzfGTlhAjE
initialSize: 5
minIdle: 5
diff --git a/src/main/resources/templates/commitment-construction.docx b/src/main/resources/templates/commitment-construction.docx
new file mode 100644
index 0000000..1124045
--- /dev/null
+++ b/src/main/resources/templates/commitment-construction.docx
Binary files differ
diff --git a/src/main/resources/templates/pdfDemo.ftl b/src/main/resources/templates/pdfDemo.ftl
new file mode 100644
index 0000000..1174eba
--- /dev/null
+++ b/src/main/resources/templates/pdfDemo.ftl
@@ -0,0 +1,280 @@
+锘�<html>
+
+<head>
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+ <meta http-equiv="Content-Style-Type" content="text/css" />
+ <meta name="generator" content="Aspose.Words for .NET 15.1.0.0" />
+ <title></title>
+</head>
+
+<body>
+ <div>
+ <p style="font-size:18pt; line-height:115%; margin:0pt 0pt 10pt; orphans:0; text-align:center; widows:0">
+ <!-- <span style=" font-size:18pt; font-weight:bold">涓婃捣甯�</span>
+ <span style=" font-size:18pt; font-weight:bold">寰愭眹鍖�</span> -->
+ <span style=" font-size:18pt; font-weight:bold">寤鸿宸ュ湴</span>
+ <span style=" font-size:18pt; font-weight:bold">鐜淇$敤鎵胯涔�</span>
+ </p>
+ <div style="text-align:center">
+ <table cellspacing="0" cellpadding="0" style="border-collapse:collapse; margin:0 auto; width:501.7pt">
+ <tr style="height:24.6pt">
+ <td colspan="2"
+ style="border-bottom-color:#000000; border-bottom-style:solid; border-bottom-width:0.75pt; border-left-color:#000000; border-left-style:solid; border-left-width:0.75pt; border-right-color:#000000; border-right-style:solid; border-right-width:0.75pt; border-top-color:#000000; border-top-style:solid; border-top-width:0.75pt; padding-left:5.03pt; padding-right:5.03pt; vertical-align:middle; width:106.85pt">
+ <p
+ style="font-size:12pt; line-height:115%; margin:0pt 0pt 10pt; orphans:0; text-align:center; widows:0">
+ <span style=" font-size:12pt">鏂藉伐</span><span
+ style=" font-size:12pt">鍗曚綅鍚嶇О</span>
+ </p>
+ </td>
+ <td colspan="3"
+ style="border-bottom-color:#000000; border-bottom-style:solid; border-bottom-width:0.75pt; border-right-color:#000000; border-right-style:solid; border-right-width:0.75pt; border-top-color:#000000; border-top-style:solid; border-top-width:0.75pt; padding-left:5.4pt; padding-right:5.03pt; vertical-align:middle; width:372.5pt">
+ <p
+ style="font-size:12pt; line-height:115%; margin:0pt 0pt 10pt; orphans:0; text-align:center; widows:0">
+ <span style=" font-size:12pt">${Department}</span>
+ </p>
+ </td>
+ </tr>
+ <tr style="height:25.75pt">
+ <td colspan="2"
+ style="border-bottom-color:#000000; border-bottom-style:solid; border-bottom-width:0.75pt; border-left-color:#000000; border-left-style:solid; border-left-width:0.75pt; border-right-color:#000000; border-right-style:solid; border-right-width:0.75pt; border-top-color:#000000; border-top-style:solid; border-top-width:0.75pt; padding-left:5.03pt; padding-right:5.03pt; vertical-align:middle; width:106.85pt">
+ <p
+ style="font-size:12pt; line-height:115%; margin:0pt 0pt 10pt; orphans:0; text-align:center; widows:0">
+ <span style=" font-size:12pt">缁熶竴绀句細淇$敤浠g爜</span>
+ </p>
+ </td>
+ <td
+ style="border-bottom-color:#000000; border-bottom-style:solid; border-bottom-width:0.75pt; border-right-color:#000000; border-right-style:solid; border-right-width:0.75pt; border-top-color:#000000; border-top-style:solid; border-top-width:0.75pt; padding-left:5.4pt; padding-right:5.03pt; vertical-align:middle; width:133.55pt">
+ <p
+ style="font-size:12pt; line-height:115%; margin:0pt 0pt 10pt; orphans:0; text-align:center; widows:0">
+ <span style=" font-size:12pt">${SocialCode}</span>
+ </p>
+ </td>
+ <td
+ style="border-bottom-color:#000000; border-bottom-style:solid; border-bottom-width:0.75pt; border-right-color:#000000; border-right-style:solid; border-right-width:0.75pt; border-top-color:#000000; border-top-style:solid; border-top-width:0.75pt; padding-left:5.4pt; padding-right:5.03pt; vertical-align:middle; width:97.8pt">
+ <p
+ style="font-size:12pt; line-height:115%; margin:0pt 0pt 10pt; orphans:0; text-align:center; widows:0">
+ <span style=" font-size:12pt">宸ュ湴</span><span
+ style=" font-size:12pt">鎶ュ缓鍙�</span>
+ </p>
+ </td>
+ <td
+ style="border-bottom-color:#000000; border-bottom-style:solid; border-bottom-width:0.75pt; border-right-color:#000000; border-right-style:solid; border-right-width:0.75pt; border-top-color:#000000; border-top-style:solid; border-top-width:0.75pt; padding-left:5.4pt; padding-right:5.03pt; vertical-align:middle; width:119.55pt">
+ <p
+ style="font-size:12pt; line-height:115%; margin:0pt 0pt 10pt; orphans:0; text-align:center; widows:0">
+ <span style=" font-size:12pt">${ConstructionNo}</span>
+ </p>
+ </td>
+ </tr>
+ <tr style="height:24.95pt">
+ <td colspan="2"
+ style="border-bottom-color:#000000; border-bottom-style:solid; border-bottom-width:0.75pt; border-left-color:#000000; border-left-style:solid; border-left-width:0.75pt; border-right-color:#000000; border-right-style:solid; border-right-width:0.75pt; border-top-color:#000000; border-top-style:solid; border-top-width:0.75pt; padding-left:5.03pt; padding-right:5.03pt; vertical-align:middle; width:106.85pt">
+ <p
+ style="font-size:12pt; line-height:115%; margin:0pt 0pt 10pt; orphans:0; text-align:center; widows:0">
+ <span style=" font-size:12pt">娉曚汉</span><span
+ style=" font-size:12pt">浠h〃</span><span
+ style=" font-size:12pt">濮撳悕</span>
+ </p>
+ </td>
+ <td
+ style="border-bottom-color:#000000; border-bottom-style:solid; border-bottom-width:0.75pt; border-right-color:#000000; border-right-style:solid; border-right-width:0.75pt; border-top-color:#000000; border-top-style:solid; border-top-width:0.75pt; padding-left:5.4pt; padding-right:5.03pt; vertical-align:middle; width:133.55pt">
+ <p
+ style="font-size:12pt; line-height:115%; margin:0pt 0pt 10pt; orphans:0; text-align:center; widows:0">
+ <span style=" font-size:12pt">${JuridicalPerson}</span>
+ </p>
+ </td>
+ <td
+ style="border-bottom-color:#000000; border-bottom-style:solid; border-bottom-width:0.75pt; border-right-color:#000000; border-right-style:solid; border-right-width:0.75pt; border-top-color:#000000; border-top-style:solid; border-top-width:0.75pt; padding-left:5.4pt; padding-right:5.03pt; vertical-align:middle; width:97.8pt">
+ <p
+ style="font-size:12pt; line-height:115%; margin:0pt 0pt 10pt; orphans:0; text-align:center; widows:0">
+ <span style=" font-size:12pt">娉曚汉</span><span
+ style=" font-size:12pt">浠h〃</span><span
+ style=" font-size:12pt">韬唤璇佸彿</span>
+ </p>
+ </td>
+ <td
+ style="border-bottom-color:#000000; border-bottom-style:solid; border-bottom-width:0.75pt; border-right-color:#000000; border-right-style:solid; border-right-width:0.75pt; border-top-color:#000000; border-top-style:solid; border-top-width:0.75pt; padding-left:5.4pt; padding-right:5.03pt; vertical-align:middle; width:119.55pt">
+ <p
+ style="font-size:12pt; line-height:115%; margin:0pt 0pt 10pt; orphans:0; text-align:center; widows:0">
+ <span style=" font-size:12pt">${IdNo}</span>
+ </p>
+ </td>
+ </tr>
+ <tr style="height:42.7pt">
+ <td colspan="2"
+ style="border-bottom-color:#000000; border-bottom-style:solid; border-bottom-width:0.75pt; border-left-color:#000000; border-left-style:solid; border-left-width:0.75pt; border-right-color:#000000; border-right-style:solid; border-right-width:0.75pt; border-top-color:#000000; border-top-style:solid; border-top-width:0.75pt; padding-left:5.03pt; padding-right:5.03pt; vertical-align:middle; width:106.85pt">
+ <p style="line-height:20pt; margin:0pt 0pt 10pt; orphans:0; text-align:center; widows:0"><span
+ style=" font-size:12pt">鐜淇$敤鎵胯绫诲瀷</span></p>
+ </td>
+ <td colspan="3"
+ style="border-bottom-color:#000000; border-bottom-style:solid; border-bottom-width:0.75pt; border-right-color:#000000; border-right-style:solid; border-right-width:0.75pt; border-top-color:#000000; border-top-style:solid; border-top-width:0.75pt; padding-left:5.4pt; padding-right:5.03pt; vertical-align:middle; width:372.5pt">
+ <p style="line-height:20pt; margin:0pt 0pt 10pt; orphans:0; text-align:justify; widows:0"><span
+ style=" font-size:12pt">${Type1}鐜繚涓讳綋璐d换鎵胯锛�${Type2}鐜琛屾斂璁稿彲浜嬮」锛浡� </span></p>
+ <p style="line-height:20pt; margin:0pt 0pt 10pt; orphans:0; text-align:justify; widows:0"><span
+ style=" font-size:12pt">${Type3}鐜繚涓撻」璧勯噾鎴栧叾浠栬祫閲戣ˉ鍔╋紱${Type4}鍏朵粬鐜繚鐢虫姤浜嬮」</span></p>
+ </td>
+ </tr>
+ <tr style="height:88.5pt">
+ <td
+ style="border-bottom-color:#000000; border-bottom-style:solid; border-bottom-width:0.75pt; border-left-color:#000000; border-left-style:solid; border-left-width:0.75pt; border-right-color:#000000; border-right-style:solid; border-right-width:0.75pt; border-top-color:#000000; border-top-style:solid; border-top-width:0.75pt; padding-left:5.03pt; padding-right:5.03pt; vertical-align:middle; width:31.5pt">
+ <p
+ style="font-size:14pt; line-height:115%; margin:0pt 0pt 10pt; orphans:0; text-align:center; widows:0">
+ <span style=" font-size:14pt">鎵�</span>
+ </p>
+ <p
+ style="font-size:14pt; line-height:115%; margin:0pt 0pt 10pt; orphans:0; text-align:center; widows:0">
+ <span style=" font-size:14pt">璇�</span>
+ </p>
+ <p
+ style="font-size:14pt; line-height:115%; margin:0pt 0pt 10pt; orphans:0; text-align:center; widows:0">
+ <span style=" font-size:14pt">浜�</span>
+ </p>
+ <p
+ style="font-size:14pt; line-height:115%; margin:0pt 0pt 10pt; orphans:0; text-align:center; widows:0">
+ <span style=" font-size:14pt">椤�</span>
+ </p>
+ </td>
+ <td colspan="4"
+ style="border-bottom-color:#000000; border-bottom-style:solid; border-bottom-width:0.75pt; border-right-color:#000000; border-right-style:solid; border-right-width:0.75pt; border-top-color:#000000; border-top-style:solid; border-top-width:0.75pt; padding-left:5.4pt; padding-right:5.03pt; vertical-align:top; width:447.85pt">
+ <p
+ style="line-height:20pt; margin:0pt 0pt 10pt; orphans:0; text-align:justify; text-indent:21pt; widows:0">
+ <span style=" font-size:12pt">涓鸿返琛岀豢鑹插彂灞曠悊蹇碉紝鍔姏钀ラ�犺瘹瀹炲畧淇$殑绀句細鐜锛岃惤瀹�</span><span
+ style=" font-size:12pt">鏂藉伐</span><span
+ style=" font-size:12pt">鍗曚綅鐜繚璐d换锛�</span><span
+ style=" font-size:12pt">闄嶄綆鍥犵幆澧冪瓑鍥犵礌閫犳垚鐨�</span><span
+ style=" font-size:12pt">鎵皹姹℃煋</span><span
+ style=" font-size:12pt">闅愭偅鍜屽眳姘戠籂绾�</span><span
+ style=" font-size:12pt">锛�</span><span
+ style=" font-size:12pt">纭繚</span><span
+ style=" font-size:12pt">寤虹瓚涓�</span><span
+ style=" font-size:12pt">鍋ュ悍鏈夊簭鍙戝睍</span><span
+ style=" font-size:12pt">锛�</span><span
+ style=" font-size:12pt">鏈崟浣嶏紙鎴栨湰浜猴級鑷効浣滃嚭濡備笅鎵胯锛�</span>
+ </p>
+ <p
+ style="line-height:20pt; margin:0pt 0pt 10pt; orphans:0; text-align:justify; text-indent:21pt; widows:0">
+ <span
+ style=" font-size:12pt">涓�銆佷弗鏍奸伒瀹堝浗瀹躲�佸競銆佸尯鏈夊叧鐜淇濇姢娉曞緥銆佹硶瑙勩�佽绔犮�佹爣鍑嗗拰鏀跨瓥瑙勫畾锛岀Н鏋佸饱琛岀幆澧冧繚鎶ょぞ浼氳矗浠汇��</span>
+ </p>
+ <p
+ style="line-height:20pt; margin:0pt 0pt 10pt; orphans:0; text-align:justify; text-indent:21pt; widows:0">
+ <span style=" font-size:12pt">浜屻��</span><span
+ style=" font-size:12pt">浠�</span><span
+ style=" font-size:12pt">銆婁笂娴峰競鐜淇濇姢鏉′緥銆�</span><span
+ style=" font-size:12pt">銆�</span><span
+ style=" font-size:12pt">銆婁笂娴峰競澶ф皵姹℃煋闃叉不鏉′緥銆�</span><span
+ style=" font-size:12pt">銆�</span><span
+ style=" font-size:12pt">銆婁笂娴峰競寤鸿宸ョ▼鏂囨槑鏂藉伐绠$悊瑙勫畾銆�</span><span
+ style=" font-size:12pt">绛夎姹備负渚濇嵁锛岀瀛﹀埗瀹氬缓璁惧伐鍦版壃灏樻薄鏌撻槻娌绘柟妗堝苟鍏ず锛屽缓绔嬪仴鍏ㄤ紒涓氬唴閮ㄦ壃灏橀槻娌绘牳鏌ユ満鍒讹紝瀹夋帓涓撲汉璐熻矗鎵皹闃叉不浜嬪疁锛屽強鏃惰褰曘�佷繚瀛樿溅杈嗚繘鍑恒�佸啿娲椼�佹磼姘寸瓑鐜繚鍙拌处</span><span
+ style=" font-size:12pt">銆�</span>
+ </p>
+ <p
+ style="line-height:20pt; margin:0pt 0pt 10pt; orphans:0; text-align:justify; text-indent:21pt; widows:0">
+ <span style=" font-size:12pt">涓夈��</span><span
+ style=" font-size:12pt">寤鸿鏂藉伐搴旂鍚�</span><span
+ style=" font-size:12pt">銆�</span><span
+ style=" font-size:12pt">鏂囨槑鏂藉伐</span><span
+ style=" font-size:12pt">鏍囧噯銆嬶紙</span><span
+ style=" font-size:12pt">DG/TJ 08-2102-2019 )</span><span
+ style=" font-size:12pt">锛�</span><span
+ style=" font-size:12pt">绉戝閰嶇疆鎵皹闃叉不璁炬柦璁惧锛堥珮鍘嬪啿娲楄澶囥�佽嚜鍔ㄥ柗娣嬭缃�侀浘鐐溅銆佹磼姘磋溅绛夛級锛屼緷鎵樻妧闃叉帾鏂藉紑灞曠豢鑹叉柦宸ワ紝骞跺姞寮哄鍣0鎺у埗銆佸厜姹℃煋鎺у埗銆佸己鑵愯殌鎬у寲瀛﹀搧绛夊叾浠栨薄鏌撴帶鍒讹紝</span><span
+ style=" font-size:12pt">闃叉瀵瑰懆杈瑰眳姘戦�犳垚鐢熸椿鐜姹℃煋銆�</span>
+ </p>
+ <p
+ style="line-height:20pt; margin:0pt 0pt 10pt; orphans:0; text-align:justify; text-indent:21pt; widows:0">
+ <span style=" font-size:12pt">鍥涖�佷弗鏍兼墽琛�</span><span
+ style=" font-size:12pt">鎵皹娌荤悊鍏釜鐧惧垎鐧�</span><span
+ style=" font-size:12pt">瑕佹眰</span><span
+ style=" font-size:12pt">锛�</span><span
+ style=" font-size:12pt">1銆佹柦宸ュ伐鍦板懆杈�100%鍥存尅</span><span
+ style=" font-size:12pt">锛�</span><span
+ style=" font-size:12pt">2銆佸嚭鍏ヨ溅杈�100%鍐叉礂</span><span
+ style=" font-size:12pt">锛�</span><span
+ style=" font-size:12pt">3銆佹媶杩佸伐鍦�100%婀挎硶浣滀笟</span><span
+ style=" font-size:12pt">锛�</span><span
+ style=" font-size:12pt">4銆佹福鍦熻溅杈�100%瀵嗛棴杩愯緭</span><span
+ style=" font-size:12pt">锛�</span><span
+ style=" font-size:12pt">5銆佹柦宸ョ幇鍦哄湴闈�100%纭寲</span><span
+ style=" font-size:12pt">锛�</span><span
+ style=" font-size:12pt">6銆佺墿鏂欏爢鏀�100%瑕嗙洊</span><span
+ style=" font-size:12pt">銆�</span>
+ </p>
+ <p
+ style="line-height:20pt; margin:0pt 0pt 10pt; orphans:0; text-align:justify; text-indent:21pt; widows:0">
+ <span style=" font-size:12pt">浜�</span><span
+ style=" font-size:12pt">銆�</span><span
+ style=" font-size:12pt">閬靛畧鍏充簬鍗板彂銆婁笂娴峰競鎴垮眿寤虹瓚宸ュ湴鎵皹姹℃煋闃叉不宸ヤ綔鏂规銆嬬殑閫氱煡 锛堟勃寤鸿川瀹夎仈銆�2019銆�208 鍙�
+ 锛夌浉鍏宠瀹氾紝</span><span style=" font-size:12pt">瀹夎甯備綇鎴垮煄涔″缓璁剧鐞嗗鍜屽競鐢熸�佺幆澧冨眬瀹樻柟</span>
+ </p>
+ <p style="line-height:20pt; margin:0pt 0pt 10pt; orphans:0; text-align:justify; widows:0"><span
+ style=" font-size:12pt">缃戠珯鍏ず鍏憡鏍忎腑</span><span
+ style=" font-size:12pt">鏈�鏂�</span><span
+ style=" font-size:12pt">鍏竷鐨�</span><span
+ style=" font-size:12pt">鍚堟牸渚涘簲鍟嗘彁渚涚殑鎵皹鍦ㄧ嚎鐩戞祴璁惧锛岄』绗﹀悎</span><span
+ style=" font-size:12pt">銆�</span><span
+ style=" font-size:12pt">涓婃捣甯傚缓绛戞柦宸�</span><span
+ style=" font-size:12pt">棰楃矑鐗�</span><span
+ style=" font-size:12pt">涓庡櫔澹�</span><span
+ style=" font-size:12pt">鍦ㄧ嚎鐩戞祴鎶�鏈鑼冦��</span><span
+ style=" font-size:12pt">锛�</span><span
+ style=" font-size:12pt">濮旀墭瑙勮寖鏈嶅姟鍗曚綅瀹氭湡杩愮淮锛屽強鏃惰褰曠浉鍏冲彴璐︼紝纭繚鍏舵甯镐娇鐢�</span><span
+ style=" font-size:12pt">锛�</span><span
+ style=" font-size:12pt">璁惧鎷嗛櫎銆佺Щ鍔ㄦ垨鍋滆繍椤绘彁鍓嶅悜涓荤閮ㄩ棬鐢宠鎴栧妗堛��</span></p>
+ <p
+ style="line-height:20pt; margin:0pt 0pt 10pt; orphans:0; text-align:justify; text-indent:21pt; widows:0">
+ <span style=" font-size:12pt">鍏�佹壃灏樺湪绾跨洃娴嬭澶囧畨瑁呭悗椤荤‘淇濈ǔ瀹氳繍琛岋紝骞�</span><span
+ style=" font-size:12pt">鍙婃椂涓庣敓鎬佺幆澧冮儴闂ㄦ补鐑熺洃鎺х郴缁熻仈缃戯紝</span><span
+ style=" font-size:12pt">渚濇嵁</span><span
+ style=" font-size:12pt">銆�</span><span
+ style=" font-size:12pt">涓婃捣甯傛壃灏樺湪绾跨洃娴嬫暟鎹墽娉曞簲鐢ㄨ瀹�</span><span
+ style=" font-size:12pt">銆�</span><span
+ style=" font-size:12pt">瀹氭湡瀹℃牳鐩戞祴鏁版嵁</span><span
+ style=" font-size:12pt">锛屼笉瓒呮爣鎺掓斁</span><span
+ style=" font-size:12pt">锛涙壃灏樼洃娴嬫暟鎹潥鍐充笉寮勮櫄浣滃亣锛屼笉瑙︾姱</span><span
+ style=" font-size:12pt">銆�</span><span
+ style=" font-size:12pt">鐜鐩戞祴鏁版嵁寮勮櫄浣滃亣琛屼负鍒ゅ畾鍙婂鐞嗗姙娉�</span><span
+ style=" font-size:12pt">銆�</span><span
+ style=" font-size:12pt">銆�</span>
+ </p>
+ <p
+ style="line-height:20pt; margin:0pt 0pt 10pt; orphans:0; text-align:justify; text-indent:21pt; widows:0">
+ <span style=" font-size:12pt">涓冦�佷笉浣跨敤鏈笂鐜繚鎷嶇収鐨勯潪閬撹矾鏈烘锛屼笉浣跨敤闈炴硶娓犻亾鎴栦笉杈炬爣鏌存补</span><span
+ style=" font-size:12pt">銆�</span>
+ </p>
+ <p
+ style="line-height:20pt; margin:0pt 0pt 10pt; orphans:0; text-align:justify; text-indent:21pt; widows:0">
+ <span style=" font-size:12pt">鍏�</span><span
+ style=" font-size:12pt">銆佸悓鎰忔湰鎵胯鍚戠ぞ浼氬叕寮�锛屽苟鑷鎺ュ彈鏀垮簻銆佽涓氱粍缁囥�佷富绠¢儴闂ㄥ鎵樼涓夋柟鐩戠鍗曚綅銆佺ぞ浼氬叕浼椼�佹柊闂昏垎璁虹殑鐩戠潱銆�</span>
+ </p>
+ <p
+ style="line-height:20pt; margin:0pt 0pt 10pt; orphans:0; text-align:justify; text-indent:21pt; widows:0">
+ <span style=" font-size:12pt"> </span>
+ </p>
+ <p
+ style="line-height:20pt; margin:0pt 0pt 10pt; orphans:0; text-align:justify; text-indent:26.25pt; widows:0">
+ <span style=" font-size:12pt">娉曚汉</span><span
+ style=" font-size:12pt">浠h〃鎴栬矗</span><span
+ style=" font-size:12pt">浠讳汉锛堢瀛楋級锛毬�${Sign}聽聽聽聽 鍗曚綅锛堢洊绔狅級 ${Seal}</span>
+ </p>
+ <br /><br /><br /><br />
+ <p
+ style="line-height:20pt; margin:0pt 0pt 10pt; orphans:0; text-align:right; text-indent:28.5pt; widows:0">
+ <span style=" font-size:12pt">${Year}骞绰�${Month} 鏈埪�${Day} 鏃�</span>
+ </p>
+ </td>
+ </tr>
+ <tr style="height:0pt">
+ <td style="width:42.3pt; border:none"></td>
+ <td style="width:75.35pt; border:none"></td>
+ <td style="width:144.35pt; border:none"></td>
+ <td style="width:108.6pt; border:none"></td>
+ <td style="width:130.35pt; border:none"></td>
+ </tr>
+ </table>
+ </div>
+ <p style="font-size:10.5pt; line-height:115%; margin:0pt 0pt 10pt; orphans:0; text-align:justify; widows:0">
+ <span style=" font-size:10.5pt"> </span>
+ </p>
+ </div>
+</body>
+
+</html>
\ No newline at end of file
diff --git a/src/main/resources/templates/pdfDemo5.docx b/src/main/resources/templates/pdfDemo5.docx
new file mode 100644
index 0000000..2a41181
--- /dev/null
+++ b/src/main/resources/templates/pdfDemo5.docx
Binary files differ
diff --git a/src/main/resources/templates/temporary.html b/src/main/resources/templates/temporary.html
new file mode 100644
index 0000000..1d306e0
--- /dev/null
+++ b/src/main/resources/templates/temporary.html
@@ -0,0 +1,280 @@
+锘�<html>
+
+<head>
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+ <meta http-equiv="Content-Style-Type" content="text/css" />
+ <meta name="generator" content="Aspose.Words for .NET 15.1.0.0" />
+ <title></title>
+</head>
+
+<body>
+ <div>
+ <p style="font-size:18pt; line-height:115%; margin:0pt 0pt 10pt; orphans:0; text-align:center; widows:0">
+ <!-- <span style=" font-size:18pt; font-weight:bold">涓婃捣甯�</span>
+ <span style=" font-size:18pt; font-weight:bold">寰愭眹鍖�</span> -->
+ <span style=" font-size:18pt; font-weight:bold">寤鸿宸ュ湴</span>
+ <span style=" font-size:18pt; font-weight:bold">鐜淇$敤鎵胯涔�</span>
+ </p>
+ <div style="text-align:center">
+ <table cellspacing="0" cellpadding="0" style="border-collapse:collapse; margin:0 auto; width:501.7pt">
+ <tr style="height:24.6pt">
+ <td colspan="2"
+ style="border-bottom-color:#000000; border-bottom-style:solid; border-bottom-width:0.75pt; border-left-color:#000000; border-left-style:solid; border-left-width:0.75pt; border-right-color:#000000; border-right-style:solid; border-right-width:0.75pt; border-top-color:#000000; border-top-style:solid; border-top-width:0.75pt; padding-left:5.03pt; padding-right:5.03pt; vertical-align:middle; width:106.85pt">
+ <p
+ style="font-size:12pt; line-height:115%; margin:0pt 0pt 10pt; orphans:0; text-align:center; widows:0">
+ <span style=" font-size:12pt">鏂藉伐</span><span
+ style=" font-size:12pt">鍗曚綅鍚嶇О</span>
+ </p>
+ </td>
+ <td colspan="3"
+ style="border-bottom-color:#000000; border-bottom-style:solid; border-bottom-width:0.75pt; border-right-color:#000000; border-right-style:solid; border-right-width:0.75pt; border-top-color:#000000; border-top-style:solid; border-top-width:0.75pt; padding-left:5.4pt; padding-right:5.03pt; vertical-align:middle; width:372.5pt">
+ <p
+ style="font-size:12pt; line-height:115%; margin:0pt 0pt 10pt; orphans:0; text-align:center; widows:0">
+ <span style=" font-size:12pt">鏌愭煇浼佷笟</span>
+ </p>
+ </td>
+ </tr>
+ <tr style="height:25.75pt">
+ <td colspan="2"
+ style="border-bottom-color:#000000; border-bottom-style:solid; border-bottom-width:0.75pt; border-left-color:#000000; border-left-style:solid; border-left-width:0.75pt; border-right-color:#000000; border-right-style:solid; border-right-width:0.75pt; border-top-color:#000000; border-top-style:solid; border-top-width:0.75pt; padding-left:5.03pt; padding-right:5.03pt; vertical-align:middle; width:106.85pt">
+ <p
+ style="font-size:12pt; line-height:115%; margin:0pt 0pt 10pt; orphans:0; text-align:center; widows:0">
+ <span style=" font-size:12pt">缁熶竴绀句細淇$敤浠g爜</span>
+ </p>
+ </td>
+ <td
+ style="border-bottom-color:#000000; border-bottom-style:solid; border-bottom-width:0.75pt; border-right-color:#000000; border-right-style:solid; border-right-width:0.75pt; border-top-color:#000000; border-top-style:solid; border-top-width:0.75pt; padding-left:5.4pt; padding-right:5.03pt; vertical-align:middle; width:133.55pt">
+ <p
+ style="font-size:12pt; line-height:115%; margin:0pt 0pt 10pt; orphans:0; text-align:center; widows:0">
+ <span style=" font-size:12pt">9283987983179</span>
+ </p>
+ </td>
+ <td
+ style="border-bottom-color:#000000; border-bottom-style:solid; border-bottom-width:0.75pt; border-right-color:#000000; border-right-style:solid; border-right-width:0.75pt; border-top-color:#000000; border-top-style:solid; border-top-width:0.75pt; padding-left:5.4pt; padding-right:5.03pt; vertical-align:middle; width:97.8pt">
+ <p
+ style="font-size:12pt; line-height:115%; margin:0pt 0pt 10pt; orphans:0; text-align:center; widows:0">
+ <span style=" font-size:12pt">宸ュ湴</span><span
+ style=" font-size:12pt">鎶ュ缓鍙�</span>
+ </p>
+ </td>
+ <td
+ style="border-bottom-color:#000000; border-bottom-style:solid; border-bottom-width:0.75pt; border-right-color:#000000; border-right-style:solid; border-right-width:0.75pt; border-top-color:#000000; border-top-style:solid; border-top-width:0.75pt; padding-left:5.4pt; padding-right:5.03pt; vertical-align:middle; width:119.55pt">
+ <p
+ style="font-size:12pt; line-height:115%; margin:0pt 0pt 10pt; orphans:0; text-align:center; widows:0">
+ <span style=" font-size:12pt">13u981479835</span>
+ </p>
+ </td>
+ </tr>
+ <tr style="height:24.95pt">
+ <td colspan="2"
+ style="border-bottom-color:#000000; border-bottom-style:solid; border-bottom-width:0.75pt; border-left-color:#000000; border-left-style:solid; border-left-width:0.75pt; border-right-color:#000000; border-right-style:solid; border-right-width:0.75pt; border-top-color:#000000; border-top-style:solid; border-top-width:0.75pt; padding-left:5.03pt; padding-right:5.03pt; vertical-align:middle; width:106.85pt">
+ <p
+ style="font-size:12pt; line-height:115%; margin:0pt 0pt 10pt; orphans:0; text-align:center; widows:0">
+ <span style=" font-size:12pt">娉曚汉</span><span
+ style=" font-size:12pt">浠h〃</span><span
+ style=" font-size:12pt">濮撳悕</span>
+ </p>
+ </td>
+ <td
+ style="border-bottom-color:#000000; border-bottom-style:solid; border-bottom-width:0.75pt; border-right-color:#000000; border-right-style:solid; border-right-width:0.75pt; border-top-color:#000000; border-top-style:solid; border-top-width:0.75pt; padding-left:5.4pt; padding-right:5.03pt; vertical-align:middle; width:133.55pt">
+ <p
+ style="font-size:12pt; line-height:115%; margin:0pt 0pt 10pt; orphans:0; text-align:center; widows:0">
+ <span style=" font-size:12pt">鏌愭煇鏌�</span>
+ </p>
+ </td>
+ <td
+ style="border-bottom-color:#000000; border-bottom-style:solid; border-bottom-width:0.75pt; border-right-color:#000000; border-right-style:solid; border-right-width:0.75pt; border-top-color:#000000; border-top-style:solid; border-top-width:0.75pt; padding-left:5.4pt; padding-right:5.03pt; vertical-align:middle; width:97.8pt">
+ <p
+ style="font-size:12pt; line-height:115%; margin:0pt 0pt 10pt; orphans:0; text-align:center; widows:0">
+ <span style=" font-size:12pt">娉曚汉</span><span
+ style=" font-size:12pt">浠h〃</span><span
+ style=" font-size:12pt">韬唤璇佸彿</span>
+ </p>
+ </td>
+ <td
+ style="border-bottom-color:#000000; border-bottom-style:solid; border-bottom-width:0.75pt; border-right-color:#000000; border-right-style:solid; border-right-width:0.75pt; border-top-color:#000000; border-top-style:solid; border-top-width:0.75pt; padding-left:5.4pt; padding-right:5.03pt; vertical-align:middle; width:119.55pt">
+ <p
+ style="font-size:12pt; line-height:115%; margin:0pt 0pt 10pt; orphans:0; text-align:center; widows:0">
+ <span style=" font-size:12pt">12314876128736128736</span>
+ </p>
+ </td>
+ </tr>
+ <tr style="height:42.7pt">
+ <td colspan="2"
+ style="border-bottom-color:#000000; border-bottom-style:solid; border-bottom-width:0.75pt; border-left-color:#000000; border-left-style:solid; border-left-width:0.75pt; border-right-color:#000000; border-right-style:solid; border-right-width:0.75pt; border-top-color:#000000; border-top-style:solid; border-top-width:0.75pt; padding-left:5.03pt; padding-right:5.03pt; vertical-align:middle; width:106.85pt">
+ <p style="line-height:20pt; margin:0pt 0pt 10pt; orphans:0; text-align:center; widows:0"><span
+ style=" font-size:12pt">鐜淇$敤鎵胯绫诲瀷</span></p>
+ </td>
+ <td colspan="3"
+ style="border-bottom-color:#000000; border-bottom-style:solid; border-bottom-width:0.75pt; border-right-color:#000000; border-right-style:solid; border-right-width:0.75pt; border-top-color:#000000; border-top-style:solid; border-top-width:0.75pt; padding-left:5.4pt; padding-right:5.03pt; vertical-align:middle; width:372.5pt">
+ <p style="line-height:20pt; margin:0pt 0pt 10pt; orphans:0; text-align:justify; widows:0"><span
+ style=" font-size:12pt">鈻$幆淇濅富浣撹矗浠绘壙璇猴紱鈻$幆澧冭鏀胯鍙簨椤癸紱聽 </span></p>
+ <p style="line-height:20pt; margin:0pt 0pt 10pt; orphans:0; text-align:justify; widows:0"><span
+ style=" font-size:12pt">鈻$幆淇濅笓椤硅祫閲戞垨鍏朵粬璧勯噾琛ュ姪锛涒枴鍏朵粬鐜繚鐢虫姤浜嬮」</span></p>
+ </td>
+ </tr>
+ <tr style="height:88.5pt">
+ <td
+ style="border-bottom-color:#000000; border-bottom-style:solid; border-bottom-width:0.75pt; border-left-color:#000000; border-left-style:solid; border-left-width:0.75pt; border-right-color:#000000; border-right-style:solid; border-right-width:0.75pt; border-top-color:#000000; border-top-style:solid; border-top-width:0.75pt; padding-left:5.03pt; padding-right:5.03pt; vertical-align:middle; width:31.5pt">
+ <p
+ style="font-size:14pt; line-height:115%; margin:0pt 0pt 10pt; orphans:0; text-align:center; widows:0">
+ <span style=" font-size:14pt">鎵�</span>
+ </p>
+ <p
+ style="font-size:14pt; line-height:115%; margin:0pt 0pt 10pt; orphans:0; text-align:center; widows:0">
+ <span style=" font-size:14pt">璇�</span>
+ </p>
+ <p
+ style="font-size:14pt; line-height:115%; margin:0pt 0pt 10pt; orphans:0; text-align:center; widows:0">
+ <span style=" font-size:14pt">浜�</span>
+ </p>
+ <p
+ style="font-size:14pt; line-height:115%; margin:0pt 0pt 10pt; orphans:0; text-align:center; widows:0">
+ <span style=" font-size:14pt">椤�</span>
+ </p>
+ </td>
+ <td colspan="4"
+ style="border-bottom-color:#000000; border-bottom-style:solid; border-bottom-width:0.75pt; border-right-color:#000000; border-right-style:solid; border-right-width:0.75pt; border-top-color:#000000; border-top-style:solid; border-top-width:0.75pt; padding-left:5.4pt; padding-right:5.03pt; vertical-align:top; width:447.85pt">
+ <p
+ style="line-height:20pt; margin:0pt 0pt 10pt; orphans:0; text-align:justify; text-indent:21pt; widows:0">
+ <span style=" font-size:12pt">涓鸿返琛岀豢鑹插彂灞曠悊蹇碉紝鍔姏钀ラ�犺瘹瀹炲畧淇$殑绀句細鐜锛岃惤瀹�</span><span
+ style=" font-size:12pt">鏂藉伐</span><span
+ style=" font-size:12pt">鍗曚綅鐜繚璐d换锛�</span><span
+ style=" font-size:12pt">闄嶄綆鍥犵幆澧冪瓑鍥犵礌閫犳垚鐨�</span><span
+ style=" font-size:12pt">鎵皹姹℃煋</span><span
+ style=" font-size:12pt">闅愭偅鍜屽眳姘戠籂绾�</span><span
+ style=" font-size:12pt">锛�</span><span
+ style=" font-size:12pt">纭繚</span><span
+ style=" font-size:12pt">寤虹瓚涓�</span><span
+ style=" font-size:12pt">鍋ュ悍鏈夊簭鍙戝睍</span><span
+ style=" font-size:12pt">锛�</span><span
+ style=" font-size:12pt">鏈崟浣嶏紙鎴栨湰浜猴級鑷効浣滃嚭濡備笅鎵胯锛�</span>
+ </p>
+ <p
+ style="line-height:20pt; margin:0pt 0pt 10pt; orphans:0; text-align:justify; text-indent:21pt; widows:0">
+ <span
+ style=" font-size:12pt">涓�銆佷弗鏍奸伒瀹堝浗瀹躲�佸競銆佸尯鏈夊叧鐜淇濇姢娉曞緥銆佹硶瑙勩�佽绔犮�佹爣鍑嗗拰鏀跨瓥瑙勫畾锛岀Н鏋佸饱琛岀幆澧冧繚鎶ょぞ浼氳矗浠汇��</span>
+ </p>
+ <p
+ style="line-height:20pt; margin:0pt 0pt 10pt; orphans:0; text-align:justify; text-indent:21pt; widows:0">
+ <span style=" font-size:12pt">浜屻��</span><span
+ style=" font-size:12pt">浠�</span><span
+ style=" font-size:12pt">銆婁笂娴峰競鐜淇濇姢鏉′緥銆�</span><span
+ style=" font-size:12pt">銆�</span><span
+ style=" font-size:12pt">銆婁笂娴峰競澶ф皵姹℃煋闃叉不鏉′緥銆�</span><span
+ style=" font-size:12pt">銆�</span><span
+ style=" font-size:12pt">銆婁笂娴峰競寤鸿宸ョ▼鏂囨槑鏂藉伐绠$悊瑙勫畾銆�</span><span
+ style=" font-size:12pt">绛夎姹備负渚濇嵁锛岀瀛﹀埗瀹氬缓璁惧伐鍦版壃灏樻薄鏌撻槻娌绘柟妗堝苟鍏ず锛屽缓绔嬪仴鍏ㄤ紒涓氬唴閮ㄦ壃灏橀槻娌绘牳鏌ユ満鍒讹紝瀹夋帓涓撲汉璐熻矗鎵皹闃叉不浜嬪疁锛屽強鏃惰褰曘�佷繚瀛樿溅杈嗚繘鍑恒�佸啿娲椼�佹磼姘寸瓑鐜繚鍙拌处</span><span
+ style=" font-size:12pt">銆�</span>
+ </p>
+ <p
+ style="line-height:20pt; margin:0pt 0pt 10pt; orphans:0; text-align:justify; text-indent:21pt; widows:0">
+ <span style=" font-size:12pt">涓夈��</span><span
+ style=" font-size:12pt">寤鸿鏂藉伐搴旂鍚�</span><span
+ style=" font-size:12pt">銆�</span><span
+ style=" font-size:12pt">鏂囨槑鏂藉伐</span><span
+ style=" font-size:12pt">鏍囧噯銆嬶紙</span><span
+ style=" font-size:12pt">DG/TJ 08-2102-2019 )</span><span
+ style=" font-size:12pt">锛�</span><span
+ style=" font-size:12pt">绉戝閰嶇疆鎵皹闃叉不璁炬柦璁惧锛堥珮鍘嬪啿娲楄澶囥�佽嚜鍔ㄥ柗娣嬭缃�侀浘鐐溅銆佹磼姘磋溅绛夛級锛屼緷鎵樻妧闃叉帾鏂藉紑灞曠豢鑹叉柦宸ワ紝骞跺姞寮哄鍣0鎺у埗銆佸厜姹℃煋鎺у埗銆佸己鑵愯殌鎬у寲瀛﹀搧绛夊叾浠栨薄鏌撴帶鍒讹紝</span><span
+ style=" font-size:12pt">闃叉瀵瑰懆杈瑰眳姘戦�犳垚鐢熸椿鐜姹℃煋銆�</span>
+ </p>
+ <p
+ style="line-height:20pt; margin:0pt 0pt 10pt; orphans:0; text-align:justify; text-indent:21pt; widows:0">
+ <span style=" font-size:12pt">鍥涖�佷弗鏍兼墽琛�</span><span
+ style=" font-size:12pt">鎵皹娌荤悊鍏釜鐧惧垎鐧�</span><span
+ style=" font-size:12pt">瑕佹眰</span><span
+ style=" font-size:12pt">锛�</span><span
+ style=" font-size:12pt">1銆佹柦宸ュ伐鍦板懆杈�100%鍥存尅</span><span
+ style=" font-size:12pt">锛�</span><span
+ style=" font-size:12pt">2銆佸嚭鍏ヨ溅杈�100%鍐叉礂</span><span
+ style=" font-size:12pt">锛�</span><span
+ style=" font-size:12pt">3銆佹媶杩佸伐鍦�100%婀挎硶浣滀笟</span><span
+ style=" font-size:12pt">锛�</span><span
+ style=" font-size:12pt">4銆佹福鍦熻溅杈�100%瀵嗛棴杩愯緭</span><span
+ style=" font-size:12pt">锛�</span><span
+ style=" font-size:12pt">5銆佹柦宸ョ幇鍦哄湴闈�100%纭寲</span><span
+ style=" font-size:12pt">锛�</span><span
+ style=" font-size:12pt">6銆佺墿鏂欏爢鏀�100%瑕嗙洊</span><span
+ style=" font-size:12pt">銆�</span>
+ </p>
+ <p
+ style="line-height:20pt; margin:0pt 0pt 10pt; orphans:0; text-align:justify; text-indent:21pt; widows:0">
+ <span style=" font-size:12pt">浜�</span><span
+ style=" font-size:12pt">銆�</span><span
+ style=" font-size:12pt">閬靛畧鍏充簬鍗板彂銆婁笂娴峰競鎴垮眿寤虹瓚宸ュ湴鎵皹姹℃煋闃叉不宸ヤ綔鏂规銆嬬殑閫氱煡 锛堟勃寤鸿川瀹夎仈銆�2019銆�208 鍙�
+ 锛夌浉鍏宠瀹氾紝</span><span style=" font-size:12pt">瀹夎甯備綇鎴垮煄涔″缓璁剧鐞嗗鍜屽競鐢熸�佺幆澧冨眬瀹樻柟</span>
+ </p>
+ <p style="line-height:20pt; margin:0pt 0pt 10pt; orphans:0; text-align:justify; widows:0"><span
+ style=" font-size:12pt">缃戠珯鍏ず鍏憡鏍忎腑</span><span
+ style=" font-size:12pt">鏈�鏂�</span><span
+ style=" font-size:12pt">鍏竷鐨�</span><span
+ style=" font-size:12pt">鍚堟牸渚涘簲鍟嗘彁渚涚殑鎵皹鍦ㄧ嚎鐩戞祴璁惧锛岄』绗﹀悎</span><span
+ style=" font-size:12pt">銆�</span><span
+ style=" font-size:12pt">涓婃捣甯傚缓绛戞柦宸�</span><span
+ style=" font-size:12pt">棰楃矑鐗�</span><span
+ style=" font-size:12pt">涓庡櫔澹�</span><span
+ style=" font-size:12pt">鍦ㄧ嚎鐩戞祴鎶�鏈鑼冦��</span><span
+ style=" font-size:12pt">锛�</span><span
+ style=" font-size:12pt">濮旀墭瑙勮寖鏈嶅姟鍗曚綅瀹氭湡杩愮淮锛屽強鏃惰褰曠浉鍏冲彴璐︼紝纭繚鍏舵甯镐娇鐢�</span><span
+ style=" font-size:12pt">锛�</span><span
+ style=" font-size:12pt">璁惧鎷嗛櫎銆佺Щ鍔ㄦ垨鍋滆繍椤绘彁鍓嶅悜涓荤閮ㄩ棬鐢宠鎴栧妗堛��</span></p>
+ <p
+ style="line-height:20pt; margin:0pt 0pt 10pt; orphans:0; text-align:justify; text-indent:21pt; widows:0">
+ <span style=" font-size:12pt">鍏�佹壃灏樺湪绾跨洃娴嬭澶囧畨瑁呭悗椤荤‘淇濈ǔ瀹氳繍琛岋紝骞�</span><span
+ style=" font-size:12pt">鍙婃椂涓庣敓鎬佺幆澧冮儴闂ㄦ补鐑熺洃鎺х郴缁熻仈缃戯紝</span><span
+ style=" font-size:12pt">渚濇嵁</span><span
+ style=" font-size:12pt">銆�</span><span
+ style=" font-size:12pt">涓婃捣甯傛壃灏樺湪绾跨洃娴嬫暟鎹墽娉曞簲鐢ㄨ瀹�</span><span
+ style=" font-size:12pt">銆�</span><span
+ style=" font-size:12pt">瀹氭湡瀹℃牳鐩戞祴鏁版嵁</span><span
+ style=" font-size:12pt">锛屼笉瓒呮爣鎺掓斁</span><span
+ style=" font-size:12pt">锛涙壃灏樼洃娴嬫暟鎹潥鍐充笉寮勮櫄浣滃亣锛屼笉瑙︾姱</span><span
+ style=" font-size:12pt">銆�</span><span
+ style=" font-size:12pt">鐜鐩戞祴鏁版嵁寮勮櫄浣滃亣琛屼负鍒ゅ畾鍙婂鐞嗗姙娉�</span><span
+ style=" font-size:12pt">銆�</span><span
+ style=" font-size:12pt">銆�</span>
+ </p>
+ <p
+ style="line-height:20pt; margin:0pt 0pt 10pt; orphans:0; text-align:justify; text-indent:21pt; widows:0">
+ <span style=" font-size:12pt">涓冦�佷笉浣跨敤鏈笂鐜繚鎷嶇収鐨勯潪閬撹矾鏈烘锛屼笉浣跨敤闈炴硶娓犻亾鎴栦笉杈炬爣鏌存补</span><span
+ style=" font-size:12pt">銆�</span>
+ </p>
+ <p
+ style="line-height:20pt; margin:0pt 0pt 10pt; orphans:0; text-align:justify; text-indent:21pt; widows:0">
+ <span style=" font-size:12pt">鍏�</span><span
+ style=" font-size:12pt">銆佸悓鎰忔湰鎵胯鍚戠ぞ浼氬叕寮�锛屽苟鑷鎺ュ彈鏀垮簻銆佽涓氱粍缁囥�佷富绠¢儴闂ㄥ鎵樼涓夋柟鐩戠鍗曚綅銆佺ぞ浼氬叕浼椼�佹柊闂昏垎璁虹殑鐩戠潱銆�</span>
+ </p>
+ <p
+ style="line-height:20pt; margin:0pt 0pt 10pt; orphans:0; text-align:justify; text-indent:21pt; widows:0">
+ <span style=" font-size:12pt"> </span>
+ </p>
+ <p
+ style="line-height:20pt; margin:0pt 0pt 10pt; orphans:0; text-align:justify; text-indent:26.25pt; widows:0">
+ <span style=" font-size:12pt">娉曚汉</span><span
+ style=" font-size:12pt">浠h〃鎴栬矗</span><span
+ style=" font-size:12pt">浠讳汉锛堢瀛楋級锛毬犵鍚嵚犅犅犅� 鍗曚綅锛堢洊绔狅級 鐩栫珷</span>
+ </p>
+ <br /><br /><br /><br />
+ <p
+ style="line-height:20pt; margin:0pt 0pt 10pt; orphans:0; text-align:right; text-indent:28.5pt; widows:0">
+ <span style=" font-size:12pt">2022骞绰�06 鏈埪�29 鏃�</span>
+ </p>
+ </td>
+ </tr>
+ <tr style="height:0pt">
+ <td style="width:42.3pt; border:none"></td>
+ <td style="width:75.35pt; border:none"></td>
+ <td style="width:144.35pt; border:none"></td>
+ <td style="width:108.6pt; border:none"></td>
+ <td style="width:130.35pt; border:none"></td>
+ </tr>
+ </table>
+ </div>
+ <p style="font-size:10.5pt; line-height:115%; margin:0pt 0pt 10pt; orphans:0; text-align:justify; widows:0">
+ <span style=" font-size:10.5pt"> </span>
+ </p>
+ </div>
+</body>
+
+</html>
\ No newline at end of file
diff --git a/src/test/kotlin/cn/flightfeather/supervision/lightshare/service/Impl/CommitmentServiceImplTest.kt b/src/test/kotlin/cn/flightfeather/supervision/lightshare/service/Impl/CommitmentServiceImplTest.kt
new file mode 100644
index 0000000..5806ae1
--- /dev/null
+++ b/src/test/kotlin/cn/flightfeather/supervision/lightshare/service/Impl/CommitmentServiceImplTest.kt
@@ -0,0 +1,40 @@
+package cn.flightfeather.supervision.lightshare.service.Impl
+
+import cn.flightfeather.supervision.lightshare.service.CommitmentService
+import org.junit.Test
+import org.junit.jupiter.api.extension.ExtendWith
+import org.junit.runner.RunWith
+import org.springframework.beans.factory.annotation.Autowired
+import org.springframework.boot.test.context.SpringBootTest
+import org.springframework.test.context.junit.jupiter.SpringExtension
+import org.springframework.test.context.junit4.SpringRunner
+
+@RunWith(SpringRunner::class)
+@ExtendWith(SpringExtension::class)
+@SpringBootTest
+class CommitmentServiceImplTest {
+
+ @Autowired
+ lateinit var commitmentService: CommitmentService
+
+ @Test
+ fun createLetterOfCommitment() {
+ val r = commitmentService.createLetterOfCommitment("", mutableMapOf<String, Any>().apply {
+ put("Department", "鏌愭煇浼佷笟")
+ put("SocialCode", "9283987983179")
+ put("ConstructionNo", "13u981479835")
+ put("JuridicalPerson", "鏌愭煇鏌�")
+ put("IdNo", "12314876128736128736")
+ put("Type1", "鈻�")
+ put("Type2", "鈻�")
+ put("Type3", "鈻�")
+ put("Type4", "鈻�")
+ put("Sign", "绛惧悕")
+ put("Seal", "鐩栫珷")
+ put("Year", "2022")
+ put("Month", "06")
+ put("Day", "29")
+ })
+ println(r)
+ }
+}
\ No newline at end of file
--
Gitblit v1.9.3