Някога сте се чудили дали можем да отпечатаме почти файл във всеки форматчрез нашия JS код.

Не само да печатаме, можем също така да обединим множество pdf файлове и да ги запазим в един единствен PDF файл.

За да постигнем тази задача, имаме нужда от две JS библиотеки:

  1. Print.js: https://printjs.crabbly.com/
  2. PDF.js: https://mozilla.github.io/pdf.js/

Първо добавете CDN на двете библиотеки във вашия файл index.html

Ще извършим печат в различни категории:

  1. Отпечатайте един PDF файл
  2. Отпечатайте множество изображения
  3. Отпечатайте HTML съдържание
  4. Обединете различни PDF файлове и запазете или отпечатайте като един PDF файл

Отпечатайте един PDF файл

За отпечатване на един pdf файл. Не се нуждаем от PDF.js. Може да се направи с Print.jsт.е. можем да използваме глобален метод „printJS“, който може да приеме както URL адрес на pdf файл, така и данни в pdf файл base64.

Отпечатване на множество изображения

Отпечатването на множество изображения с Print.jsе много лесно. Всичко, което трябва да направите, е да предадете URL адресите на вашия файл с изображение в printableключ в масив в метода printJS

Отпечатайте HTML съдържание

За отпечатване на HTML съдържание всичко, от което се нуждаете, е валиден html код и го предайте в метода printJS

Слейте различни PDF файлове и запазете или отпечатайте като един PDF файл

Сега идва най-интересната част, т.е. да обедините множество pdf файлове и след това да предоставите опция за запазване или отпечатване на един файл. Имаме нужда от PDF.jsтук, за да конвертираме множество base64 PDF файлове в множество base64 PNG файлове. Итерирайте всички base64 PDF файлове и непрекъснато добавяйте в една променлива множество base64 PNG файлове.

Досега имаме всички наши base64 PNG файлове. Сега остава само да ги обедините и да ги запишете или отпечатате като един PDF файл. С помощта на PDF.jsтук, т.е.изобразете множество base64 PNG файлове в етикет за изображение в един HTML файли отпечатайте го в един един PDF файл. След като се отвори изскачащ прозорец за печат, можем просто да отпечатаме или да запазим pdf файл.

Можем да проверим как можем да постигнем резултати за всички горепосочени категории чрезhttps://stackblitz.com/edit/js-yp4nmr?file=index.html

Така че това са едно от малкото неща, които можем да постигнем с тези две библиотеки. Можем дори да отпечатаме Json данни или да визуализираме множество страници от множество PDF файлове независимо, за да конвертираме всяка страница от PDF в PNG и извършете действие според изискването. За да проучите повече, следвайте тяхната документация.

Справка:

  1. Print.js: https://printjs.crabbly.com/
  2. PDF.js: https://mozilla.github.io/pdf.js/