ES6文件转PDF:高效将现代JavaScript代码转为文档格式

ES6文件转PDF:告别代码散落,优雅呈现现代JavaScript

在开发过程中,我们经常需要将代码分享、归档或打印。ES6(ECMAScript 6)作为现代JavaScript的主流版本,其简洁语法和模块特性深受喜爱。但如何将ES6文件(如.js或.mjs)转换为专业的PDF文档?本文为你揭秘多种高效途径。

为什么需要ES6转PDF?

常见场景包括:

  • 代码评审:将代码以PDF格式发送给团队,保持格式统一。
  • 教学演示:将ES6代码截图或高亮,作为教材附件。
  • 归档备份:将重要代码段保存为不可轻易编辑的PDF。

方法一:使用Node.js + Puppeteer(推荐)

Puppeteer可以控制Headless Chrome,将HTML页面转为PDF。我们先将ES6代码嵌入HTML并高亮,再生成PDF。

步骤:

  1. 安装Puppeteer:npm install puppeteer
  2. 创建转换脚本:
const puppeteer = require('puppeteer');
const fs = require('fs');

const es6Code = fs.readFileSync('app.js', 'utf-8');
const html = `<!DOCTYPE html>
<html>
<head>
<style>
  pre { background: #f4f4f4; padding: 10px; font-size: 14px; }
  code { font-family: Consolas, monospace; }
</style>
</head>
<body>
<pre><code>${es6Code}</code></pre>
</body>
</html>`;

(async () => {
  const browser = await puppeteer.launch();
  const page = await browser.newPage();
  await page.setContent(html);
  await page.pdf({ path: 'output.pdf', format: 'A4' });
  await browser.close();
})();

此方法可保留代码格式,支持高亮库如Prism.js。

方法二:使用pdfkit直接生成PDF

pdfkit是纯JavaScript PDF生成库,适合对布局精细控制。

const PDFDocument = require('pdfkit');
const fs = require('fs');

const doc = new PDFDocument();
doc.pipe(fs.createWriteStream('output.pdf'));
doc.font('Courier').fontSize(12);
const code = fs.readFileSync('app.js', 'utf-8');
doc.text(code, 50, 50);
doc.end();

注意:pdfkit对中文支持需额外字体。

方法三:在线转换工具

对于简单需求,可使用在线工具如Code Beautify或Online-convert.com,上传.js文件即可转PDF。但隐私敏感代码不建议。

高级技巧:语法高亮与行号

使用Puppeteer结合highlight.js:

const hljs = require('highlight.js');
const highlighted = hljs.highlight(es6Code, { language: 'javascript' }).value;
const html = `<pre><code class="javascript">${highlighted}</code></pre>`;

并添加CSS使行号显示。

总结

ES6文件转PDF并非难事,选择最适合你的工具:Puppeteer适合高保真展示,pdfkit适合精细控制,在线工具适合快速转换。现在就让你的代码以PDF形式优雅传播吧!