Я хочу сделать pdf текущей страницы, чтобы пользователь мог распечатать ее, но каждая страница динамична, поэтому мне потребуется своего рода генератор текста в pdf, чтобы он работал.

Это приложение ionic2, оно похоже на страницу рецептов, так что вы можете нажать на кнопку, и оно просто делает PDF из текста.

Ребята, вы знаете, как мне этого добиться?

2
amir hanif 24 Апр 2017 в 14:27

2 ответа

Лучший ответ

Ваша лучшая ставка, вероятно, это плагин:

https://github.com/cesarvr/pdf-generator

Присвойте разделу динамической страницы идентификатор типа «pdf-area», а затем выберите его в своем файле .ts следующим образом:

let content = document.getElementById('pdf-area').innerHTML

Затем вы можете превратить это в файл или распечатать его так

      cordova.plugins.pdf.htmlToPDF({
          data: content,
          type: "base64"
        },
          (success) => { 
           // you might have to turn the base64 into a binary blob to save it 
           // to a file at this point
        },

         (error) => console.log('error:', error);
   );

  }
4
Subodh Ghulaxe 29 Ноя 2018 в 16:20

Поместите ваш html в папку assets и укажите путь html следующим образом.

В моем случае этот путь работает: var file = 'file: ///android_asset/www/assets/lolc.html';

generatePdf(){
    const before = Date.now();

    document.addEventListener('deviceready', () => {
      console.log('DEVICE READY FIRED AFTER', (Date.now() - before), 'ms');
      var file = 'file:///android_asset/www/assets/lolc.html';
      cordova.plugins.pdf.fromURL(file,{
        documentSize: "A4",
        landscape: "portrait",
        type: "share"
      }),
        (sucess) => console.log('sucess: ', sucess),
        (error) => console.log('error:', error);
    });
  }
0
Subodh Ghulaxe 29 Ноя 2018 в 16:19