конвертировать html-форму в pdf в node js?

#javascript #node.js #pdf #puppeteer

#javascript #node.js #PDF #кукловод

Вопрос:

Я создал класс, который преобразует HTML-файл в pdf. Ниже приведен код

 class Invoice {  
  async html() {
    try {
      const data = {
        your: 'data'
      }
      console.log("Current directory:", __dirname); 

      const templatePath = Path.resolve('index.html')
      console.log(templatePath)
      const content = await ReadFile(templatePath, 'utf8')
      // compile and render the template with handlebars
      const template = Handlebars.compile(content)
      return template(data)
    } catch (error) {
      throw new Error('Cannot create invoice HTML template.')
    }
  }

  async pdf() {
    const html = await this.html()
    console.log(html)
    const browser = await Puppeteer.launch()
    const page = await browser.newPage()
    await page.setContent(html)
    return page.pdf()
  }
}
  

Но это считывает HTML-файл, расположенный на диске. Но я хочу создать pdf-файл HTML-формы в html-файле.

Пожалуйста, скажите мне, как я могу это сделать?

Комментарии:

1. an HTML form in an html file вы имеете в виду, что пользователь заполняет форму в браузере и отправляет ее?

2. да. после заполнения я могу сгенерировать из него PDF

3. Вместо того, чтобы жестко кодировать свой класс для использования this.html() , сделайте его параметром функции pdf(). Затем отправьте данные формы на сервер, создайте html и используйте существующую функцию.

4. можете ли вы сказать мне, как я могу это сделать?

5. Я в основном только что сделал, так что вам нужно быть более конкретным. Что именно вы хотели бы знать? const data В вашем коде есть a; все, что вам нужно сделать, это использовать вместо этого отправленные данные формы.

Ответ №1:

Вы пробовали jsPDF? Согласно их веб-сайту, jsPDF является ведущим клиентским решением HTML5 для создания PDF-файлов. Идеально подходит для билетов на мероприятия, отчетов и сертификатов.