Come faccio a decodificare e ritagliare i PDF in base alle pagine scansionate * automaticamente *?

Possibile duplicazione:
Quale software libero è ansible utilizzare per le immagini scansionate da deskew

Ho diversi PDF composti da scansioni di pagine di libri. Le scansioni sono fatte da due pagine alla volta e alcune di queste scansioni sono inclinate, rendendo il text leggermente inclinato.

Sto cercando uno strumento che mi permetta di eseguire un'ottimizzazione automatica facendo scorrere le scansioni senza perdere la leggibilità. Ho trovato il software GPL Briss per ritagliare le scansioni per avere un rapporto di pagina 1: 1 invece di 2: 1, ma non ho alcun strumento per spiegare le pagine.

Ho imbattuto in unpaper , un altro strumento open source che sembra perfetto per quello che voglio fare, ma questo strumento è solo Linux e non funziona direttamente sui file PDF.

Qualsiasi suggerimento è apprezzato.

Date un'occhiata a deskew . È uno strumento di row di command. Il download * zip sembra includere binari per Windows, MacOSX e Linux.

La licenza è MPL (Mozilla) o LPGL (GNU), qualunque cosa preferisci.

L'unico inconveniente per te sembra che non consumi i PDF, solo le immagini PNG e TIFF (AFAICS). Ciò significa che dovrai impostare un stream di lavoro di s.th. piace:

PDF.orig -> PNG.orig -> PNG.deskewed -> PDF.deskewed 

Non l'ho ancora provato (ancora), sono appena arrivato al sito web e l'ho segnato.

Oh, lasciami aggiungere un'altra risposta. Mi sono appena ricordato netpbm . Non l'ho usato da anni, ma penso che dovrei dare un'occhiata nuova …

netpbm è un toolkit molto potente per la linea di command per manipolare immagini grafiche. Fornisce quasi 300 utensili separati. Esso include convertitori per circa 100 formati grafici.

E ha anche uno strumento di row di command che può ruotare le immagini:

 pnmrotate 

E ha un altro strumento che cerca di scoprire l'angolo delle immagini ruotate:

 pamtilt 

pamtilt restituisce un numero fluttuante della sua ipotesi di rotazione dell'image. Quindi, la distriggerszione automatica delle immagini dovrebbe essere a portta di mano. Uno script di shell potrebbe essere scritto per farlo. Richiederebbe passi diversi:

  1. Convertire la pagina PDF in un formato image compatibile con netpbm con l'aiuto di Ghostscript.
  2. Usare pamtilt per scoprire automaticamente l'angolo inclinato dell'image.
  3. Usa pnmrotate per pnmrotate l'image.
  4. Riconvertire l'image in PDF.

Se mi fornisce l'accesso a un piccolo campione dei tuoi file PDF, potrei provare a trovare uno script di shell per eseguire l'attività.


(Mi chiedo pesantemente che [netpbm] non si sente di avere un tag qui sul superuser + stackoverflow.)