Я написал скрипт, который использует puppeteer для загрузки веб-страницы и записи ее в pdf.Хорошо работает на страницах, на которых нет ссылок.Это также работает на https://nytimes.com просто отлично.В сгенерированном pdf есть ссылки в виде кликабельных ссылок. Но если я использую его на https://myballard.com (мой блог по соседству), все ссылки отображаются в виде текста, за которым следует URL в скобках.например,
Взрыв и пожар автомобиля на 34-й улице и Market (https: /www.myballard.com/2019/05/24/vehicl e-взрыв-и-re-at-34th-and-market/)
Название статьи должно содержать ссылку на этот URL, а URL не должен отображаться.
MyBallard.com и NYTimes.com на самом деле не те URL, которые я пытаюсь использоватьпечатать в pdf, но это публичные новостные сайты, которые демонстрируют проблему.
В какой-то момент я подумал, что речь идет о http против 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 я получаю заголовок ссылки, за которым следует URL-адрес из ссылки в скобках, как показано выше.