思路分析:
先将deepSeek生成的markdown格式的报告内容转换成html格式,通过模板字符串拼接成一个完整的html字符串content(包含html根元素,head头部,style样式,body主体),然后在字符串content 中通过标签和css样式生成封面,最后将字符串content 生成blob并标记为word格式,通过创建a标签并点击实现下载功能。
实现步骤:
1.利用markdown-it将markdown格式报告内容转换成html格式;
import MarkdownIt from "markdown-it"
// 1、新建实例md:
const md = new MarkdownIt()
const data = md.render("\n\n**上海百昌科技集团有限公司尽职调查报告** \n\n---\n\n### **一、公司概况** \n上海百昌科技集团有限公司(以下简称“百昌科技”)是一家专注于人工智能技术研发与应用的高科技企业,注册地位于上海市,注册资本未公开披露。公司核心业务涵盖智能应用开发、大数据分析及AI解决方案服务,旗下产品“师爷AI”基于自研的DeepSeek-R1模型,提供信息咨询与技术支持。股权结构信息需进一步核实,但初步显示其实控人及主要股东背景与科技领域关联紧密。 \n\n---\n\n### **二、历史沿革与股权变动** \n公司成立于2018年,初期聚焦数据服务,2022年起转型AI技术开发,2024年推出“师爷AI”产品。历史股权变动暂无公开重大记录,需进一步核查是否存在关联方代持或未披露的资本运作。 \n\n---\n\n### **三、业务与市场分析** \n1. **产品与技术** \n 核心产品“师爷AI”基于开源模型DeepSeek-R1优化,具备自然语言处理与多场景交互能力,应用领域包括企业服务、教育及消费级市场。技术优势体现在模型微调能力与响应速度,但需关注技术迭代风险及开源协议合规性。 \n2. **市场地位** \n 当前国内AI助手市场竞争激烈,百昌科技市场份额较小,但凭借垂直领域定制化服务形成差异化优势。行业数据显示,2024年AI助手市场规模同比增长28%,未来三年年均复合增长率预计达19%。 \n3. **研发投入** \n 公司研发团队占比超60%,近三年研发费用率约25%-30%,高于行业平均水平,已申请5项AI相关专利,技术储备集中在NLP领域。 \n\n---\n\n### **四、财务分析(模拟数据)** \n基于可比公司推算,百昌科技近三年财务表现如下(单位:万元): \n| **指标** | **2022年** | **2023年** | **2024年** | \n|------------------|------------|------------|------------| \n| 营业收入 | 8,200 | 12,500 | 18,000 | \n| 净利润 | -1,200 | 800 | 2,500 | \n| 毛利率 | 42% | 48% | 53% | \n| 资产负债率 | 65% | 58% | 50% | \n| 应收账款周转天数 | 75 | 68 | 60 | \n\n**关键分析:** \n- **盈利能力**:毛利率逐年提升,反映产品附加值增强;2024年净利润率13.9%,接近行业头部企业水平。 \n- **偿债能力**:资产负债率优化明显,流动比率从0.9提升至1.3,短期偿债压力缓解。 \n- **运营效率**:存货周转率从5.2次/年提升至6.8次/年,但应收账款周转天数仍高于行业均值(45天),需关注客户回款风险。 \n\n---\n\n### **五、法律与合规** \n1. **知识产权**:持有5项发明专利,未发现重大侵权诉讼记录。 \n2. **数据合规**:需核查用户数据采集与处理是否符合《个人信息保护法》要求。 \n3. **关联交易**:2024年向关联方采购技术服务占比12%,交易定价需评估公允性。 \n\n---\n\n### **六、风险提示** \n1. **技术风险**:AI模型迭代依赖持续研发投入,若技术滞后可能导致市场份额流失。 \n2. **市场风险**:头部企业(如百度、科大讯飞)垄断效应加剧,挤压中小厂商空间。 \n3. **财务风险**:经营性现金流2024年仅为1,200万元,低于净利润,盈利质量待提升。 \n\n---\n\n### **七、结论与建议** \n百昌科技在AI垂直领域展现较强技术落地能力,财务稳健性改善显著,但面临行业集中度提升的竞争压力。建议: \n- **股权投资**:可考虑战略注资,侧重技术合作与市场资源整合,估值参考PS(市销率)8-10倍。 \n- **债权合作**:短期授信需强化应收账款质押管理,控制敞口不超过净资产的30%。 \n- **风险缓释**:要求公司补充数据合规审计报告,并设立技术迭代对赌条款。 \n\n--- \n**报告说明**:以上分析基于公开信息与行业数据模拟,部分细节需进一步实地尽调验证。"
)
2.将html格式的报告拼接成一个完整的html文件
3.在html文件中通过标签和css样式生成封面
const content = `
<html>
<head>
<meta charset="UTF-8">
<style>
@page {
margin: 0;
size: A4 portrait;
mso-page-orientation: portrait;
}
body {
margin: 0;
mso-line-height-rule: exactly;
}
.cover-page {
height: 100vh;
text-align:center;
display: flex;
justify-content: center;
align-items: center;
}
</style>
</head>
<body>
<!-- 封面页 -->
<div class="cover-page">
<div> </div>
<div> </div>
<div> </div>
<div> </div>
<div> </div>
<div> </div>
<h1>法</h1>
<h1>律</h1>
<h1>尽</h1>
<h1>职</h1>
<h1>调</h1>
<h1>查</h1>
<h1>报</h1>
<h1>告</h1>
</div>
<!-- 正文内容 -->
<div class="content">
${data}
</div>
</body>
</html>
`
4.将字符串htmlStr生成blob并标记为word格式
// 生成并下载 .doc 文件
const blob = new Blob(["\ufeff", content], { type: "application/msword" })
5.通过创建a标签并点击实现下载功能
const link = document.createElement("a")
link.href = URL.createObjectURL(blob)
link.download = "法律尽职调查报告.doc"
link.click()
URL.revokeObjectURL(link.href)
疑难点及解决方案:
1. 问题描述:word文件打开是网页视图,而不是页面视图,展示样式不规范
原因分析:生成的word文档虽然扩展名为 .doc
,但内容实际是 HTML 代码。Word 会根据文件内容(而非扩展名)自动判断格式,若检测到 HTML 结构,可能默认以网页视图渲染。
解决方案:通过添加 Word 专有命名空间 和 强制文档模式声明,让 Word 将其识别为原生文档。但是如果 Word 版本过旧(如 2003)或未正确解析 XML,需要在 <head>中添加旧版兼容标签:
<html xmlns:v="urn:schemas-microsoft-com:vml"
xmlns:o="urn:schemas-microsoft-com:office:office"
xmlns:w="urn:schemas-microsoft-com:office:word"
xmlns:m="http://schemas.microsoft.com/office/2004/12/omml"
xmlns="http://www.w3.org/TR/REC-html40">
<head>
<meta charset="UTF-8">
<meta name="ProgId" content="Word.Document">
<meta name="Generator" content="Microsoft Word 15">
<!-- 针对 Word 2003 的兼容性声明 -->
<!--[if gte mso 9]>
<xml>
<w:WordDocument>
<w:View>Print</w:View>
</w:WordDocument>
</xml>
<![endif]-->
</head>
</html>
2.问题描述:封面页虽然设置了height:100vh,但是分页功能未生效;
解决方案:添加分页符增强样式:
<style>
/* 分页符增强样式 */
.page-break {
page-break-after: always;
mso-page-break-after: always;
height: 0;
visibility: hidden;
}
</style>
<body>
<!-- 封面页 -->
<div class="cover-page">...</div>
<!-- 分页符(双重保障) -->
<div class="page-break"></div>
<!--[if gte mso 9]>
<br clear="all" style="mso-ignore:all; page-break-before:always" />
<![endif]-->
<!-- 正文内容 -->
<div class="content">...</div>
</body>
实现效果:
完整代码:
const downFn = () => {
const data = md.render(
"\n\n**上海百昌科技集团有限公司尽职调查报告** \n\n---\n\n### **一、公司概况** \n上海百昌科技集团有限公司(以下简称“百昌科技”)是一家专注于人工智能技术研发与应用的高科技企业,注册地位于上海市,注册资本未公开披露。公司核心业务涵盖智能应用开发、大数据分析及AI解决方案服务,旗下产品“师爷AI”基于自研的DeepSeek-R1模型,提供信息咨询与技术支持。股权结构信息需进一步核实,但初步显示其实控人及主要股东背景与科技领域关联紧密。 \n\n---\n\n### **二、历史沿革与股权变动** \n公司成立于2018年,初期聚焦数据服务,2022年起转型AI技术开发,2024年推出“师爷AI”产品。历史股权变动暂无公开重大记录,需进一步核查是否存在关联方代持或未披露的资本运作。 \n\n---\n\n### **三、业务与市场分析** \n1. **产品与技术** \n 核心产品“师爷AI”基于开源模型DeepSeek-R1优化,具备自然语言处理与多场景交互能力,应用领域包括企业服务、教育及消费级市场。技术优势体现在模型微调能力与响应速度,但需关注技术迭代风险及开源协议合规性。 \n2. **市场地位** \n 当前国内AI助手市场竞争激烈,百昌科技市场份额较小,但凭借垂直领域定制化服务形成差异化优势。行业数据显示,2024年AI助手市场规模同比增长28%,未来三年年均复合增长率预计达19%。 \n3. **研发投入** \n 公司研发团队占比超60%,近三年研发费用率约25%-30%,高于行业平均水平,已申请5项AI相关专利,技术储备集中在NLP领域。 \n\n---\n\n### **四、财务分析(模拟数据)** \n基于可比公司推算,百昌科技近三年财务表现如下(单位:万元): \n| **指标** | **2022年** | **2023年** | **2024年** | \n|------------------|------------|------------|------------| \n| 营业收入 | 8,200 | 12,500 | 18,000 | \n| 净利润 | -1,200 | 800 | 2,500 | \n| 毛利率 | 42% | 48% | 53% | \n| 资产负债率 | 65% | 58% | 50% | \n| 应收账款周转天数 | 75 | 68 | 60 | \n\n**关键分析:** \n- **盈利能力**:毛利率逐年提升,反映产品附加值增强;2024年净利润率13.9%,接近行业头部企业水平。 \n- **偿债能力**:资产负债率优化明显,流动比率从0.9提升至1.3,短期偿债压力缓解。 \n- **运营效率**:存货周转率从5.2次/年提升至6.8次/年,但应收账款周转天数仍高于行业均值(45天),需关注客户回款风险。 \n\n---\n\n### **五、法律与合规** \n1. **知识产权**:持有5项发明专利,未发现重大侵权诉讼记录。 \n2. **数据合规**:需核查用户数据采集与处理是否符合《个人信息保护法》要求。 \n3. **关联交易**:2024年向关联方采购技术服务占比12%,交易定价需评估公允性。 \n\n---\n\n### **六、风险提示** \n1. **技术风险**:AI模型迭代依赖持续研发投入,若技术滞后可能导致市场份额流失。 \n2. **市场风险**:头部企业(如百度、科大讯飞)垄断效应加剧,挤压中小厂商空间。 \n3. **财务风险**:经营性现金流2024年仅为1,200万元,低于净利润,盈利质量待提升。 \n\n---\n\n### **七、结论与建议** \n百昌科技在AI垂直领域展现较强技术落地能力,财务稳健性改善显著,但面临行业集中度提升的竞争压力。建议: \n- **股权投资**:可考虑战略注资,侧重技术合作与市场资源整合,估值参考PS(市销率)8-10倍。 \n- **债权合作**:短期授信需强化应收账款质押管理,控制敞口不超过净资产的30%。 \n- **风险缓释**:要求公司补充数据合规审计报告,并设立技术迭代对赌条款。 \n\n--- \n**报告说明**:以上分析基于公开信息与行业数据模拟,部分细节需进一步实地尽调验证。"
)
const content = `
<html xmlns:v="urn:schemas-microsoft-com:vml"
xmlns:o="urn:schemas-microsoft-com:office:office"
xmlns:w="urn:schemas-microsoft-com:office:word"
xmlns:m="http://schemas.microsoft.com/office/2004/12/omml"
xmlns="http://www.w3.org/TR/REC-html40">
<head>
<meta charset="UTF-8">
<meta name="ProgId" content="Word.Document">
<meta name="Generator" content="Microsoft Word 15">
<!-- 针对 Word 2003 的兼容性声明 -->
<!--[if gte mso 9]>
<xml>
<w:WordDocument>
<w:View>Print</w:View>
</w:WordDocument>
</xml>
<![endif]-->
<style>
@page {
margin: 0;
size: A4 portrait;
mso-page-orientation: portrait;
}
body {
margin: 0;
mso-line-height-rule: exactly;
}
.cover-page {
height: 100vh;
text-align:center;
display: flex;
justify-content: center;
align-items: center;
}
/* 分页符增强样式 */
.page-break {
page-break-after: always;
mso-page-break-after: always;
height: 0;
visibility: hidden;
}
</style>
</head>
<body>
<!-- 封面页 -->
<div class="cover-page">
<div> </div>
<div> </div>
<div> </div>
<div> </div>
<div> </div>
<div> </div>
<h1>法</h1>
<h1>律</h1>
<h1>尽</h1>
<h1>职</h1>
<h1>调</h1>
<h1>查</h1>
<h1>报</h1>
<h1>告</h1>
</div>
<!-- 分页符(双重保障) -->
<div class="page-break"></div>
<!--[if gte mso 9]>
<br clear="all" style="mso-ignore:all; page-break-before:always" />
<![endif]-->
<!-- 正文内容 -->
<div class="content">
${data}
</div>
</body>
</html>
`
// 生成并下载 .doc 文件
const blob = new Blob(["\ufeff", content], { type: "application/msword" })
const link = document.createElement("a")
link.href = URL.createObjectURL(blob)
link.download = "法律尽职调查报告.doc"
link.click()
URL.revokeObjectURL(link.href)
}