feat: 初始化项目

This commit is contained in:
zhangyi
2025-03-14 16:11:47 +08:00
commit f75076dee1
51 changed files with 58515 additions and 0 deletions
@@ -0,0 +1,95 @@
const fs = require('fs');
const path = require('path');
const cloud = require('wx-server-sdk');
const PDFDocument = require('pdfkit');
const responseMiddleware = require('../../common/responseMiddleware');
const createPDF = responseMiddleware(async () => {
const doc = new PDFDocument();
// 创建一个临时文件来存储PDF数据
const filePath = 'output/math.pdf';
// 将 PDF 文档写入到文件流中
const fileStream = fs.createWriteStream(filePath);
// 将PDF文档内容写入文件流
doc.pipe(fileStream);
// 注册中文字体
const fontPath = path.join(__dirname, '../../fonts', 'SimHei.ttf'); // path.join(__dirname, 'fonts', 'SimHei.ttf');
console.log('fontPath---:', fontPath);
// doc.registerFont(fontPath, { family: 'SimHei' });
doc.registerFont('SimHei', fontPath);
console.log(100);
// 使用中文字体
doc.font('SimHei').fontSize(24).text('你好,世界!');
console.log(111);
// 添加标题
doc.fontSize(24).text('数学题试卷', { align: 'center' });
// // 添加计算题
doc.fontSize(18).text('1. 计算:2 + 2 = ?', { align: 'left' });
// doc.font('SimHei')
// .fontSize(18)
// .text('2. 计算:5 * 3 = ?', { align: 'left', y: doc.y + 20 });
// 绘制正方形
doc.rect(200, 100, 50, 50).stroke();
doc.text('正方形', 100, 160);
doc.addPage({
margins: {
top: 50,
bottom: 50,
left: 72,
right: 72,
},
});
doc.font('SimHei').fontSize(24).text('新世界');
// // 绘制长方形
// doc.rect(200, 100, 100, 50).stroke();
// doc.font('SimHei').text('长方形', 200, 160);
// 结束PDF文档写入
doc.end();
// doc.pipe(writeStream);
// // 添加一些内容到 PDF 文档
// doc.fontSize(25).text('Hello, World!', 100, 100);
// // 结束 PDF 文档
// doc.end();
// // 监听文件流事件
// writeStream.on('finish', () => {
// console.log('PDF 文件已成功创建!');
// });
// writeStream.on('error', (err) => {
// console.error('创建 PDF 文件时出错:', err);
// });
// // 等待文件写入完成
// await new Promise((resolve, reject) => {
// fileStream.on('finish', resolve);
// fileStream.on('error', reject);
// });
// const uploadResult = await cloud.uploadFile({
// cloudPath: 'math.pdf', // 云存储中的文件路径
// filePath: filePath, // 本地临时文件路径
// });
// console.log('uploadResult---:', JSON.stringify(uploadResult));
// // 删除本地临时文件
// // fs.unlinkSync(filePath);
// fs.rmSync(filePath);
// // 返回文件ID
// return {
// fileID: uploadResult.fileID,
// };
});
// 使用中间件包装异步函数
module.exports = {
createPDF,
};
@@ -0,0 +1,13 @@
const cloud = require('wx-server-sdk');
const responseMiddleware = require('../../common/responseMiddleware');
// 使用中间件包装异步函数
module.exports = responseMiddleware(async (event, context) => {
// 获取基础信息
const wxContext = cloud.getWXContext();
return {
openid: wxContext.OPENID,
appid: wxContext.APPID,
unionid: wxContext.UNIONID,
};
});