Перейти к содержимому
pdftools.kz
Популярное

Как перевести PDF в Word

Откройте PDF → Word и загрузите файл — он уйдёт на наш сервер, где библиотека pdf2docx соберёт из него .docx и вернёт результат, а обе временные копии удалятся сразу после ответа. Условие одно: в документе должен быть текстовый слой, иначе вы получите отказ с объяснением — распознавания у нас нет. Вёрстка при этом сдвинется почти наверняка, и виноват здесь формат, а не конвертер.

Сервер · удаление сразудо 25 МБбез регистрации

Коротко о цифрах

Где обрабатывается
на сервере, pdf2docx 0.5.8 отдельным сервисом
Предел размера
25 МБ на файл
Предел ожидания
110 секунд на конвертацию
Порог текстового слоя
в среднем 30 символов на страницу
Временные файлы
удаляются сразу, сторож выметает остатки через 15 мин
Лимит запросов
10 конвертаций за 10 минут с одного адреса

Куда уходит файл

Это одна из девяти операций, которые у нас идут на сервере: pdf2docx — питоновская библиотека, и мы держим её отдельным сервисом рядом с сайтом. Ваш PDF доезжает до сервера в Алматы, кладётся во временный файл, конвертируется и удаляется — вместе с получившимся .docx — в блоке finally, то есть и при ошибке тоже.

Единственная лазейка, через которую файл мог бы пережить запрос, — убитый по таймауту процесс: SIGKILL не даёт отработать finally. Поэтому в сервисе крутится сторож, который каждые пять минут выметает всё старше пятнадцати минут. Проверить это можно прямо в репозитории, в pdf2docx-service/app.py, а не поверить на слово.

Почему вёрстка не переносится один в один

В PDF нет абзацев. Внутри страницы лежат команды «нарисовать вот эти глифы вот такой матрицей преобразования» — координаты, кегль, шрифт. Строка «Договор №14» может быть одним объектом, а может пятью, разбросанными по X. Word же устроен наоборот: у него есть абзац, у абзаца — отступы и интервалы, а текст в нём переливается сам.

Значит, конвертер обязан угадать: вот эти куски были одной строкой, эти строки — одним абзацем, эти линии — рамкой таблицы, а вот здесь просто два пробела, а не колонка. Угадывает он по расстояниям между координатами. На простом отчёте с одной колонкой угадывает почти всегда; на журнальной вёрстке в три колонки с врезками — почти никогда.

Отсюда практический вывод: чем проще исходная страница, тем ближе результат к оригиналу. И отсюда же — почему не бывает конвертера «без потерь». Потери заложены в постановку задачи: восстановить структуру, которой в файле нет.

Когда конвертация не начнётся вовсе

  • В документе нет текста: проверяется средняя плотность по всему файлу, порог — 30 символов на страницу. Скан, у которого «текст» это только номер страницы в углу, отсеивается, и вы видите сообщение про отсутствующий текстовый слой, а не пустой .docx.
  • PDF под паролем: сервис читает признак шифрования до конвертации и отвечает отказом с кодом ENCRYPTED. Сначала снимите пароль.
  • Файл повреждён настолько, что не открывается парсером, — тоже отдельный код, CORRUPT, а не «попробуйте позже».
  • Файл больше 25 МБ или запросов с одного адреса больше десяти за десять минут — ограничение снимается временем ожидания, а не повтором.
  • Одновременно сервер держит две конвертации; если в очереди больше пяти, приходит честное «занято» вместо зависшей вкладки.

Порядок работы

  1. Проверьте, выделяется ли текст в исходном PDF. Не выделяется — это скан, и конвертировать его нечем.
  2. Откройте PDF → Word и перетащите файл в окно загрузки.
  3. Дождитесь ответа: на среднем документе это единицы секунд, предел ожидания — 110 секунд.
  4. Откройте .docx и первым делом посмотрите на таблицы и колонтитулы: они ломаются раньше всего.
  5. Если нужен только текст, а не вёрстка, возьмите извлечение текста — оно работает в браузере и не отправляет файл никуда.

Частые вопросы

Почему скан нельзя перевести в Word?

Потому что в нём нет букв — есть картинка страницы. Достать оттуда текст может только распознавание, отдельная операция со своей моделью и своими ошибками. У нас её нет, поэтому сервис отказывает сразу, а не отдаёт документ с картинками внутри.

Останется ли таблица таблицей?

Иногда да, если у неё нарисованы все линии и ячейки не объединены. В PDF рамка таблицы — это просто отрезки, и конвертер восстанавливает сетку по ним. Таблица без линий, только с отступами, почти всегда приезжает набором абзацев.

Вы храните загруженный файл?

Нет. Временный PDF и собранный .docx удаляются в том же запросе, в блоке finally, то есть и при ошибке конвертации. Отдельный сторож каждые пять минут проверяет служебную папку и удаляет всё, что пережило пятнадцать минут после жёсткого убийства процесса.

Почему абзац в Word разорван на строки?

Конвертер увидел большие вертикальные промежутки между строками и решил, что это разные абзацы. Такое случается на документах с растянутым межстрочным интервалом. Лечится в самом Word: удалите лишние знаки абзаца через поиск и замену.

Рядом

Частые задачи с этим инструментом