Как объединить PDF и картинки в один файл
Напрямую подмешать JPG к страницам PDF нельзя: это разные контейнеры. Работает связка из двух шагов — снимки собираются в отдельный PDF конвертером изображений, а затем этот PDF встаёт в общий список рядом с исходным документом и склеивается с ним. Порядок снимков внутри промежуточного файла задаёте вы, порядок кусков в итоговом — тоже.
Коротко о цифрах
- Без перекодирования
- PNG и JPEG
- Через канвас в PNG
- WebP, BMP, GIF
- HEIC
- вне Safari на технике Apple не декодируется, файл пропускается
- Непрочитанные файлы
- перечисляются по именам, а не одним числом
- Ни одного открытого файла
- ошибка, а не пустой PDF
Какие форматы браузер откроет
- PNG и JPEG вставляются напрямую — библиотека умеет только эти два формата, и они попадают в PDF без перекодирования.
- WebP, BMP и GIF проходят через канвас и пересохраняются в PNG. Картинка не портится, но вес растёт: PNG хранит фотографию заметно хуже, чем JPEG.
- HEIC с айфона за пределами Safari на технике Apple не декодирует ни один браузер. Такой файл будет пропущен, и вы увидите его имя в списке, а не общее «пропущено 3».
- Если не открылся ни один снимок, вы получите ошибку с объяснением, а не бодрое «Готово» и пустой PDF на ноль страниц.
Почему фотографии с телефона не переворачиваются
Снимок с телефона почти всегда лежит в файле горизонтально, а разворачивает его тег Orientation в EXIF. Часть браузеров применяет этот тег при декодировании, часть игнорирует, и проверять наличие нужного API бесполезно — он бывает и там, где тег не применяется.
Поэтому декодер проверяется по результату: в код зашит крошечный пробник — JPEG размером 2×1 пиксель с тегом Orientation 6. Если браузер вернул его как 1×2, значит поворот применён и ему можно доверять; если 2×1 — тег читается вручную и снимок доворачивается при вставке.
Порядок работы
- Соберите снимки в конвертере изображений: перетащите их пачкой и расставьте в нужном порядке.
- Выберите размер листа и поля, если хотите одинаковую рамку у всех страниц, и сохраните промежуточный PDF.
- Откройте объединение и добавьте туда исходный документ и только что полученный файл со снимками.
- Расставьте два файла в нужном порядке — фотографии в конец, в начало или между частями документа, если разбить его заранее.
- Объедините и, если пачка оказалась тяжёлой, прогоните итог через сжатие.
Частые вопросы
Можно ли вставить картинку в середину существующего PDF?
Да, но в три приёма: разделите документ по месту вставки, соберите снимок в отдельный PDF, затем склейте три куска в нужном порядке. Прямой вставки страницы в середину готового файла у нас нет.
Почему PDF из фотографий получился таким тяжёлым?
Снимок вставляется в исходном разрешении, а камера телефона выдаёт двенадцать и больше мегапикселей на кадр. Десяток таких кадров даёт файл на десятки мегабайт. Прогоните результат через сжатие, если файл нужно куда-то отправить.
Что делать с HEIC, если других копий снимка нет?
Пересохраните его в JPEG на самом устройстве: на айфоне это делается пунктом «Наиболее совместимые» в настройках камеры или простой отправкой снимка самому себе. Браузер на другой платформе HEIC не откроет в принципе.
Сохранится ли качество картинок после сборки?
У JPEG и PNG — полностью, они укладываются в PDF байт в байт без пересжатия. WebP, BMP и GIF пересохраняются в PNG, поэтому пикселы остаются те же, но файл занимает больше места, чем занимал исходник.