Ana içeriğe geç
Geliştirici rehberi

PDF için Tesseract OCR
ve aranabilir PDF'ler.

Tesseract ile PDF'lere OCR uygulamanın tam ve test edilmiş kılavuzu: sayfaları rasterleştirme, aranabilir PDF oluşturma, OCRmyPDF ve pdfsandwich kullanımı, Python'da uçtan uca çalıştırma ve en sık karşılaşılan hataları düzeltme.

Kısaca (tek komut)

Gerçek çok sayfalı bir PDF için OCRmyPDF en hızlı yoldur.

bash
pip install ocrmypdf      # veya: apt install ocrmypdf
ocrmypdf girdi.pdf cikti.pdf

OCRmyPDF yok mu? Rasterleştirin ve Tesseract CLI'yi doğrudan kullanın — aşağıya bakın.

PDF'ler neden rasterleştirilmelidir

Tesseract PDF kapsayıcılarını değil görselleri tanır.

PDF bir kapsayıcıdır: vektör metin, gömülü yazı tipleri veya taranmış sayfa görselleri içerebilir. Tesseract raster görselleri (TIFF, PNG, JPEG, WebP…) okur, bu yüzden sayfalar önce görsele dönüştürülmelidir. Kurulu araçlara göre rasterleştirici seçin:

AraçKurulumNotlar
pdftoppm (poppler)apt install poppler-utilsHızlı, betiklenebilir, klasik seçim
pdftocairo (poppler)poppler-utilspdftoppm'e benzer, Cairo çıktısı
ImageMagickapt install imagemagickconvert -density 300 in.pdf out.tif
PyMuPDFpip install pymupdfSaf Python, harici ikili dosya yok
pdf2imagepip install pdf2imagepoppler'ı saran Python kütüphanesi
bash
# PDF -> sayfa başına 300 DPI PNG
pdftoppm -png -r 300 girdi.pdf sayfa

En önemlisi DPI'dır: 300 DPI standart dengedir; küçük yazı tipleri veya arşivleme için 600 DPI; 200 DPI altından kaçının.

Tesseract CLI ile aranabilir PDF oluşturma

pdf çıktı yapılandırmasıyla bir görsel, aranabilir bir PDF sayfasına dönüşür.

bash
# Görsel -> aranabilir PDF
tesseract sayfa-1.png cikti pdf

# Yalnızca metin katmanı (görsel olmadan)
tesseract tarama.png cikti textonly_pdf

# Birden çok sayfayı tek PDF'te: görsel listesi verin
tesseract gorselliste.txt cikti pdf

Çok sayfalı PDF için her görsel yolunu gorselliste.txt içinde ayrı satıra yazın. Tam biçim başvurusu: belgeler.

Yöntem B — OCRmyPDF (gerçek PDF'ler için önerilir)

OCRmyPDF rasterleştirme, OCR, eğim düzeltme, döndürme ve görünmez metin katmanını tek komutta yapar.

bash
ocrmypdf girdi.pdf cikti.pdf                    # temel
ocrmypdf -l eng+tur girdi.pdf cikti.pdf          # diller
ocrmypdf --deskew --rotate-pages girdi.pdf cikti.pdf
ocrmypdf --optimize 2 girdi.pdf cikti.pdf        # dosyayı küçült
ocrmypdf --skip-text girdi.pdf cikti.pdf         # metni olan sayfaları koru

OCRmyPDF Tesseract'ı kullanır ve Ghostscript ile poppler araçlarını gerektirir. Faydalı bayraklar: --force-ocr, --redo-ocr, --pages 1-10.

Yöntem C — pdfsandwich

Metin katmanı ekleyen ve eğim düzeltme gibi ön işleme yapan daha hafif bir sarmalayıcı.

bash
pdfsandwich tarama.pdf          # tarama_ocr.pdf üretir
pdfsandwich -lang eng+tur tarama.pdf

Yöntem D — Python ile uçtan uca

Rasterleştirmek için pdf2image, aranabilir PDF oluşturmak için pytesseract kullanın, sonra pypdf ile birleştirin.

pdf.py
import io, pytesseract
from pdf2image import convert_from_path
from pypdf import PdfWriter, PdfReader

pages = convert_from_path("girdi.pdf", dpi=300)   # poppler gerektirir
writer = PdfWriter()
for page in pages:
    pdf_bytes = pytesseract.image_to_pdf_or_hocr(page, extension="pdf", lang="tur")
    writer.add_page(PdfReader(io.BytesIO(pdf_bytes)).pages[0])
with open("cikti.pdf", "wb") as f:
    writer.write(f)

Windows'ta poppler bin klasörünü poppler_path= ile verin. Daha fazla ayrıntı pytesseract rehberinde.

Hangi yöntemi kullanmalıyım?

YöntemİdealKurulumÇok sayfa
OCRmyPDFGerçek PDF'ler, otomasyonGhostscript + popplerTek komutta evet
pdfsandwichÖn işlemeli hızlı metin katmanıpoppler + ImageMagickEvet
Tesseract CLIGörseller veya görsel listeleriYalnızca TesseractGörsel listesiyle
Python (pdf2image)İş akışları ve özel mantıkpoppler + pytesseractDöngü ve birleştirme

Düzen sadakati ve metin kaplaması

Aranabilir PDF'ler neden bazen kaymış görünür ve geometri nasıl korunur.

Kalite ve performans

Sorun giderme

BelirtiNedenÇözüm
Unable to get page count. Is poppler installed?pdf2image poppler'ı bulamıyorpoppler-utils kurun veya Windows'ta poppler_path ayarlayın.
Çıktı PDF'de aranabilir metin yokOCR çalışmadı veya dil yanlışBaşarıyı doğrulayın ve -l/--language değerini belgenin diline ayarlayın.
Metin kaplaması kaymışYanlış DPI veya sayfa boyutuOrijinal boyutta 300 DPI ile rasterleştirin.
Çıktı dosyası çok büyük600 DPI kayıpsız görseller--optimize / JPEG kullanın veya DPI'ı düşürün.
Parola korumalı PDF başarısızŞifreli girdiÖnce şifresini çözün veya aracın desteklediği parola bayrağını verin.

PDF SSS

Bir PDF'yi nasıl aranabilir yaparım?

ocrmypdf girdi.pdf cikti.pdf kullanın veya sayfaları rasterleştirip tesseract sayfa.tif cikti pdf çalıştırın.

Tesseract bir PDF'yi neden doğrudan okuyamaz?

Tesseract raster görselleri tanır, bu yüzden PDF sayfaları önce görsele dönüştürülmelidir.

Hangi DPI kullanılmalı?

Çoğu belge için 300 DPI; küçük yazı tipleri veya arşivleme için 600 DPI.

Python'da bir PDF'ye OCR uygulayabilir miyim?

Evet — poppler ile pdf2image ve pytesseract.image_to_pdf_or_hocr kullanın, sayfaları pypdf ile birleştirin.

Düzeni nasıl hassas tutarım?

Orijinal sayfa boyutunu ve DPI'ı koruyun ve görseli koruyup metin katmanını üstüne ekleyen OCRmyPDF'i tercih edin.