Skip to content

Конвертер Base64 в PDF и файлы · PDF в Base64

Base64 в PDF онлайн: вставьте чистый Base64, data URI или весь JSON-ответ. Инструмент определит настоящий тип файла, покажет и скачает его, предупредит об обрезанном PDF. Есть и PDF в Base64. Ничего не загружается.

Без отслеживания Работает в браузере Бесплатно
Декодирование и кодирование выполняются целиком в вашем браузере. Ваш Base64 и файлы никуда не загружаются.

Как прочитано:

Что за файл в этом Base64? Посмотрите на начало

Каждый тип файла начинается с фиксированных «магических» байтов, поэтому его Base64 тоже начинается с фиксированных символов. Префиксы ниже вычислены из заголовков реальных файлов тем же движком, на котором работает этот инструмент.

Base64 начинается с Тип файла Магические байты (hex)
JVBERi0 PDF 25 50 44 46 2D
iVBORw0KGgoAAAANSUhEU PNG 89 50 4E 47 0D 0A 1A 0A 00 00 00 0D 49 48 44 52
/9j/ JPEG FF D8 FF
R0lGOD GIF 47 49 46 38
UEsDB ZIP / DOCX / XLSX / PPTX 50 4B 03 04
0M8R4KGxGu Office 97–2003 (DOC/XLS/PPT) D0 CF 11 E0 A1 B1 1A E1
H4sI Gzip 1F 8B 08
UklGR RIFF (WebP / WAV / AVI) 52 49 46 46
SUQz MP3 (ID3) 49 44 33
e1xydG RTF 7B 5C 72 74 66
Поведение сверено с RFC 4648, RFC 2045 и RFC 2397, а также с сигнатурами файлов PDF, PNG, ZIP и Office. — Команда инженеров Go Tools · Sep 30, 2026

Написано и проверено инженерами, которые разрабатывают инструменты кодирования Go Tools. Каждая длина, префикс и пример на этой странице получены движком самой страницы и проверены автоматическими тестами.

Base64 в PDF — коротко

Какой файл закодирован в Base64, который начинается с JVBERi0?

JVBERi0 = PDF PDF. Любой PDF начинается с байтов `%PDF-`, а в Base64 они превращаются в `JVBERi0`. `iVBORw0KGgo` — это PNG, `/9j/` — JPEG, `UEsDB` — ZIP, в том числе DOCX и XLSX.

Насколько Base64 больше исходного файла?

+33,3 % На каждые 3 байта приходится 4 символа, то есть примерно на 33,3 % больше: PDF размером 1 МБ (1 048 576 байт) превращается в 1 398 104 символа. С переносом строки каждые 76 символов, как в почтовых вложениях, выходит 1 434 896 символов, или на 36,8 % больше.

Что такое PDF в Base64?

Base64 записывает произвольные байты всего 64 безопасными текстовыми символами (A–Z, a–z, 0–9, +, /), а = служит дополнением. Каждые 3 байта превращаются в 4 символа. Благодаря этому двоичный файл вроде PDF можно передать по каналам, которые понимают только текст: в поле JSON, элементе XML, теле письма, текстовом столбце базы данных. Конвертация Base64 в PDF — обратная операция: символы снова превращаются в байты и сохраняются с расширением .pdf. Проблема в том, что настоящий Base64 редко приходит чистым: с префиксом data:, JSON-экранированием, переносами строк или другим алфавитом, и многие конвертеры молча выдают файл, который не открывается.

%PDF-1.4          → bytes 25 50 44 46 2D 31 2E 34
JVBERi0xLjQ=      → the same bytes in Base64
data:application/pdf;base64,JVBERi0xLjQ=   → data URI form

Возможности

Вставляйте как есть

Понимает data URI, JSON-экранирования \/ и \n, кавычки, переносы строк MIME, URL-safe - _, %2B %2F из URL, заголовки PEM и недостающее дополнение = — и показывает каждый выполненный шаг.

Принимает весь JSON-ответ

Вставьте {"code":0,"data":{"file":"JVBERi0…"}} целиком. Берется самое длинное поле, похожее на Base64, и показывается его путь (data.file), так что видно, какое поле декодировано.

Настоящий тип по магическим байтам

PDF, PNG, JPEG, GIF, WebP, DOCX, XLSX, PPTX, ZIP, GZIP, MP3, MP4 и еще более 40 форматов распознаются по первым байтам. Скачанный файл получает правильное расширение, даже если префикс утверждает другое.

Объясняет, почему файл не открывается

Предупреждает о PDF без %%EOF (обрезан при копировании или ограничением длины столбца), о Base64, закодированном дважды, о hex, вставленном вместо Base64, о данных в gzip и о зашифрованных PDF.

Предпросмотр на странице

PDF открывается во встроенном просмотрщике браузера, изображения и SVG отображаются, текст и JSON показываются как текст. HTML никогда не отрисовывается — только его исходный код, иначе он выполнился бы на этой странице.

PDF или любой файл в Base64

Перетащите файл до 50 МБ и получите чистый Base64 или data URI, при желании в варианте URL-safe или с переносом по 76 символов, с точным приростом размера.

Base64 в PDF на Python, Java, JavaScript и других языках

Python

base64.b64decode

open('out.pdf', 'wb').write(base64.b64decode(s)). Для - и _ используйте urlsafe_b64decode; b64decode игнорирует переносы строк, если не передать validate=True.

Java

java.util.Base64

Files.write(Path.of("out.pdf"), Base64.getMimeDecoder().decode(s)). getDecoder() отвергает переносы строк; getUrlDecoder() нужен для - и _.

Node.js

Buffer

fs.writeFileSync('out.pdf', Buffer.from(s, 'base64')). Buffer принимает оба алфавита и игнорирует пробельные символы, но и любые другие недопустимые символы молча пропускает, а не выбрасывает ошибку, поэтому проверьте, что результат начинается с %PDF-.

JavaScript в браузере

atob / Uint8Array.fromBase64

Прежде чем создавать Blob, соберите Uint8Array. Uint8Array.fromBase64() — более новый встроенный метод; проверьте его поддержку в целевых браузерах.

PHP

base64_decode

file_put_contents('out.pdf', base64_decode($s, true)). Передайте true для строгого режима, иначе недопустимые символы молча отбрасываются.

C#

Convert.FromBase64String

File.WriteAllBytes("out.pdf", Convert.FromBase64String(s)). Пробельные символы допускаются, - и _ — нет.

Командная строка

base64 -d / certutil

macOS и Linux: base64 -d < in.txt > out.pdf. Windows: certutil -decode in.txt out.pdf.

Примеры Base64 в PDF

Чистый Base64 от PDF

JVBERi0xLjQKMSAwIG9iago8PCAvVHlwZSAvQ2F0YWxvZyAvUGFnZXMgMiAwIFIgPj4K…
PDF · версия 1.4 · скачивается как file.pdf

Начинается с JVBERi0, то есть с %PDF-. Очищать нечего, строка декодируется как есть.

Строка, скопированная из JSON-ответа

"data:application\/pdf;base64,JVBERi0xLjQK…"
Как прочитано: удалены обрамляющие кавычки → сняты JSON-экранирования → удален префикс data URI (application/pdf)

json_encode в PHP и некоторые Java-сериализаторы записывают / как \/. Если вставить такую строку в декодер, который не снимает экранирование, обратная косая черта окажется недопустимым символом.

Весь ответ API

{"code":0,"data":{"name":"invoice.pdf","file":"JVBERi0xLjQK…"}}
Как прочитано: из JSON взято поле data.file

Вырезать строку вручную не нужно. Берется самое длинное поле, похожее на Base64, и показывается его путь.

Помечен как PDF, а на деле PNG

data:application/pdf;base64,iVBORw0KGgoAAAANSUhEUgAA…
Предупреждение: в data URI указан application/pdf, но по байтам это PNG. Сохранено как file.png

Многие конвертеры записали бы .pdf, который не откроет ни одна программа. Магические байты важнее пометки.

Вставлен hex вместо Base64

255044462d312e370a…
Предупреждение: похоже на шестнадцатеричную строку — если читать как hex, это PDF. [Декодировать как hex]

Шестнадцатеричные цифры — допустимые символы Base64, поэтому декодирование Base64 не падает, а молча выдает мусор. 25 50 44 46 — это %PDF.

Как конвертировать Base64 в PDF

  1. 1

    Вставьте Base64 как есть

    Чистый Base64, data:application/pdf;base64,…, строку, скопированную из JSON с экранированием \/, или весь ответ API. Очень длинные строки удобнее не вставлять, а загрузить кнопкой Открыть файл .txt.

  2. 2

    Проверьте, как строка прочитана

    Строка под полем перечисляет каждый шаг очистки: удален префикс, сняты экранирования, добавлено дополнение, взято поле из JSON. Если что-то не так, ошибка укажет конкретный символ и его позицию.

  3. 3

    Посмотрите на тип и предупреждения

    Значок показывает тип, определенный по магическим байтам файла. Желтое предупреждение появляется, если это на самом деле не PDF, если data URI указывает неверный тип или если PDF обрывается до %%EOF.

  4. 4

    Просмотрите и скачайте

    PDF открывается во встроенном просмотрщике браузера, изображения и текст показываются прямо на странице. При желании переименуйте файл и нажмите Скачать. Для обратного направления переключитесь на PDF / файл → Base64 и перетащите файл.

Почему PDF из Base64 не открывается: типичные ошибки

Префикс data URI декодируется вместе с данными

data:application/pdf;base64, не входит в Base64. Если его оставить, декодер либо выбросит ошибку (: и ; недопустимы), либо, если он нестрогий, испортит первые байты, и файл перестанет начинаться с %PDF-.

✗ Неверно
base64.b64decode(value)  # value = 'data:application/pdf;base64,JVBERi0…'
✓ Верно
b64 = value.split(',', 1)[1] if value.startswith('data:') else value
pdf = base64.b64decode(b64)

Декодированные байты записываются как текст

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

✗ Неверно
fs.writeFileSync('out.pdf', Buffer.from(b64, 'base64').toString())
✓ Верно
fs.writeFileSync('out.pdf', Buffer.from(b64, 'base64'))

Строгий декодер получает Base64 с переносами строк

Base64.getDecoder() в Java отвергает переносы строк. Base64 из писем или из base64 в Linux разбит на строки по 76 символов. Используйте MIME-декодер или сначала удалите пробельные символы.

✗ Неверно
byte[] pdf = Base64.getDecoder().decode(wrapped);  // IllegalArgumentException
✓ Верно
byte[] pdf = Base64.getMimeDecoder().decode(wrapped);

URL-safe Base64 передан стандартному декодеру

JWT и многие параметры URL используют - и _ вместо + и / и отбрасывают дополнение =. Стандартный декодер их отвергнет или выдаст не те байты.

✗ Неверно
base64.b64decode(token_part)  # contains - and _
✓ Верно
base64.urlsafe_b64decode(token_part + '=' * (-len(token_part) % 4))

Результат atob() используется как текст

В браузере atob возвращает двоичную строку — один символ на байт. Если передать ее в new Blob([str]), она будет закодирована в UTF-8, и каждый байт больше 127 превратится в два. Сначала скопируйте ее в Uint8Array.

✗ Неверно
new Blob([atob(b64)], { type: 'application/pdf' })
✓ Верно
const bytes = Uint8Array.from(atob(b64), c => c.charCodeAt(0));
new Blob([bytes], { type: 'application/pdf' })

Обрезанная строка

PDF заканчивается на %%EOF. Если Base64 обрезал столбец VARCHAR, ограничение длины строки лога или неполное копирование, файл декодируется, но программы просмотра показывают ошибку или часть страниц пропадает. Сравните длину с тем, что отправил источник.

✗ Неверно
SELECT LENGTH(pdf_b64) FROM docs;  -- 65535: suspiciously round
✓ Верно
ALTER TABLE docs MODIFY pdf_b64 LONGTEXT;  -- or store the bytes in a BLOB

Когда нужен перевод Base64 в PDF

API возвращает PDF в Base64
Сервисы выставления счетов, электронной подписи и печати этикеток часто отдают документы внутри JSON. Вставьте ответ и проверьте документ до того, как писать код для его сохранения.
Отладка PDF, который не открывается
Если сохраненный файл пустой или поврежден, вставьте сюда тот же Base64. Инструмент скажет, обрезан ли он, закодирован ли дважды, PDF ли это вообще — или с ним всё в порядке, и тогда ошибка в том, как ваш код записывает файл.
Отправка файла в JSON-запросе
Многие endpoint для загрузки ждут {"filename": …, "content": "<base64>"}. Закодируйте файл здесь и соберите тестовый запрос для Postman или cURL.
Встраивание файла в HTML, CSS или письмо
Получите data URI для встроенной ссылки на PDF, шрифта или небольшого изображения либо Base64 с переносом по 76 символов для MIME-части письма.
Извлечение вложений из логов и баз данных
Файлы, сохраненные в текстовом столбце или выведенные в лог, можно сразу достать обратно, а отсутствие %%EOF подскажет, что столбец или строка лога оказались слишком короткими.

Как устроено кодирование файлов в Base64

Почему Base64 на 33 % больше
Каждый символ несет 6 бит, поэтому 3 байтам (24 бита) нужно 4 символа. Длина с дополнением равна 4 × ⌈n ÷ 3⌉: 100 КБ (102 400 байт) превращаются в 136 536 символов. Перенос MIME добавляет CRLF после каждых 76 символов, поэтому 1 МБ дает 1 434 896 символов вместо 1 398 104.
Стандартный и URL-safe алфавиты
RFC 4648 определяет два алфавита, которые различаются только последними двумя символами: + / (стандартный, раздел 4) и - _ (безопасный для URL и имен файлов, раздел 5). В URL-safe Base64 дополнение = обычно опускают. Если в одной строке встречаются оба варианта, ее правили вручную или склеили.
Дополнение и невозможные длины
Дополнение = делает длину кратной 4. Без него остаток 2 или 3 можно восстановить; остаток 1 невозможен ни для какого корректного Base64 — символ потерялся или добавился лишний. = в середине обычно означает, что две строки склеили.
Тип определяют магические байты
Файл объявляет свой формат в первых байтах: %PDF- у PDF, 89 50 4E 47 у PNG, 50 4B 03 04 у форматов на основе ZIP, таких как DOCX и XLSX. Эти байты задают первые символы Base64, поэтому тип можно прочитать еще до декодирования — см. таблицу в инструменте.
Как обнаруживается обрезанный PDF
PDF заканчивается на %%EOF. Если маркера нет в последних 1 024 байтах, файл почти наверняка обрезан. Заголовок может начинаться со смещением до 1 024 байт; большинство программ такие файлы все же открывают, поэтому это отмечается, но файл не отвергается.

Как правильно передавать файлы в Base64

Передавайте MIME-тип и имя файла вместе с данными
Base64 не несет ни имени, ни типа. Кладите их рядом ({"filename": "invoice.pdf", "mime": "application/pdf", "content": "…"}) или используйте data URI, чтобы получателю не пришлось угадывать.
Проверяйте магические байты на стороне получателя
Перед сохранением убедитесь, что декодированные байты начинаются с %PDF-. Одна строка кода ловит не то поле, двойное кодирование и страницы ошибок, вернувшиеся в виде Base64.
Для больших файлов лучше multipart или ссылка
Base64 увеличивает размер на треть, и вся строка должна поместиться в памяти. Начиная с нескольких мегабайт, multipart/form-data или предподписанная ссылка на скачивание легче для обеих сторон.
Храните в базе байты, а не Base64
Столбец BLOB/bytea на треть меньше, и его нельзя молча обрезать, как VARCHAR. Кодируйте в Base64 только на границе API.

Base64 в PDF — частые вопросы

Как конвертировать Base64 в PDF?
Вставьте Base64 в поле на этой странице. Строка декодируется сразу, PDF открывается в предпросмотре, а кнопка Скачать сохраняет его как .pdf. Префикс data:application/pdf;base64,, кавычки, переносы строк и JSON-экранирования можно не убирать — они удаляются автоматически.
Почему декодированный PDF не открывается?
Обычные причины: префикс data: декодирован вместе с данными; байты записаны как текст, а не в двоичном режиме; строка обрезана (в конце нет %%EOF); Base64 закодирован дважды; или это вообще не PDF — например, PNG или сообщение об ошибке в JSON. Вставьте сюда ту же строку: для каждого из этих случаев есть отдельное предупреждение.
Загружается ли мой файл на сервер?
Нет. Декодирование, определение типа, предпросмотр и кодирование выполняются в вашем браузере на JavaScript. Ничего из вставленного или перетащенного никуда не отправляется, поэтому инструмент безопасен для счетов, договоров и документов, удостоверяющих личность.
Как узнать, какой файл закодирован в Base64?
Посмотрите на начало: JVBERi0 — это PDF, iVBORw0KGgo — PNG, /9j/ — JPEG, R0lGOD — GIF, UEsDB — ZIP (а значит, и DOCX, XLSX, PPTX), H4sI — gzip. Инструмент читает магические байты декодированных данных, показывает тип и сохраняет файл с подходящим расширением.
Можно ли конвертировать Base64 в Word, Excel, изображение или ZIP?
Да. Декодировать можно файл любого типа, расширение определяется по содержимому. DOCX, XLSX и PPTX распознаются внутри контейнера ZIP, а старые файлы DOC/XLS — как Office 97–2003. Изображения, аудио и видео доступны для предпросмотра, остальные типы сразу скачиваются.
Как конвертировать PDF в Base64?
Откройте вкладку PDF / файл → Base64 и перетащите PDF. Выберите чистый Base64 или data URI, при желании URL-safe или с переносом по 76 символов, затем скопируйте результат или скачайте его как файл .txt.
Чем Base64 отличается от data URI?
Data URI — это Base64 с заголовком, в котором указан тип: data:application/pdf;base64,JVBERi0…. Браузер может открыть его напрямую как ссылку или src. API обычно ждут только часть Base64 после запятой.
Почему появляется сообщение «Это не PDF»?
Потому что декодированные байты не начинаются с %PDF-. Показанный тип — это то, чем байты являются на самом деле. Частые сюрпризы: скан в PNG или JPEG, DOCX, ZIP с несколькими PDF внутри или сообщение об ошибке в JSON либо HTML, которое закодировали в Base64 вместо документа.
Что значит «в конце нет маркера %%EOF»?
Каждый PDF заканчивается маркером %%EOF. Если его нет, Base64 почти наверняка обрезан: скопирован не полностью, урезан столбцом базы данных, например TEXT в MySQL (65 535 байт), или укорочен ограничением длины строки лога. Получите строку целиком заново: недостающие данные декодирование не восстановит.
Что значит «декодировано повторно»?
Декодированные данные сами оказались текстом в Base64. Так бывает, когда значение один раз кодирует ваш код, а второй раз — фреймворк или HTTP-клиент. Инструмент декодирует внутренний слой, только если в нем оказывается распознаваемый файл, поэтому обычный текст по ошибке не распаковывается.
Есть ли ограничение по размеру?
Вставленный текст может занимать до 100 МБ, а файлы для кодирования — до 50 МБ. Для очень длинного Base64 кнопка Открыть файл .txt работает быстрее вставки. В предпросмотре текста показываются первые 100 000 символов; скачанный файл всегда полный.
Почему предпросмотр PDF на телефоне пустой?
Мобильные браузеры по-разному обрабатывают встроенные PDF: некоторые показывают только первую страницу или ничего. Используйте Открыть в новой вкладке или Скачать — сам файл от этого не страдает.

Похожие инструменты

Все инструменты →

Таблица ASCII и конвертер

Кодирование и форматирование

Полная таблица ASCII: 128 символов в десятичном, шестнадцатеричном, восьмеричном и двоичном виде плюс конвертер текста и кодов. Управляющие символы — с escape-последовательностями, caret-записью и тем, где их встретить.

Бесплатный генератор штрихкодов — EAN-13, UPC-A и Code 128

Кодирование и форматирование

Создавайте EAN-13, UPC-A, Code 128, Code 39 и ещё 11 типов штрихкодов — экспорт в SVG или PNG для печати. Введите 12 цифр, и контрольная цифра подставится сама; ошиблись — страница назовёт, какая цифра должна быть.

Base64 декодер и кодировщик

Кодирование и форматирование

Декодирование и кодирование Base64 онлайн бесплатно. Преобразование в реальном времени с полной поддержкой UTF-8 и эмодзи. Полная приватность — работает в браузере. Без регистрации.

Конвертер Base64 в изображение

Кодирование и форматирование

Декодируйте строку Base64 или data URI обратно в изображение прямо в браузере. Предпросмотр, размеры и MIME, затем скачивание как PNG, JPG, GIF, SVG. Без загрузки.

Конвертер CSV в JSON

Кодирование и форматирование

Конвертируйте CSV в JSON в браузере. RFC 4180, определение типов, заголовок, безопасность больших целых. 100% приватно, без загрузки.

Конвертер кодировок и восстановление кракозябр

Кодирование и форматирование

Вставьте кракозябры — и получите исходный текст. Перебираются все правдоподобные цепочки кодировок: UTF-8, Windows-1251, GBK, Big5, Shift_JIS, EUC-KR. Бесплатно, локально в браузере.