Уменьшение размера файла печатных PDF-файлов в браузере - PullRequest
0 голосов
/ 31 августа 2018

Мне нужно мое веб-приложение (на основе реагирования) для создания PDF-файла. Этот файл будет содержать текст, таблицы и холст с сгенерированным содержимым.

Я решил использовать встроенные возможности печати браузера, чтобы добиться этого (я также попробовал pdfkit и реагировать-pdf , но решил, что делать макет с помощью HTML и CSS будет работать лучше).

Проблема заключается в том, что полученные PDF-файлы были относительно большими (более 10 МБ, а допустимый максимум - около 1 МБ).

Я пытался уменьшить размер, генерируя JPEG с canvas.toDataURL('image/jpeg', 0.8) и используя dataURL вместо canvas.

Это уменьшает размер файла в Chrome и Safari, но не в Firefox.

Используя Inkscape для импорта PDF, а затем экспортируйте его в формате SVG, а затем просмотрите его в текстовом редакторе (скажите, пожалуйста, что существует более простой рабочий процесс), я обнаружил, что Chrome и Safari действительно встраивают JPEG, но Firefox создает PDF с изображения, встроенные в файлы PNG.

Есть ли способ изменить это поведение в Firefox? Единственный другой вариант, который я вижу, - это использование библиотеки, такой как pdfkit, для создания PDF-файла из Javascript, что может стоить простой настройки макета.

Минимальный пример:

<!DOCTYPE html>
<html>
  <head></head>
  <body>
    <img src="https://upload.wikimedia.org/wikipedia/commons/a/a4/Forum_romanum_1880.jpg" />
  </body>
</html>

Печать в PDF дает менее 200 КБ в Google Chrome и более 1 МБ в Firefox

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...