Come scoprire DOVE viene utilizzato un carattere specifico in un documento PDF


20

Per un determinato PDF che utilizza un numero di caratteri (ad esempio, in Acrobat Reader, i caratteri utilizzati possono essere visualizzati selezionando File> Proprietà> Caratteri) come posso sapere dove viene utilizzato un determinato carattere nel documento (usando Adobe Acrobat 7 , Reader o uno strumento PDF gratuito)

Giusto per essere chiari: non voglio trovare quale tipo di carattere viene utilizzato su un determinato testo (so come farlo utilizzando Acrobat 9 Professional, vedere questa domanda da superutente ). Invece voglio trovare dove viene utilizzato un font specifico.


Potresti rispondere al commento sopra di @ Arjan?
Mehper C. Palavuzlar,

1
@Arjan & Mehper: Fatto
Rabarberski, il

Risposte:


15

Ora è un po 'vecchio questa domanda, ma sono venuto qui tramite Google e anche qualcun altro potrebbe esserlo. La mia soluzione è stata quella di creare un profilo Preflight (Acrobat 9 Pro) che ha errato sulle informazioni sui caratteri. Facendo clic sul nome del carattere nei risultati, si passa alla pagina e si evidenzia il testo. Il rovescio della medaglia è che si ottiene un elenco di tutti i caratteri su tutte le pagine organizzate per pagina anziché per nome del carattere, ma ha fornito una soluzione per me.

1) Crea un nuovo profilo Preflight personalizzato Avanzate | Preflight | Opzioni | Crea nuovo profilo Preflight

2) Dai un nome al profilo (Fontfinder, diciamo)

3) Nella finestra di sinistra della finestra di dialogo fai clic su "Controlli personalizzati"

4) Nella finestra a destra della finestra di dialogo sotto la casella vuota fare clic sul simbolo più per creare un nuovo segno di spunta e includerlo nel profilo corrente

5) Fai clic su "testo" nel gruppo, la proprietà inferiore è "Dimensione testo". Seleziona questo e fai clic su "Aggiungi"

6) Il riquadro sottostante ora ha più opzioni. Fai clic sulle opzioni a discesa probabilmente etichettate "uguale a" e seleziona "meno di"

7) Immettere un valore elevato nel campo Numero. Ho inserito 500

8) In alto a sinistra nella finestra di dialogo quando il segno di spunta segnala come ... e inserisci qualcosa come Dimensione del testo 500 pt o meno e fai clic su OK. Dovrebbe esserci un nuovo controllo personalizzato nel riquadro con una croce rossa accanto. Se la croce non è rossa, fai clic sull'etichetta di controllo e seleziona "errore" sotto il riquadro

Ripetere i passaggi precedenti per un altro controllo degli errori, ma cambiando l'opzione per 500 su "maggiore o uguale a" e Controlla il rapporto degli incendi come testo 500 pt o maggiore

9) Fare clic su OK nella finestra di dialogo Modifica profilo

10) Esegui il profilo sul tuo PDF

Ho impostato il carattere su errore su una dimensione in punti di grandi dimensioni in modo che tutti gli errori vengano segnalati in un gruppo. Il secondo controllo è semplicemente quello di catturare qualsiasi carattere più grande di quello. Suppongo che potresti verificare la dimensione del pt 50000 e avere lo stesso risultato.


5
Questa risposta ha aiutato molto. Tuttavia, al passaggio 5, anziché selezionare il Textgruppo, selezionare il Fontgruppo, quindi Base Font Namedigitare il nome del carattere, che funziona molto meglio.
Jesse Good,

6

Ecco un modo per scoprire per ogni singola pagina quale set di caratteri viene utilizzato su di essa. (Mi dispiace, non so un modo per rendere la posizione consapevolezza per un utilizzo di carattere più specifico di pagina-saggio senza ricorrere a espansiva software commerciale, come del callassoftware.com pdfToolbox4 o Enfocus' PitStop .)

Questo metodo utilizza l' pdffonts.exeutilità di XPDF , un software gratuito con licenza GPL:

  1. Vai a: http://www.foolabs.com/xpdf/download.html e scarica: ftp://ftp.foolabs.com/pub/xpdf/xpdf-3.02pl4-win32.zip .
  2. Estrarre il file * .zip in una directory e individuare le varie utility * .exe in esso contenute.
  3. Ora, per mostrare tutti i caratteri utilizzati a pagina 22 di un documento, eseguire:

    pdffonts.exe -f 22 -l 22 c:\path\to\some\pdf.pdf
    
  4. Per vedere tutti i caratteri utilizzati nel documento completo, basta eseguire:

    pdffonts.exe c:\path\to\some\pdf.pdf
    
  5. Per ottenere un elenco di caratteri utilizzati su ogni pagina di un PDF di 22 pagine, basta usare:

    for /l %i in (1,1,22) do ^
          (echo.PAGE %i & pdffonts -f %i -l %i c:\path\to\some\pdf.pdf)
    

4
Questo metodo funziona anche su Linux / Mac, tranne ovviamente che il binario viene chiamato pdffontspiuttosto che pdffonts.exee il percorso userebbe le barre in avanti.
ShreevatsaR,


1

Nel rapporto creato da Acrobax X Preflight, fai clic sul pulsante "Mostra in Snap" nell'angolo in basso a sinistra della finestra del rapporto, quindi nell'elenco della finestra fai clic su + Panoramica e + Pagine, Ogni pagina del pdf è elencata , fai clic su + Pagina: 1 ad esempio, fai clic su + Caratteri, i caratteri per la pagina sono elencati, fai clic su un carattere e il testo su cui viene utilizzato verrà visualizzato nella finestra Anteprima di preflight. Se necessario, è possibile utilizzare trova in acrobat per individuare il testo. Ho scoperto che non è sempre nella pagina riportata, ma la vista istantanea mostra accuratamente su quale testo viene utilizzato un determinato carattere, quindi la necessità di utilizzare una normale ricerca di testo.


0

Forse non è rilevante per te se il PDF non è stato originariamente creato in Word, ma se lo fosse, puoi trovare i caratteri in Word usando la Ricerca avanzata, come descritto qui .

In breve:

  1. Trova
  2. Avanzate...
  3. Formato -> Carattere

ecc. Puoi fare il resto.


0

Di seguito è riportato uno script che esegue ciò su Linux o sistemi operativi simili, utilizzando solo software open source (qpdf e pdffonts).

#!/usr/bin/ruby

# usage:
#  find_page_where_font_is_used.rb file.pdf Nimbus
# Finds the first page in file.pdf where a font with a name containing Nimbus is used.
# Font names are matched in a case-insensitive way.
# Requires pdffonts, qpdf.

def die(message)
  $stderr.print "error in find_page_where_font_is_used.rb: #{message}\n"
  exit(-1)
end

def shell_out(command)
  output = `#{command}`
  result = $?
  if !(result.success?) then
    die("error in command #{command}")
  end
  return output.strip
end

def is_used_in_page_range(font,pdf,from,to)
  table = shell_out("pdffonts -f #{from} -l #{to} #{pdf}")
  if table=~/^[a-zA-Z0-9\+\-]*#{font}/i then
    return true
  else
    return false
  end
end

def search_for_font(font,pdf,from,to)
  print "Searching pages #{from}-#{to}.\n"
  if from==to then
    return from
  else
    mid = (from+to)/2
    if mid==to then mid=to-1 end
    if is_used_in_page_range(font,pdf,from,mid) then
      return search_for_font(font,pdf,from,mid)
    else
      return search_for_font(font,pdf,mid+1,to)
    end
  end
end

def main

  pdf = ARGV[0]
  font = ARGV[1] # can be a substring, e.g., Deja or Nimbus
  n = shell_out("qpdf --show-npages #{pdf}").to_i
  print "total pages = #{n}\n"
  if !is_used_in_page_range(font,pdf,1,n) then
    print "No font in #{pdf} has a name containing the string #{font} (case-insensitive).\n"
    exit(0)
  end
  p = search_for_font(font,pdf,1,n)
  print "The font first occurs on page #{p}.\nOutput of pdffonts for this page:\n"
  print shell_out("pdffonts -f #{p} -l #{p} #{pdf}")+"\n"
end

main

-1

Da qualche parte in Internet ho trovato questo altro metodo che funziona, se hai Adobe Acrobat (penso che funzioni dopo il 7).

Trova strumenti> Modifica testo documento (sto leggendo dal mio Acrobat 10X, potrebbe essere diverso nella tua versione, ma dovresti riuscire a trovare quello di cui sto parlando)

Una volta selezionata una casella di testo, fai clic con il pulsante destro del mouse e osserva le proprietà. Lì, dirà il carattere utilizzato.

modificato: trovato il link al mio riferimento: http://www.deepbluesky.com/blog/-/extracting-font-information-from-pdf-files_35/


Come specificamente indicato nella mia domanda, il problema che stai risolvendo non è la mia domanda.
Rabarberski,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.