Объединить PDF на iPhone
На iPhone документы живут в приложении «Файлы», и системный выбор файлов в Safari открывает именно его. Отметьте несколько PDF через «Выбрать», расставьте их порядок перетаскиванием и запустите слияние — оно идёт во вкладке, без загрузки на сервер. Готовый файл Safari положит туда, куда настроены загрузки: по умолчанию это папка «Загрузки» в iCloud Drive, а не «Фото».
Коротко о цифрах
- Iterator в Safari
- появился в 18.4; ниже работает наш шим
- Promise.withResolvers
- отсутствует в Safari 16, заменяется шимом
- Где шимы
- в странице и отдельно внутри фонового воркера
- Куда падает результат
- папка загрузок Safari, по умолчанию в iCloud Drive
- Обработка
- целиком во вкладке, файл не покидает iPhone
Три места, где iPhone прячет ваши PDF
- «Файлы» → «На iPhone»: документы, сохранённые локально. Открываются мгновенно.
- «Файлы» → iCloud Drive: файл может быть выгружен в облако и лежать в виде заглушки со значком облака. Перед выбором его нужно скачать одним нажатием, иначе выбор затянется на время загрузки.
- Вложения в почте и мессенджерах: сначала «Сохранить в файлы», и только потом документ становится виден системному выбору.
- Приложение «Фото» здесь не участвует: PDF туда не попадают, и в списке галереи их не будет.
Что было со старыми айфонами и почему сейчас работает
Библиотека pdfjs шестой версии обращается к глобальному объекту Iterator на самом верхнем уровне модуля — не внутри функции, а при загрузке. В Safari этот объект появился только в версии 18.4. На всём, что старше, импорт библиотеки падал целиком, и умирал не один инструмент, а сразу все: страница просто ничего не делала.
Мы разложили это на шимы: Iterator, Promise.withResolvers, которого нет в Safari 16, и URL.parse. Файлы, которые грузят pdfjs, подключают шимы первой строкой, а у фонового воркера свой глобальный контекст, поэтому те же заглушки впрыскиваются и в него отдельно. Для слияния это особенно важно: миниатюры страниц рисует именно pdfjs.
Практический вывод: обновлять iOS ради этого сайта не нужно. Но если вкладка ведёт себя странно на очень старом устройстве, попробуйте закрыть и открыть её заново — шимы ставятся при загрузке страницы.
Порядок на iPhone
- Откройте инструмент слияния в Safari и нажмите на область загрузки.
- В открывшемся окне перейдите на вкладку «Обзор», найдите папку с документами и нажмите «Выбрать».
- Отметьте нужные PDF: значок облака у файла означает, что он ещё не скачан на устройство.
- Расставьте порядок перетаскиванием и запустите слияние.
- Нажмите на скачивание: Safari покажет стрелку загрузок в адресной строке.
- Откройте загруженный файл прямо из этой панели или найдите его позже в «Файлах», в папке загрузок Safari.
Частые вопросы
Почему выбранный из iCloud файл добавляется с задержкой?
Потому что в этот момент он скачивается из облака на устройство. Файлы со значком облака физически на iPhone отсутствуют, и системный выбор ждёт окончания загрузки, прежде чем передать документ странице.
Куда Safari сохраняет объединённый PDF?
В папку, указанную в настройках Safari для загрузок. По умолчанию это «Загрузки» в iCloud Drive, но её можно переключить на память самого iPhone, если вы работаете без интернета.
Нужно ли ставить приложение, чтобы склеить два PDF на айфоне?
Нет, всё делается в браузере. Более того, ставить нечего: страница выполняет слияние локально в вашей вкладке, а результат сохраняется системным механизмом загрузок Safari.
У меня старый iPhone на iOS 16, инструменты откроются?
Должны. Именно ради таких устройств в код добавлены заглушки для отсутствующих возможностей движка, включая тот самый Iterator, из-за которого раньше не грузился ни один инструмент.