Создание PDF файлов с помощью JavaScript

Я пытаюсь преобразовать XML-данные в PDF файлы с веб-страницы, и я надеялся, что смогу сделать это полностью в JavaScript. Мне нужно иметь возможность рисовать текст, изображения и простые фигуры. Мне бы очень хотелось сделать это полностью в браузере.

Ответ 1

Я только что написал библиотеку под названием jsPDF, которая генерирует PDF файлы, используя только Javascript. Он еще очень молод, и я скоро добавлю функции и исправления ошибок. Также появилось несколько идей об обходных решениях в браузерах, которые не поддерживают URI данных. Он лицензирован в соответствии с лицензией MIT.

Я столкнулся с этим вопросом, прежде чем начал писать его, и думал, что вернусь и дам вам знать:)

Создание PDF файлов в Javascript

Ответ 2

Еще одна библиотека javascript, которую стоит упомянуть, - pdfmake.

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

Ответ 3

Я поддерживаю PDFKit, который также поддерживает файл pdfmake (уже упоминавшийся здесь). Он работает как в Node, так и в браузере и поддерживает кучу вещей, которые нет в других библиотеках:

  • Встраивание подмножеств шрифтов с поддержкой unicode.
  • Множество элементов расширенного текстового макета (столбцы, разрывы страниц, полное разбиение строк в Юникоде, основной текст и т.д.).
  • Работа с еще большим шрифтом для расширенной типографии (лигатуры OpenType/AAT, контекстная замена и т.д.). Скоро: см. Ветку fontkit, если вы заинтересованы.
  • Больше графического материала: градиенты и т.д.
  • Построен с использованием современных инструментов, таких как браузер и потоки. Используется как в браузере, так и в node.

Ознакомьтесь с http://pdfkit.org/ для полного руководства, чтобы убедиться в том, что может сделать PDFKit. И для примера того, какие типы документов могут быть созданы, ознакомьтесь с документами как PDF сгенерированными из некоторых файлов Markdown с использованием самого PDFKit: http://pdfkit.org/docs/guide.pdf.

Вы также можете попробовать его интерактивно в браузере здесь: http://pdfkit.org/demo/browser.html.

Ответ 4

Еще один интересный проект - texlive.js.

Это позволяет вам скомпилировать (La) TeX в PDF в браузере.

Ответ 6

Даже если вы могли бы сгенерировать PDF файл в памяти в JavaScript, у вас все равно возникнет вопрос о том, как передать эти данные пользователю. Это трудно для JavaScript, чтобы просто нажать файл на пользователя.

Чтобы получить файл для пользователя, вам нужно будет отправить сервер, чтобы заставить браузер открыть диалог сохранения.

С учетом сказанного это действительно не так сложно для создания PDF файлов. Просто прочитайте спецификацию.