Jeśli zeskanujesz stronę z tekstem do pliku PDF i uruchomisz na niej aplikację OCR, tekst zostanie dodany do strony, ale „tryb renderowania tekstu” jest ustawiony na niewidoczny. Jest tam, ale nie jest renderowany na ekranie (lub na papierze, jeśli jest drukowany). To, co widzisz lub drukujesz, to oryginalny zeskanowany obraz.
Jak sprawić, by niewidoczny tekst był widoczny?
Możemy edytować plik PDF ... Kod PDF, aby ustawić renderowanie tekstu na niewidoczny, jest następujący:
3 Tr
Nie można znaleźć tego ciągu (jeszcze) w oryginale from_abbyy.pdf ani w from_ghostscript.pdf, ponieważ części plików PDF są skompresowane. Dlatego rozpakowujemy je w miarę możliwości za pomocą qpdf
:
qpdf \
--qdf \
from_abbyy.pdf \
qdf--from_abbyy.pdf
qpdf \
--qdf \
after_ghostscript.pdf \
qdf--after_ghostscript.pdf
Teraz możemy łatwo znaleźć powyższy ciąg (w każdym pliku występuje tylko jedno wystąpienie).
Przełączmy to na jeden z widocznych trybów renderowania tekstu. Ogólnie rzecz biorąc, możemy wybrać jeden z 8 trybów renderowania tekstu:
0 - fill glyph shapes
1 - stroke glyph shapes
2 - fill, then stroke glyph shapes
3 - neither fill nor stroke glyph shapes (invisible)
4 - fill and add to path for clipping glyph shapes
5 - stroke glyph shapes and add to path for clipping
6 - fill, then stroke glyph shapes and add path for clipping
7 - add glyph shapes to path for clipping
Jeśli użyję trybu „wypełnienia”, tekst z OCR prawdopodobnie nie będzie wyglądał tak dobrze na górze skanowanego obrazu. Dlatego wolę wariant „obrysu”. Więc po prostu zmieniam powyżej linii, aby przeczytać
1 Tr
Patrząc na ten zmodyfikowany plik PDF, nie podoba mi się to, ponieważ domyślna szerokość linii jest zbyt gruba jak na mój gust. Kolor obrysu konturu jest również czarny (domyślnie); Wolałbym czerwony, aby mieć kontrast z pierwotnie skanowanymi kształtami. Dlatego dodaję kod z przodu tej linii, który ustawia szerokość linii na ćwierć punktu:
.25 w
i kilka innych, aby ustawić kolor obrysu na czerwony:
1 0 0 RG
Cały wiersz brzmi teraz:
.25 w 1 0 0 RG 1 Tr
To wszystko.
Pamiętaj, że nasza niewielka manipulacja spowodowała uszkodzenie pliku, ponieważ jego „ xref
spis treści” (pod względem technicznym: tabela) nie będzie już poprawny. Acrobat Reader lub Acrobat Professional mimo to nadal go otworzy (nawet bez narzekań) i cicho „naprawi” sekcję odnośnika w pliku. Inne przeglądarki plików PDF mogą odrzucić plik, ale na razie nas to nie obchodzi ...
Oto zrzuty ekranu wyniku:
(Pierwszy zrzut ekranu jest powiększony do szerokości okna.)
(Drugi zrzut ekranu jest powiększony do 800%.)
Czerwone kontury to zeskanowany tekst, który jest teraz widoczny, dokładnie tak, jak tego chcieliśmy.
Przeprowadziłem tę samą procedurę jak opisano powyżej dla obu plików from_abbyy.pdf i after_ghostscript.pdf . Oba wyniki otworzyłem w 2 różnych instancjach Acrobat Reader. Jeśli sprawimy, że oba powiększą tę samą wartość i zmaksymalizują oba okna, łatwo będzie przełączać widok między dwoma plikami za pośrednictwem [alt]+[tab]
. Jest to dobry sposób na ujawnienie nawet najlepszych różnic w renderowaniu między dwoma plikami PDF.
Mój wynik jest taki: nie ma nawet jednego piksela różnego między wejściem Ghostscript (v9.02) a wyjściem dla tego pliku. Ale jest duża różnica, jeśli chcesz skopiować i wkleić tekst ...