oicontest
Version:
OI Contest Management Tool
36 lines (30 loc) • 1.45 kB
text/typescript
// ⚠️ 本命令已弃用。建议使用 `oicontest genhtml` 生成 HTML 后用浏览器打印为 PDF。
// 该命令因不能很好地生成带数学公式的 PDF,已不再推荐使用。
//
// Deprecated: Use `genhtml` and print to PDF via browser instead.
// src/commands/genpdf.ts
import { Command } from 'commander';
import { loadConfig, saveConfig } from '../lib/config';
import { generatePDF } from '../lib/pdf';
import chalk from 'chalk';
export const genPDFCommand = new Command('genpdf')
.description('(已弃用)生成 PDF(不推荐,建议用 genhtml 生成 HTML 后用浏览器打印 PDF)\n(Deprecated: Use genhtml and print to PDF via browser instead)')
.action(async () => {
try {
const config = await loadConfig(process.cwd());
if (config.problems.length === 0) {
console.error(chalk.red('Error: No problems added to contest'));
process.exit(1);
}
//console.log(chalk.bold.blue('\n📄 Generating Contest PDF\n'));
const pdfPath = await generatePDF(config);
// Update status
config.status.pdfGenerated = true;
await saveConfig(process.cwd(), config);
//console.log(chalk.green.bold('\n✅ PDF generated successfully!'));
console.log(chalk.cyan(` Location: ${pdfPath}`));
} catch (err:any) {
console.error(chalk.red(`Error generating PDF: ${err.message}`));
process.exit(1);
}
});