2012-01-06 10 views
6

Attualmente stiamo lavorando con una selezione di editori per generare libri online dai loro PDF. La nostra app legacy usa flex, quindi per questo stiamo convertendo il PDF in file SWF usando PDF2SWF per SWFTools.Accesso ai file di font all'interno del PDF

Il problema che stiamo riscontrando è che il testo all'interno del documento SWF non viene evidenziato dal nostro flex reader quando l'utente esegue una ricerca. Dopo una rapida indagine abbiamo scoperto che quando l'estrazione di testo abbiamo bisogno di incorporare i caratteri che vengono utilizzati dal documento PDF:

http://wiki.swftools.org/wiki/How_do_I_highlight_text_in_the_SWF%3F

pdf2swf -F $YOUR_FONTS_DIR$ -f input.pdf -o output.swf 

Come si può vedere dal codice di cui sopra, abbiamo bisogno di un percorso di una directory di font contenente i caratteri trovati all'interno di quel PDF.

Poiché convertiremo un numero elevato di PDF, è possibile accedere ai file dei font direttamente tramite il PDF piuttosto che avere molti font memorizzati nella nostra app?

Informazioni aggiuntive

La nostra applicazione è scritto in Java.

Attualmente stiamo usando PDFBox e Ghostscript all'interno dell'app, quindi se qualche soluzione utilizza queste librerie allora questa sarebbe un'opzione preferita, ma siamo aperti a tutte le idee.

+0

questione connessa: http://stackoverflow.com/ q/3488042/681807 –

risposta

7

I file PDF non contengono i 'file' di caratteri, potrebbero non contenere alcun carattere, sebbene ciò sia raro. I dati di carattere incorporati possono essere in una sconcertante varietà di formati:

  • tipo font 1 PostScript
  • tipo 3 PostScript
  • font TrueType
  • font
  • PostScript CFF
  • CIDFonts con contorni di tipo 1 PostScript
  • CIDFont con contorni PostScript tipo 3
  • CIDFonts con contorni TrueType
  • CIDFonts con CFF delinea
  • CIDFonts con immagini bitmap

Sarà l'applicazione in grado di leggere tutti i questi formati di font? Se vuoi usarli, allora devi usare i caratteri incorporati nel file PDF poiché questi saranno molto spesso caratteri secondari e forniti con una codifica personalizzata, il che significa che anche se hai il carattere originale, non puoi usalo perché la codifica non sarà corretta.

Naturalmente può darsi che questi file PDF sono tutti creati in modo coerente e non usare font incorporati, ma ho i miei dubbi ....

+0

Nota che CIDFonts generalmente non esegue la mappatura ai codici carattere Unicode, quindi se i tuoi PDF li contengono, farai fatica a mappare i caratteri del documento in caratteri Unicode per cercare comunque. – Rup

+0

@ KenS - grazie per la tua risposta.I tuoi dubbi sono corretti, i PDF utilizzano font di sottoinsiemi incorporati. Suppongo che tu non abbia una fonte per supportare la tua risposta? –

+1

@Rup - grazie per averlo indicato. Supporteremo una vasta gamma di lingue, ma non quelle in stile di script (giapponese, coreano, ecc.) –