AndriyVK Tools

15.11.2026

Скани, рахунки, Word і Excel українською в Markdown - 5 Actors з Apify на 7 файлах, усі таблиці правильно прочитав лише один

П'ять Actors з Apify Store, що перетворюють документи на Markdown, на однакових семи українських файлах - текстовий PDF, чистий скан і скан із шумом, DOCX, XLSX та скани рахунків з таблицею без ліній. Порожні скани, змінені ціни, втрачені таблиці - і єдиний Actor, що правильно обробив усі файли за найнижчою ціною сторінки скану.

За запитом «PDF to Markdown» в Apify Store знаходяться десятки Actors з майже однаковою обіцянкою: текст, таблиці, OCR, готово для RAG. Жоден опис не каже, що буде з українським сканом, файлом Excel чи сканом рахунку, де в таблиці немає ліній. Тож я запустив п'ять із них на однакових семи файлах і порівняв кожен результат з текстом, з якого ці файли зроблено. Усі результати нижче - зі справжніх запусків 15 листопада 2026 року.

Розкриття: один із п'яти - мій, Document to Markdown for AI. Кожне число нижче - зі справжнього запуску, тестові файли публічні, сирі відповіді збережено, тож усе можна повторити й перевірити.

Коротко

Правильних файлів (із 7) Рахунок без ліній: точних рядків Читає Word і Excel Ціна сторінки скану
ai_admin/document-to-markdown 7 5 із 5 так $0,004
nidamindllc/doc-ocr 2 4 із 5 ні (помилка) $0,004
lergassy/pdf-text-extractor 1 0 так $0,0111
fabrikit/document-to-markdown 2 0 так $0,0105
gochujang/pdf-text-extractor 1 0 (порожньо) ні (лише PDF) $0,006

«Правильно» - це текст, заголовок і таблиця з правильними рядками, де кожне число точно як у документі.

Сім файлів

Усі українською, усі зроблені з відомого тексту, тож кожен символ можна перевірити:

Файл Що це
text-uk.pdf PDF з текстовим шаром: заголовок, два речення, таблиця 3 x 3 з цінами на кшталт 96,50
scan-uk.pdf та сама сторінка як чистий скан
scan-noisy-uk.pdf той самий скан із шумом і невеликим нахилом
doc-uk.docx документ Word з текстом, списком і таблицею
sheet-uk.xlsx книга Excel: таблиця з рядком Total 1,234.50 і аркуш з реченнями
scan-borderless-uk.pdf скан рахунку-фактури: таблиця 5 x 6 зовсім без ліній, суми на кшталт 40 530,00 і 2 500
scan-noisy-borderless-uk.pdf той самий рахунок із шумом і нахилом

Останні два - найважчий і водночас найчастіший випадок: більшість рахунків, накладних і банківських виписок друкують без ліній у таблиці. Файли публічні: https://api.apify.com/v2/key-value-stores/FloomuI2DrQCJazY8/records/<назва файлу>.

Actors - найпопулярніші за цим запитом і ще один, що обіцяє формати Office. Налаштування: українська мова OCR (ukr) скрізь, де є вибір мови; у nidamindllc вибору мови немає.

Результати по файлах

Файл мій nidamindllc lergassy fabrikit gochujang
Текстовий PDF правильно одна помилка OCR, таблиця правильна (HTML) таблиця злита з текстом таблиця простими рядками правильно
Чистий скан правильно правильно (таблиця HTML) таблиця розірваними рядками таблиця втрачена порожньо
Скан із шумом правильно правильно (таблиця HTML) таблиця розірваними рядками рядки без заголовка порожньо
DOCX правильно помилка правильно правильно не підтримує
XLSX правильно, 1,234.50 збережено помилка 1,234.50 стало 1234.5 правильно не підтримує
Рахунок без ліній 5/5 рядків, 30/30 клітинок 4/5 рядків, 29/30 клітинок таблиці немає, 40 530,00 втратило пробіл таблиці немає, усе одним рядком, 96,50 прочитано як 96,0 порожньо
Рахунок без ліній, із шумом 5/5 рядків, 30/30 клітинок 4/5 рядків, 29/30 клітинок таблиці немає, 96,50 прочитано як 96,60 таблиці немає, усе одним рядком порожньо

Ось що мій Actor повернув для рахунку без ліній із шумом - кожна клітинка, кожне число і знак № як у документі:

Рахунок-фактура № 47

Постачальник: ТОВ «Будмайстер», м. Львів. Покупець: ФОП Коваленко О. В. Оплата протягом п'яти банківських днів з дати рахунку.

| № | Товар | Од. | Кількість | Ціна | Сума |
| --- | --- | --- | --- | --- | --- |
| 1 | Цемент М500 | мішок | 420 | 96,50 | 40 530,00 |
| 2 | Арматура 12 мм | шт. | 180 | 412,00 | 74 160,00 |
| 3 | Пісок річковий | т | 12 | 650,00 | 7 800,00 |
| 4 | Цегла рядова | шт. | 2 500 | 9,80 | 24 500,00 |

Разом: 146 990,00 грн

Та сама таблиця приходить і рядками клітинок у полі tables - готово для таблиці чи бази даних, а запис показує, скільки сторінок пройшли через OCR, тож програма знає, який текст узято зі скану.

Для порівняння - той самий рядок рахунку від двох інших Actors:

lergassy:  1 | Цемент М500 мішок 420 96,60 40530,00
fabrikit:  ... Мо Товар Од. Кількість Ціна Сума 1 Цемент М500 мішок 420 96,50 40 530,00 2 Арматура12мм шт. ...

Що впало в око

Скільки коштує

Усі п'ять Actors беруть плату за подіями. За сторінку скану:

Actor Одна сторінка скану Текстова сторінка чи файл Office
мій $0,004 $0,001
nidamindllc $0,004 $0,004 (розпізнає все)
gochujang $0,006 $0,006 за односторінковий PDF
fabrikit $0,0105 $0,0005
lergassy $0,0111 $0,0031

Мій запуск на всіх семи файлах коштував $0,019 і тривав 11 секунд.

Про перевірку

Готуючи цю статтю, за результатами тестів я побачив, де ще можна покращити мій Actor, щоб він став найкращим у своїй категорії - скани із шумом і рахунки з таблицею без ліній, - і зробив це одразу, до виходу статті. Це підтверджують останні тести, описані вище.

Спробувати

З Python:

from apify_client import ApifyClient

client = ApifyClient("<ВАШ_ТОКЕН_APIFY>")
run = client.actor("ai_admin/document-to-markdown").call(run_input={
    "sources": [{"url": "https://api.apify.com/v2/key-value-stores/FloomuI2DrQCJazY8/records/scan-noisy-borderless-uk.pdf"}],
    "ocrLanguages": ["ukr"],
})
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(item["markdown"])
    print(item["tables"])

Або дайте його Claude, Cursor чи іншому ШІ-агенту як інструмент MCP - див. MCP-сервер для ШІ-агентів.

Інші статті