TTidewayCo dziś grzeje w sieci
Dlaczego arabski tekst w PDF-ach jest odwrócony i jak to naprawić
2 min czytaniaPoradnikStreszczenie AI

Treść wygenerowana automatycznie na podstawie publicznych źródeł. Sprawdź oryginał w sekcji poniżej.

Dlaczego arabski tekst w PDF-ach jest odwrócony i jak to naprawić

Tekst arabski wyodrębniany z PDF-ów często pojawia się w odwrotnej kolejności, co jest wynikiem sposobu przechowywania danych w formacie PDF.

Udostępnij

Wielu programistów zajmujących się ekstrakcją tekstu z PDF-ów spotkało się z problemem, gdy użytkownicy posługujący się językiem arabskim zgłaszali, że tekst wyświetla się w odwrotnej kolejności. Kluczowym punktem jest zrozumienie, że nie chodzi o odwrócenie liter, ale o kolejność wyrazów w liniach. PDF-y nie przechowują tekstu tak jak dokumenty Word, lecz zapisują go w formie graficznych run glyphów, co powoduje, że ekstrakcja tekstu w przypadku języków pisanych od prawej do lewej wymaga szczególnego podejścia.

Jak działa ekstrakcja tekstu z PDF-ów

Zrozumienie, jak PDF-y przechowują dane, jest kluczowe. Zamiast przechowywać tekst w logicznej kolejności, PDF-y zapisują glyphy w kolejności wizualnej - tak, jak pojawiają się na ekranie. Dla języków pisanych od lewej do prawej, taka metoda działa bez zarzutu, ale w przypadku arabskiego, która jest pisana od prawej do lewej, efektem jest odwrócenie kolejności wyrazów. Na przykład, zdanie "Witaj świecie" może być wyświetlane jako "światcie Witaj".

Jak naprawić problem z odwróconym tekstem

Aby skutecznie naprawić ten problem, należy zrekonstruować logiczną kolejność słów przy użyciu pozycji glyphów oraz Algorytmu Dwukierunkowego Unicode (UAX #9). Niektóre biblioteki, takie jak PyMuPDF, już zwracają tekst w odpowiedniej kolejności, ale powszechnym błędem jest ponowne odwracanie go, co prowadzi do podwójnego odwrócenia tekstu. Zasada jest prosta: nigdy nie odwracaj arabskiego tekstu samodzielnie. Jeśli tekst wygląda na odwrócony, to problem leży w warstwie renderującej, a dane są zazwyczaj w porządku.

Konteksty liter arabski

Warto również pamiętać, że litery w języku arabskim mają różne formy w zależności od ich pozycji w słowie. Na przykład, litera „ع” jest rysowana inaczej, gdy jest na początku, w środku, na końcu lub jako forma izolowana. Ta zmiana jest stosowana w czasie renderowania przez silnik kształtujący, taki jak HarfBuzz. Jeżeli jakikolwiek element w procesie przetwarzania tekstu przechodzi przez renderer, który nie obsługuje kształtowania, uzyskamy formy izolowane, takie jak „م ر ح ب ا” zamiast „مرحبا”.

Wnioski i najlepsze praktyki

W przypadku pracy z tekstem arabskim w PDF-ach, kluczowe jest, aby każdy krok w procesie przetwarzania tekstu utrzymywał wsparcie dla kształtowania. Ostatecznie, jeżeli korzystasz z narzędzi, które nie uwzględniają tych aspektów, możesz napotkać na problemy z wyświetlaniem. Przykładem jest ffmpeg, które poprawnie obsługuje napisy jedynie dlatego, że libass łączy się z HarfBuzz. Przestrzeganie zasad dotyczących kształtowania i kolejności tekstu pozwoli uniknąć frustracji związanej z wyświetlaniem tekstu arabskiego z PDF-ów.

W skrócie

Na co uważać

Osoby pracujące z dokumentami PDF w języku arabskim muszą zrozumieć, jak poprawnie wydobywać tekst, aby uniknąć błędów. Właściwe podejście do ekstrakcji może zaoszczędzić wiele czasu i frustracji, zwłaszcza w kontekście aplikacji i narzędzi do przetwarzania tekstu.

Powiązane