Mój system operacyjny to Ubuntu 12.04. Jak przekonwertować plik pdf z skali szarości na czarno-biały? Plik pdf w skali szarości pochodzi ze skanowania z opcją skali szarości, a OCR wymaga czarno-białej skali pdf.
Aktualizacja:
Po odpowiedzi Marco, BW pdf nie jest dobry, a oryginalny plik jest tutaj .
command-line
pdf
Tim
źródło
źródło
scantailor
scantailor
ma mnóstwo innych przydatnych funkcji, jeśli chodzi o przygotowywanie skanów do OCR, i to jest jedyny powód, dla którego zasugerowałem (jako komentarz, a nie odpowiedź)pdfimages
(poppler) do wyodrębnienia zeskanowanych obrazów z kontenera PDF. Przede wszystkim może być bardziej wydajna w obsłudze ich za pomocą ImageMagick.Odpowiedzi:
1) Użyj ghostscript, aby przekonwertować plik PDF na monochromatyczny plik PostScript za pomocą urządzenia psmono :
2) Następnie przekonwertuj monochromatyczny PostScript z powrotem do formatu PDF:
EDIT:
psmono
urządzenie tworzy 1-bitowy pół tonu obrazu, który nie jest najwyraźniej to, co chcesz. Nie mogłem znaleźć sposobu na określenie progu za pomocą ghostscript, więc skorzystałem z imagemagick.convert
wewnętrznie używa ghostscript do konwersji pliku PDF. Następnie stosuje filtrowanie progowe, aby utworzyć obraz 1-bitowy, i ponownie korzysta z ghostscript, aby utworzyć plik PDF. Ponieważconvert
domyślnie używa rozdzielczości 75DPI, która może nie odpowiadać rzeczywistej rozdzielczości, możesz podaćdensity
argument. I eksperymentuj zthreshold
ustawieniami. Optymalne wartości w dużym stopniu zależą od pliku wejściowego.źródło
Najlepszy sposób, w jaki się tam znalazłem, bez utraty jakości, usuwa cienie, szum, tekst z następnej strony, krwawiące itp.:
1) Najpierw przekonwertuj pdf na pojedyncze obrazy
2) Po drugie usuwaj cienie, szumy, krwawiące teksty z następnej strony (napisy do tego bloga )
można to dodać jako dodatkowy krok lub zamiast polecenia powyżej, aby uzyskać tylko dwa kolory:
3) Aby utworzyć plik pdf z każdego obrazu jpg bez utraty rozdzielczości lub jakości:
4) Aby połączyć strony pdf w jeden:
5) Na koniec dodaję warstwę tekstową OCRed, która nie zmienia jakości skanu w plikach pdf, dzięki czemu można je przeszukiwać:
źródło
Miałem też zeskanowane kolorowe pliki PDF i pliki w skali szarości, które chciałem przekonwertować na bw. Próbowałem przy użyciu
gs
z kodu wymienionych tutaj , a jakość obrazu jest dobra z tekstem pdf nadal. Jednak ten kod gs konwertuje tylko do skali szarości (zgodnie z pytaniem w pytaniu) i nadal ma duży rozmiar pliku.convert
przy bezpośrednim stosowaniu daje bardzo słabe wyniki.Chciałem bw pdf z dobrą jakością obrazu i małym rozmiarem pliku. Moje rozwiązanie wykorzystuje
gs
do wyodrębnienia plików bmp w odcieniach szarości z pliku pdf,convert
do progowania tych plików bmps do plików bw i zapisania ich jako plików tiff, a następnie img2pdf do skompresowania obrazów tiff i scalenia ich w jeden plik pdf.Próbowałem przejść bezpośrednio do formatu tiff z pliku pdf, ale jakość nie jest taka sama, więc zapisuję każdą stronę na bmp. W przypadku jednostronicowego pliku pdf
convert
robi świetną robotę od bmp do pdf. Przykład:W przypadku wielu stron
gs
może łączyć wiele plików pdf w jeden, aleimg2pdf
daje mniejszy rozmiar pliku niż gs. Pliki tiff muszą być rozpakowane jako dane wejściowe do img2pdf. Pamiętaj, że w przypadku dużej liczby stron pośrednie pliki bmp i tiff mają zwykle duży rozmiar.pdftk
lubjoinpdf
byłoby lepiej, gdyby mogli scalić skompresowane pliki pdf zconvert
.Myślę, że istnieje bardziej eleganckie rozwiązanie. Jednak moja metoda daje wyniki o bardzo dobrej jakości obrazu i znacznie mniejszym rozmiarze pliku. Aby odzyskać tekst w bw pdf, uruchom ponownie OCR.
Mój skrypt powłoki używa gs, convert i img2pdf. W razie potrzeby zmień parametry (liczba stron, rozdzielczość skanowania, wartość progowa% itp.) Wymienione na początku i uruchom
chmod +x ./pdf2bw.sh
. Oto pełny skrypt (pdf2bw.sh):źródło
W rzeczywistości, jeśli pochodzi ze skanu, jedynym rozsądnym sposobem jest użycie obrazów pdf i konwersja podstawowej grafiki. Użyłem tego skryptu, aby go przekonwertować:
źródło
Podziękowania dla OccamsRazor za skrypt, który świetnie wykonuje konwersję plików PDF w kolorze i skali szarości na kompaktową i czytelną wersję monochromatyczną. To jest naprawdę komentarz do postu OccamsRazor, ale nie mam wystarczającej liczby punktów do skomentowania.
Skrypt zawiedzie,
img2pdf -o ./$output_pdf_name --dpi $dpi_res $input_files
ponieważ--dpi
nie jest już akceptowanym argumentem dla img2pdf. Zamiast tego pobiera rozdzielczość z pliku wejściowego, więc możesz go po prostu pominąć.Oto moja wersja skryptu. Nie chciałem edytować skryptu dla każdego pliku, więc podaję liczbę stron i wprowadzam nazwę pliku po uruchomieniu. Mam zestaw do nazwy wyjściowego i rozdzielczości do 200 dpi, który pracuje dla mojego przepływu pracy, ale możesz go zmienić, lub przekształcić je w i i przekazać je.
00input_name
$3
$4
Aby uruchomić, użyj np .
./pdf2bw.sh <number_of_pages> <input_name>
./pdf2bw.sh 55 input.pdf
źródło
"./$input_pdf_name"
a nawetseq 1 "$num_pages"
. Możesz także zmienić`…`
na$(…)
- zobacz to , to i to .