我编写了一个使用puppeteer加载网页并将其写入pdf的脚本。非常适合在没有链接的页面上使用。它也可以在https://nytimes.com上正常运行。生成的pdf具有作为可单击链接的链接,但是如果我在https://myballard.com(我的社区博客)上使用它,则所有链接都将显示为文本,后跟括号中的URL。例如
第34和市场的车辆爆炸和起火 (https://www.myballard.com/2019/05/24/vehicl e-explosion-and-re-at-34th-and-market /)
文章标题应该链接到该URL,并且该URL不应该显示。
MyBallard.com和NYTimes.com实际上不是我要打印为pdf的URL,但是它们是证明问题的公共新闻站点。
有一次,我认为这是关于HTTP vs https的,因为MyBallard允许使用http,但是这似乎根本不是问题。当我搜寻有关伪造者和链接的问题时,我唯一看到的就是一些链接中带有#的问题(似乎已解决)。
const puppeteer = require('puppeteer');
(async () => {
const browser = await puppeteer.launch({headless: true});
const page = await browser.newPage();
var url = process.argv[2];
var outputFile = process.argv[3];
try {
await page.goto(url);
await page.pdf({path: outputFile,
width: "8.5in",
height: "11in"});
}
catch (error) {
console.log(error)
}
await browser.close();
}
)();
错误链接显示在此生成的pdf中:
nodejs simple-print-url-to-pdf.js https://www.myballard.com bad_link_example.pdf
良好的链接显示在此生成的pdf中:
nodejs simple-print-url-to-pdf.js https://www.nytimes.com good_link_example.pdf
没有显示错误消息。但是使用NYTimes PDF,我可以单击生成的PDF的链接。它看起来也不错(或相对不错,因为未将NYTimes网站设置为以8.5 x 11的纸张打印)。在MyBallard网站上,我得到了链接标题,后跟括号中的a href中的URL,如上所示。