Formats2026-08-254 dk okuma

OCR taranmış bir PDF’yi nasıl okur — ve bu araç neden Markdown döner

Taranmış PDF metnin fotoğrafıdır. Bu OCR uç noktası gizli katmanlı PDF değil Markdown döner. Auto mevcut metni kullanır; Force OCR her sayfayı yeniden okur.

PDF123 · Updated 2026-09-19

Taranmış bir PDF, sayfaları raster görüntü olarak saklar: metnin fotoğraflarını, seçilebilir karakterleri değil. OCR (optik karakter tanıma) bu piksellere bakar, hangi şekillerin karakter olduğunu tahmin eder ve gerçek metin üretir. PDF123’te bu, ücretsiz bir tarayıcı aracı ve POST /api/v1/misc/ocr-pdf olarak çalışır; yanıt yeniden yazılmış bir PDF değil, Markdown’dır.

OCR öncesi (yalnızca görüntü) ve sonrası (sayfaya hizalanmış metin) taranmış bir sayfayı gösteren diyagram. Birçok PDF OCR aracı bu metni gizli katman olarak geri yazar; bu sitenin uç noktası ise Markdown döner.

Tarama hâlâ bir resim

OCR bitmap’i temizlemez, keskinleştirmez veya değiştirmez. OCR’ın yanlış okuduğu net bir tarama yine de net görünür. Kalite darboğazı hiçbir zaman görüntü değildi; tanımaydı: aynı tarama grubunda tanıma motorunu değiştirmek doğruluğu büyük ölçüde değiştirebilir, üstelik pikseller hiç dokunulmadan kalırken.

Klasik PDF OCR, görüntünün altına hizalanmış ikinci ve görünmez bir metin katmanı yazar; böylece seçme ve arama doğru kelimelere denk gelir. Diyagramın gösterdiği budur ve birçok masaüstü aracı hâlâ böyle çalışır.

Bu uç nokta gerçekte ne döner

OCR yolu /api/v1/misc/ocr-pdf adresini çağırır; bu da bağımsız bir Rust crate’i olan pdf-inspector üzerinde çalışır (kendi ocr özelliğiyle derlenmiştir). PDF’nin tamamını bir tanıma modeline teslim etmez. pdf-inspector önce her sayfayı ya çıkarılabilir yerel metni olan ya da yalnızca görüntü olan sayfa olarak sınıflandırır. Yerel metni olan sayfalar bu metni olduğu gibi korur ve hiçbir zaman tanıma modeline dokunmaz; yalnızca görüntü içeren sayfalar ise tanıma boru hattından geçer — PDFium (Chrome’un içeride kullandığı aynı açık kaynaklı renderer) sayfayı rasterize eder, ardından ONNX Runtime, sayfayı okumak için PP-OCRv6 Small modelini çalıştırır. Her iki tür sayfa da sırasıyla tek bir Markdown belgesinde birleştirilir; bu yüzden yanıt text/markdown türündedir ve indirilen dosya .md ile biter.

Bu sözleşme bu yeniden yazımla birlikte geldi. Projenin eskiden çalıştırdığı Java/Spring Boot backend’i, klasik “görüntü artı gizli metin katmanı” yaklaşımını kullanan OCRmyPDF’i çağırır ve PDF döndürürdü. Rust’a geçiş bu yolu tamamen pdf-inspector’ın seçici OCR’ıyla değiştirdi ve bununla birlikte çıktı da PDF’den Markdown’a taşındı. Eski Java backend’i o zamandan beri depodan tamamen kaldırıldı; geri açılabilecek bir anahtar değildir.

Aranabilir bir PDF (görüntü artı metin katmanı) gerekiyorsa bu uç nokta size bunu veremez. Size bir ajanın veya veri ardışık düzeninin doğrudan tüketebileceği metin verir.

Auto ve Force OCR

Formda bir ocrType alanı vardır:

  • Normal (force-ocr dışındaki her değer) Auto’ya eşlenir: dosyada metin zaten varsa onu kullanır, yalnızca görüntü içeren sayfalarda OCR çalıştırır. Temiz ve doğuştan dijital bir PDF’de Auto, OCR çalışma zamanını yüklemez.
  • Force OCR (ocrType=force-ocr) metin katmanı zaten bulunan sayfalar dahil her sayfada tanımayı yeniden çalıştırır. Gerçekten yalnızca görüntü içeren sayfalarda fazladan doğruluk değil, zaman ödersiniz; karşılığında bozuk veya eksik mevcut katmanı yok sayan bir geçiş elde edersiniz.

Portal varsayılanı Force OCR’dır. Dil denetimi yoktur: eski Java yolundan kalan tessdata kodları yok sayılır.

Auto/Force ayrımı isteğin içinde gerçekleşir ve ne portal ne de API’nin yetenek denetimi bunu önceden kontrol eder. GET /api/v1/settings/get-endpoints-status, PDFium, ONNX Runtime veya PP-OCRv6 modelinin gerçekten kurulu olup olmadığını hiç doğrulamadan ocr-pdf’yi her zaman etkin olarak bildirir. Gerçek kontrol, ancak bir istek tanımayı tetiklediği anda yapılır: bunlardan biri eksikse uç nokta, sessizce yalnızca yerel metne düşen bozulmuş bir Markdown yerine 503 döner. PP-OCRv6 Small modelinin kendisi yaklaşık 31 MB’tır; dağıtım sırasında yerel önbelleğe önceden yerleştirilmediyse, bir sayfa gerçekten tanımaya ihtiyaç duyduğu ilk anda ağ üzerinden indirilir. Önceden yerleştirilmiş modeli olmayan çevrimdışı bir makine, yalnızca yavaş çalışmak yerine büyük olasılıkla ilk Force isteğinde tam orada başarısız olur.

Tanıma olasılıksaldır

Motorlar piksel desenlerini harf ve kelime modelleriyle eşler. Temiz, yüksek kontrastlı ve standart yazı tipli baskıda iyi sonuç verirler; şu durumlarda kötüleşirler:

  • Düşük çözünürlüklü veya düşük kontrastlı taramalar (300 DPI orijinale karşı faks kalitesi)
  • El yazısı, süslü yazı tipleri, alışılmadık düzenler (çok sütunlu tablolar, döndürülmüş metin, yoğun formlar)
  • Glif şekillerini eşleştirmeyi şaşırtacak kadar çarpıtan eğik sayfalar

Bulanık bir faks, Auto ya da Force fark etmeksizin temiz bir tarama gibi OCR edilmez. Bu, bir parametreyle düzeltilebilecek bir şey değil, modelin kendisinin bir sınırıdır.

OCR ne yapmaz

OCR size metin verir. Paragrafları, başlıkları, tabloları veya yeniden akıtılabilir bir Word belgesi kurmaz. Düzenlenebilir düzen, tanıma hatasının üzerine binen bir dönüştürme sorunudur; tarama okumakla aynı iş değildir.

PDF’de OCR hesap gerektirmeden sunucu tarafında çalışır. İndirme Markdown’dır. Mevcut bir metin katmanı yanlış görünüyorsa Auto’nun o katmana güvenmemesi için Force OCR kullanın; belirli bir makinede PDFium ve modelin gerçekten kurulu olup olmadığını anlamak içinse gerçek bir istek göndermek, yetenek denetimini okumaktan daha güvenilirdir, çünkü denetim yalnızca uç noktanın var olduğunu doğrular, çalışma zamanının hazır olduğunu değil. Otomasyon anahtarları ve OpenAPI için Geliştiriciler sayfasına bakın.

Open tool
Process in the browser — no watermark, files removed after the job.
Open tool