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


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

6 208

6 ответов:

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

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

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

пример создания PDF-файла "Hello World".

// Default export is a4 paper, portrait, using milimeters for units
var doc = new jsPDF()

doc.text('Hello world!', 10, 10)
doc.save('a4.pdf')
<script src="https://cdnjs.cloudflare.com/ajax/libs/jspdf/1.3.5/jspdf.debug.js"></script>

еще одна библиотека javascript стоит упомянуть .

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

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

  • встраивание подмножеств шрифтов с поддержкой юникода.
  • много продвинутых текстовых макетов (столбцы, разрыв страницы, полный разрыв строки unicode, базовый форматированный текст и т. д.).
  • работа над еще большим количеством шрифтов для расширенной типографии (OpenType / AAT лигатуры, контекстуальная подстановка и др.). Скоро: смотрите ветку fontkit, если вам интересно.
  • больше графических материалов: градиенты и т. д.
  • построенный с современными инструментами, такими как browserify и streams. Можно использовать как в браузере, так и в узле.

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

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

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

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

вы можете использовать эту бесплатную услугу, добавив ссылку, которая создает pdf из любого url (например,http://www.phys.org):

http://freehtmltopdf.com/?convert=http%3A%2F%2Fwww.phys.org&size=US_Letter&orientation=portrait&framesize=800&language=en

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

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

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