2015-06-19 2 views
5

Ho uno pdf con filigrana sullo sfondo di esso. Quando si avvia la scansione per evidenziare qualsiasi parola con filigrana o annotazione sullo sfondo, questa viene selezionata poiché viene trovata per prima nell'area tattile.

Sto utilizzando CGPDFScanner per eseguire la scansione del testo.

La mia domanda è come rilevare se il testo scansionato è testo in background o testo reale in PDF? Come faccio a distinguere tra testo standard e testo di annotazione?iOS - Distinzione tra testo di sfondo (filigrana) e testo reale in PDF

Grazie.

+1

Purtroppo non riesco a scaricare il PDF, premo il pulsante sulla pagina del servizio di condivisione file ma la pagina si limita ad aggiornare. Detto questo, però, in generale non hai alcuna possibilità di differenziare tra "sfondo" e testo "reale". Nel caso di PDF * taggati * potresti avere una possibilità, il parco acquatico potrebbe essere etichettato come dati degli artefatti. – mkl

+0

@mkl: si prega di trasformare il tuo commento in una vera risposta per ottenere il mio upvote. :-) –

+0

@mkl Spiacente condividerò di nuovo il file. – Swaroop

risposta

3

In generale non è possibile distinguere in modo affidabile tra "sfondo" e testo "reale". Il testo viene disegnato da qualche parte sulla pagina in un certo ordine, e ciò che è in primo piano, sfondo, testo normale, ..., è una questione di percezione umana e potrebbe non riflettersi affatto nella struttura del flusso di contenuti PDF.

Puoi provare alcune congetture istruite, ad es. supponendo che il testo "reale" sia in colori forti mentre il testo in background è in colori chiari, o il testo "reale" è disposto in linee orizzontali, mentre il testo sullo sfondo è spesso più diagonale, ecc. Ma tutto questo è congettura, nulla su cui contare sicuro.

D'altra parte, in caso di PDF con tag si potrebbe avere una possibilità, la filigrana potrebbe essere taggata come dati artefatto.

PS Ho appena visto che hai condiviso di nuovo il tuo file. Nel caso del tuo documento l'euristica che ho menzionato funzionerebbe, il testo di fondo è grigiastro e stampato diagonalmente.

Pertanto, durante la scansione è necessario tenere traccia del colore di riempimento e/o delle matrici di trasformazione. Non appena lo scanner trova del testo, sai se è in background o in primo piano in base al colore corrente e/o al valore della matrice.

Attenzione, tuttavia, non è così semplice con tutti i documenti.

+0

Grazie per la risposta :). Ho pensato a una supposizione basata su altezza e larghezza del testo della filigrana. Può essere una delle euristiche giusto? Durante la scansione, il rettangolo che ottengo per quel testo sta prendendo il 3/4 della pagina, quindi posso decidere di saltare anche su quella base, giusto? O potrebbe andare storto? – Swaroop

+0

Anche questa è un'altra regola euristica. Ma attenzione, l'euristica è una supposizione dopo tutto e fallirà ogni tanto. – mkl

+0

Ok .. Grazie mille per l'aiuto. :) – Swaroop

Problemi correlati