pdfapi

Страница по адресу

Передайте ссылку в поле url, сервис откроет страницу в Chromium и вернёт её в виде PDF, как если бы вы сохранили её через печать в браузере. Доступен на тарифах Premium и Business.

Проверьте, что страница публичная#

Рендер открывает адрес без ваших cookie и заголовков, как обычный посетитель, который зашёл впервые на сайт. Закрытые страницы (с логином) по url не отрендерить: в PDF попадёт лишь форма входа. Сформируйте HTML на своей стороне и прикрепите его как html.

Отправьте адрес#

Адрес принимается только полный с https://. Пробелы по краям автоматически срезаются.

cURL
curl -X POST https://pdfapi.ru/api/v1/convert \
  -H "Authorization: Bearer $PDFAPI_KEY" \
  -H "Content-Type: application/json" \
  -d '{"source":"url","url":"https://example.com","options":{"landscape":true,"waitDelay":"1s"}}' \
  -o page.pdf

Позвольте скриптам дорисовать страницу#

Одностраничные приложения, графики и данные по fetch появляются не моментально, на помощь приходит waitDelay, который откладывает печать до 10 секунд. Начните с 1s и увеличивайте при необходимости.

Какие адреса запрещены#

Адреса, используемые во внутренних сетях, такие как localhost, 127.0.0.1, 10.x, 172.16–31.x, 192.168.x, 169.254.169.254, отклоняются с кодом и сообщением 400 url_not_allowed, даже если к ним ведёт обычное доменное имя.

Адрес без http:// или https:// тоже вернёт url_not_allowed. Библиотеки pdfapi предусмотрели такого рода сценарий, так что ловят такую ошибку ещё до запроса.

Если страница грузится долго#

Рендер ждёт не больше 30 секунд. Тяжёлая страница с десятками скриптов может не успеть — тогда придёт 504 render_timeout, страницы в таком случае не спишутся. Уберите лишнее через @media print в своем документе или отправьте HTML без скриптов.