Comment savoir OERE une police spécifique est utilisée dans un document PDF


20

Pour un PDF donné qui utilise un certain nombre de polices (par exemple, dans Acrobat Reader, les polices utilisées peuvent être vues lorsque vous sélectionnez Fichiers> Propriétés> Polices), comment puis-je savoir une certaine police est utilisée dans le document (à l'aide d'Adobe Acrobat 7 , Reader ou un outil PDF gratuit)

Juste pour être clair: je ne veux pas trouver quelle police est utilisée sur un certain morceau de texte (je sais comment faire cela avec Acrobat 9 Professional, voir cette question Super utilisateur ). Au lieu de cela, je veux trouver une police spécifique est utilisée.


Pourriez-vous répondre au commentaire ci-dessus de @ Arjan?
Mehper C. Palavuzlar

1
@Arjan & Mehper: Fait
Rabarberski

Réponses:


15

C'est un peu vieux maintenant cette question, mais je suis venu ici via Google, et quelqu'un d'autre pourrait aussi. Ma solution a été de créer un profil de contrôle en amont (Acrobat 9 Pro) qui a erré sur les informations de police. En cliquant sur le nom de la police dans les résultats, vous accédez à la page et surlignez le texte. L'inconvénient est que vous obtenez une liste de toutes les polices sur toutes les pages organisées par page plutôt que par nom de police, mais cela m'a fourni une solution.

1) Créer un nouveau profil de contrôle en amont personnalisé Avancé | Contrôle en amont | Options | Créer un nouveau profil de contrôle en amont

2) Donnez un nom au profil (Fontfinder, par exemple)

3) Dans la fenêtre de gauche de la boîte de dialogue, cliquez sur "Contrôles personnalisés"

4) Dans la fenêtre de droite de la boîte de dialogue sous la case vide, cliquez sur le symbole plus pour créer un nouveau chèque et l'inclure dans le profil actuel

5) Cliquez sur "texte" dans le groupe, la propriété du bas est "Taille du texte". Sélectionnez-le et cliquez sur "Ajouter"

6) Le volet ci-dessous a maintenant plus d'options. Cliquez sur les options déroulantes probablement étiquetées «égal à» et sélectionnez «inférieur à»

7) Entrez une grande valeur dans le champ Numéro. Je suis entré 500

8) En haut à gauche de la boîte de dialogue lorsque le rapport de vérification des incendies est ... et entrez quelque chose comme Taille du texte 500 pt ou moins et cliquez sur OK. Il devrait y avoir une nouvelle vérification personnalisée dans le volet avec une croix rouge à côté. Si la croix n'est pas rouge, cliquez sur la coche et sélectionnez "erreur" sous le volet

Répétez les étapes ci-dessus pour une autre vérification d'erreur, mais en changeant l'option pour 500 en "supérieur ou égal à", et Vérifier le rapport des incendies en tant que texte 500 pt ou supérieur

9) Cliquez sur OK dans la boîte de dialogue Modifier le profil

10) Exécutez le profil sur votre PDF

J'ai défini la police sur error sur une grande taille de point afin que toutes les erreurs soient signalées dans un groupe. La deuxième vérification consiste simplement à attraper n'importe quelle police plus grande que cela. Je suppose que vous pouvez vérifier la taille de pt 50000 et obtenir le même résultat.


5
Cette réponse a beaucoup aidé. Cependant, à l'étape 5, au lieu de sélectionner le Textgroupe, sélectionnez le Fontgroupe, puis Base Font Nametapez le nom de la police, ce qui fonctionne beaucoup mieux.
Jesse Good

6

Voici un moyen de savoir pour chaque page individuelle quel jeu de polices est utilisé dessus. (Désolé, je ne connais pas de moyen de rendre la détection d'emplacement pour l'utilisation des polices plus spécifique que sur la page sans recourir à un logiciel commercial expansif tel que pdfToolbox4 de callassoftware.com ou PitStop d' Enfocus .)

Cette méthode utilise l' pdffonts.exeutilitaire XPDF , un logiciel libre sous licence GPL:

  1. Accédez à: http://www.foolabs.com/xpdf/download.html et téléchargez: ftp://ftp.foolabs.com/pub/xpdf/xpdf-3.02pl4-win32.zip .
  2. Extrayez le fichier * .zip dans un répertoire et recherchez les divers utilitaires * .exe qu'il contient.
  3. Maintenant, pour afficher toutes les polices utilisées à la page 22 d'un document, exécutez:

    pdffonts.exe -f 22 -l 22 c:\path\to\some\pdf.pdf
    
  4. Pour voir toutes les polices utilisées dans le document complet, lancez simplement:

    pdffonts.exe c:\path\to\some\pdf.pdf
    
  5. Pour obtenir une liste des polices utilisées sur chaque page d'un PDF de 22 pages, utilisez simplement:

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

4
Cette méthode fonctionne également sous Linux / Mac, sauf bien sûr que le binaire est appelé pdffontsplutôt que pdffonts.exeet que le chemin utiliserait des barres obliques.
ShreevatsaR


1

Dans le rapport créé par le contrôle en amont Acrobax X, cliquez sur le bouton "Afficher en un clin d'œil" dans le coin inférieur gauche de la fenêtre du rapport, puis dans la liste des fenêtres, cliquez sur + Présentation et + Pages, chaque page du pdf est répertoriée , cliquez sur + Page: 1 par exemple, cliquez sur + Polices, les polices de la page sont répertoriées, cliquez sur une police et le texte sur lequel elle est utilisée s'affichera dans la fenêtre Vue de contrôle en amont. Si vous le devez, vous pouvez utiliser find in acrobat pour localiser le texte. J'ai trouvé que ce n'est pas toujours sur la page signalée, mais la vue instantanée montre avec précision sur quel texte une police particulière est utilisée, d'où la nécessité d'utiliser une recherche de texte régulière.


0

Peut-être que cela ne vous concerne pas si le PDF n'a pas été créé à l'origine dans Word, mais s'il l'était, vous pouvez trouver les polices dans Word à l'aide de la recherche avancée, comme décrit ici .

En bref:

  1. Trouver
  2. Avancée...
  3. Format -> Police

etc. Vous pouvez travailler le reste.


0

Ce qui suit est un script qui accomplit cela sur Linux ou des systèmes d'exploitation similaires, en utilisant uniquement des logiciels open source (qpdf et 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

Quelque part sur Internet, j'ai trouvé cette autre méthode qui fonctionne, si vous avez Adobe Acrobat (je pense que cela fonctionne après 7).

Outils de recherche> Modifier le texte du document (je lis depuis mon Acrobat 10X, cela peut être différent dans votre version, mais vous devriez pouvoir trouver de quoi je parle)

Une fois une zone de texte sélectionnée, cliquez avec le bouton droit de la souris et examinez les propriétés. Là, il dira la police utilisée.

édité: a trouvé le lien vers ma référence: http://www.deepbluesky.com/blog/-/extracting-font-information-from-pdf-files_35/


Comme indiqué spécifiquement dans ma question, le problème que vous résolvez n'est pas ma question.
Rabarberski
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.