BookTranslator
BookTranslator

Как да преведете PDF с две колони, без да разбъркате реда на четене

Проверете как се чете PDF с две колони, преди да го преведете, изберете работен процес за оформление, OCR или пресъздаване въз основа на тази проверка и прегледайте преведените колони, надписи и препълване.

BookTranslator

BookTranslator Team

13 min read

Бърз отговор: Проверете реда на четене, преди да преведете

Един PDF с две колони може да изглежда подреден и въпреки това да предостави на инструмента за превод абзаците в грешен ред. Когато това се случи, преводът може да е гладък изречение по изречение, но страницата като цяло спира да има смисъл. Никой инструмент не може да преведе изходен текст, който е прочел в грешен ред.

И така, редът на работа е:

  1. Проверете как се чете страницата. Копирайте една представителна страница и потвърдете, че всеки абзац излиза в реда, в който човек би го прочел.
  2. Изберете работния процес въз основа на тази проверка. Използвайте превод на PDF със запазване на оформлението, когато редът е правилен, режим OCR, когато текстът е неизползваем, и подход за конвертиране и поправка, когато ви трябва редактируем файл.
  3. Проверете преведените колони. Обърнете внимание на прекъсването на колоните, надписите на фигурите, бележките в цялата ширина, бележките под линия и редовете, които се проточват твърде дълго.

Останалата част от това ръководство показва защо стъпка 1 не може да бъде пропусната, използвайки малък тест, който можете да изтеглите и стартирате сами. То обхваща PDF файлове с реален текстов слой, като експортирани отчети, статии и бюлетини. Ако страниците ви са сканирани, започнете с как да преведете сканиран PDF.

Какво тествахме

На 2026-10-20 създадохме три PDF файла с една страница от един и същ текст: заглавие, поле за фигура в горната част на лявата колона, три абзаца във всяка колона, получерна бележка, обхващаща двете колони, и бележка под линия. Всеки абзац започва с маркер от P1 до P8, така че правилният ред на четене е от P1 до P8.

Тестова страница с две колони с поле за фигура в горната част на лявата колона, абзаци P1 до P3 под него, P4 до P6 в дясната колона и бележка в цялата ширина P7

Трите файла се различават по начини, които не можете да видите на екрана:

  • two-column-stream-logical.pdf съхранява текста първо в лявата колона, после в дясната.
  • two-column-stream-rowwise.pdf изглежда идентично, но съхранява редовете ред по ред, редувайки се между колоните.
  • two-column-no-figure-rowwise.pdf съхранява текста ред по ред и няма поле за фигура. Това е контролният файл.

След това извлекохме текста със седем често използвани метода с отворен код и записахме реда на абзаците, който всеки от тях върна:

Инструмент за извличанеЛогическо съхранение, фигураСъхранение ред по ред, фигураСъхранение ред по ред, без фигура
pdftotext 26.08.0 (по подразбиране)P4 P1 P5 P6 P2 P3 P7 P8P4 P1 P5 P6 P2 P3 P7 P8P1–P8 правилно
pdftotext -rawP1–P8 правилноP1 P4 P5 P2 P6 P3 P7 P8P1 P4 P5 P2 P6 P3 P7 P8
pdftotext -layoutP4 P5 P6 P1 P2 P3 P7 P8P4 P5 P6 P1 P2 P3 P7 P8P1 P4 P5 P2 P6 P3 P7 P8
pypdf 5.1.0 extract_text()P1–P8 правилноP1 P4 P5 P2 P6 P3 P7 P8P1 P4 P5 P2 P6 P3 P7 P8
pdfminer.six 20240706P4 P5 P6 P1 P2 P3 P7 P8P4 P5 P6 P1 P2 P3 P7 P8P1–P8 правилно
PyMuPDF 1.24.14 get_text()P1–P8 правилноP1 P4 P5 P2 P6 P3 P7 P8P1 P4 P5 P2 P6 P3 P7 P8
PyMuPDF 1.24.14 get_text(sort=True)P4 P5 P6 P1 P2 P3 P7 P8P4 P5 P6 P1 P2 P3 P7 P8P1 P4 P5 P2 P6 P3 P7 P8

Нито един от седемте метода не се справи правилно и с трите файла. Всеки метод, който се справи с един файл, обърка друг. В контролния файл pdftotext -raw, pdftotext -layout и PyMuPDF с sort=True също отпечатаха три реда, всеки от които смесваше текст от двете колони — точно това вижда читателят, когато копираният текст преминава през междуколонното пространство. PyMuPDF с sort=True създаде по един такъв ред и в другите два файла.

Тестът е умишлено малък: една синтетична английска страница, без тагове, създадена с ReportLab. Той не класира тези библиотеки и не тества нито един продукт за превод, включително BookTranslator. Това, което показва, е по-тясно и по-полезно: една и съща на вид страница може да даде различен ред на изходния текст, така че единствената надеждна проверка е вашият собствен файл.

Можете да възпроизведете теста с генератора на тестови файлове, трите PDF файла (логически, ред по ред, без фигура), проверката на реда, изпълнителя на екстрактори, който извиква всичките седем метода, и CSV файла с резултатите.

Защо една и съща страница се чете в различен ред

Екстракторите използват една от две стратегии и всяка от тях се проваля на различен файл.

Стратегия 1: следване на реда, записан във файла. PDF рисува текста в какъвто и да е ред, в който създателят му го е записал. Ръководството на poppler описва pdftotext -raw като запазващ „текста в реда на потока от съдържание“ (и вече не препоръчва този режим), а документацията на PyMuPDF казва, че изходът по подразбиране е обикновен текст „както е кодиран в документа“ (ръководство на poppler pdftotext, рецепти за текст на PyMuPDF). Това работи, когато файлът съхранява текста в реда за четене. Проваля се, когато съхраненият ред е ред по ред, както във втория ни файл, въпреки че страницата изглежда същата.

Стратегия 2: възстановяване на реда от позицията на текста върху страницата. Режимът по подразбиране на pdftotext се опитва да изведе текста „в ред за четене“, pdfminer.six групира близките редове в кутии и ви позволява да зададете тежест на „хоризонтална и вертикална позиция“ при подреждането им, а sort=True на PyMuPDF сортира „от горе-ляво към долу-дясно“ (pdfminer.six LAParams). Тези методи игнорират съхранения ред, така че логическият файл и файлът с ред по ред дават идентични резултати.

Контролният файл обяснява провала. Без фигурата режимът по подразбиране на pdftotext и pdfminer.six четат P1 до P8 правилно. Добавете кутия за фигура в горната част на лявата колона и първият абзац отдясно (P4) става най-високият текст на страницата. Метод, който отчита вертикалната позиция, започва страницата оттам.

Това е често срещан дизайн на страница, а не краен случай: статиите отварят лявата колона с фигура или кутия за резюме, списанията започват колона под изображение, а ръководствата поставят кутия с предупреждение над първата стъпка. Бележката в цялата ширина (P7) и бележката под линия (P8) останаха на мястото си при всяко изпълнение, така че проверка, която гледа само долната част на страницата, ще пропусне проблема.

Стъпка 1: Проверете собствения си PDF за пет минути

Маркерите в нашия тестов файл не съществуват във вашия документ, но същата проверка работи с няколко изречения, които изберете сами.

  1. Изберете най-трудната страница, не първата. Изберете двуколонна страница с фигура, таблица или рамкирана бележка близо до горната част на колона, плюс заглавие или бележка в цялата ширина по средата.
  2. Запишете пет опорни фрази в реда за четене: първите думи на лявата колона, последните думи на лявата колона, първите думи на дясната колона, елементът в цялата ширина и надписът.
  3. Копирайте цялата страница от програмата си за преглед на PDF и я поставете в текстов редактор. Ако използвате инструмент с предварителен преглед на изходния текст, използвайте него, защото той показва реда, който инструментът действително е получил.
  4. Намерете опорните фрази в поставения текст. Те трябва да се появят в реда, в който сте ги записали, и нито един ред не трябва да съдържа думи от двете колони.
  5. Повторете за един различен тип страница, например страница с библиография, страница със странична лента или първата страница на глава.

Тълкувайте резултата по следния начин:

Какво показва поставеният текстКакво обикновено означаваСледваща стъпка
Опорните фрази са в ред, без смесени редовеТекстът и редът за четене са използваемиPDF превод със запазване на оформлението
Дясната колона започва преди ляватаСтраницата се чете по вертикална позицияТествайте инструмента за превод на точно тази страница, преди да платите за целия файл
Редовете смесват текст от двете колониСтраницата се чете направо през колонитеНе копирайте и поставяйте; използвайте работен процес с файлове и тествайте тази страница
Абзаците прескачат между колонитеЗапазеният ред е ред по ред или е нарушенТествайте работен процес с файлове; ако не успее, първо поправете или конвертирайте
Нищо не се поставя или символите са грешниСтраница само с изображение или повреден текстов слойИзползвайте OCR; вижте Извличане на текст от PDF срещу OCR

Копирането и поставянето е бърза проверка, а не доказателство какво ще направи друг инструмент. Нашата таблица показва, че два инструмента могат да прочетат един и същ файл по различен начин. Резултатът във вашата програма за преглед ви казва колко рискован е файлът. Собственият преглед на инструмента или пробен превод на една страница ви казва какво всъщност чете този инструмент.

Ако текстът се поставя с правилните букви, но с нарушени интервали или прекъсвания на редовете, отстранете проблемите с копирания текст, преди да съдите за реда на колоните.

Стъпка 2: Изберете работния процес според това, което видяхте

Изберете работния процес въз основа на проверката, а не на твърдението на даден инструмент, че запазва оформлението ви.

Редът е правилен и текстът може да се маркира. Преведете PDF като файл, а не чрез поставяне на части. Работен процес, който запазва оформлението, връща преведения текст обратно на страницата, така че колоните, фигурите и колонтитулите остават там, където читателите ги очакват. В BookTranslator това е стандартният път за превод на PDF. Приемайте всяко обещание за запазване на оформлението, включително нашето, като нещо, което трябва да проверите на най-трудната страница, която намерихте в стъпка 1, а не като гаранция.

Редът се нарушава само близо до фигури или елементи в рамки. Преди да преведете целия документ, прекарайте една проблемна страница през избрания инструмент. Ако тази страница излезе в правилния ред, инструментът не използва същата стратегия като вашата проверка чрез копиране. Ако излезе разбъркана, сменете работния процес, вместо да се надявате останалата част от файла да се държи различно.

Страницата е сканирана или текстовият слой е неизползваем. Използвайте OCR. Режимът OCR на BookTranslator прочита изображението на страницата и изгражда наново чист преведен PDF. Тази страница го препоръчва за учебници, академични статии, таблици и страници с много изображения, където запазването на съдържанието е по-важно от точното оформление. Не сме го тествали върху примерните файлове в това ръководство. Компромисът е изричен: режимът OCR не се опитва да запази оригиналното оформление, шрифтове или размери на шрифта. За сканирани документи по-специално вижте как да преведете сканиран PDF.

Все пак ви трябва редактируем документ. Конвертирайте PDF в Word, поправете реда на четене там и преведете DOCX. Това изисква най-много усилия, но е единственият път, по който можете директно да коригирате реда на абзаците преди превода. Освен това променя оформлението, така че го използвайте, когато резултатът ще се редактира допълнително, а не когато трябва да изглежда като оригиналната страница.

Избягвайте поставянето на колони в чатбот или текстово поле. Вие ставате отговорни за ръчното възстановяване на реда, надписите и бележките под линия на всяка страница. Нашата таблица показва колко лесно този ред се обърква още преди да започнете.

За академични статии, където същият проблем се съчетава с уравнения, цитати и препратки, следвайте работния процес за превод на научни статии. За общия процес за запазване на оформлението при всички типове PDF вижте как да преведете PDF, като запазите формата.

Стъпка 3: Проверете преведените колони

Преводът на много колони се проваля на места, които бързият преглед пропуска. Проверете тези пет места на всеки тип страница, който тествахте в стъпка 1:

  1. Преходът между колоните. Прочетете последното изречение на лявата колона и първото изречение на дясната. Аргументът трябва да продължава, а не да прескача към различен абзац.
  2. Надписи и фигури. Всеки надпис трябва да остане под съответната си фигура, преведен, и да не се е преместил в основния текст.
  3. Елементи по цялата ширина. Заглавия, бележки и извадки, които обхващат двете колони, трябва да продължават да ги обхващат и да не бъдат разделяни на две половинчати изречения.
  4. Бележки под линия и колонтитули. Маркерите за бележки под линия в текста трябва да съответстват на бележките в долната част на страницата, а заглавията на страниците не трябва да се появяват по средата на абзац.
  5. Препълване в тесни колони. Преведеният текст често е по-дълъг от изходния. Насоките на W3C относно размера на текста при превод цитират данни на IBM за около 130% дължина за изходен английски текст над 70 знака при превод на европейски езици, с по-големи увеличения за кратки низове. Тясната колона има малко място за този допълнителен текст, затова търсете отрязани редове, смален шрифт или текст, застъпващ се с фигури. Заглавията и клетките на таблиците са най-вероятните места за препълване.

За преглед двуезичният файл помага, но оформлението му е от значение. Поставянето на изходния текст и превода на една и съща страница притиска два езика в колони, които вече са тесни. В стандартния превод на PDF в BookTranslator (с изключен OCR режим) двуезичният PDF предлага две оформления: Същата страница и Отделни страници. За документи с няколко колони изберете Отделни страници: всяка изходна страница е последвана от преведената си страница, така че всяка колона запазва оригиналната си ширина. Все още можете да изтеглите и версията само с превод. Нашият контролен списък за качество на превод на PDF обхваща останалите проверки на ниво файл.

Ако преведеният PDF трябва да работи и с екранни четци, визуалният ред не е достатъчен. Тагираният ред на четене се нуждае от отделна проверка. W3C отбелязва, че редът на четене на тагиран PDF е „определен основно от реда на таговете на елементите на документа“ (W3C PDF3). Нашето ръководство за достъпност на преведен PDF показва как да го тествате.

Какво не твърди това ръководство

  • Това не е класация на инструменти. Седемте екстрактора бяха избрани, защото са разпространени и лесни за повторно изпълнение. Всеки от тях се провали на поне един от три файла, а различен тестов файл би могъл да промени кои се провалят.
  • Не са тествани продукти за превод. Не сме пускали BookTranslator, DeepL, Google Translate или друг преводач върху тези файлове. Описанията на продуктите по-горе идват от текущите продуктови текстове на BookTranslator, а не от този тест.
  • Една страница не е документ. Реалните файлове смесват дизайни на страници, затова проверявайте поне два типа страници.
  • Тагираните PDF файлове може да се държат различно. Нашите тестови файлове не са тагирани. Правилно тагираният PDF носи изричен ред на четене, който някои инструменти използват.

Практическото правило все пак остава: разберете как се чете вашият PDF, преди да го превеждате. Ако редът е правилен, преведете файла и проверете колоните. Ако е грешен, променете работния процес, а не настройките за превод.

Свързани публикации