web-dev-qa-db-ja.com

PDFドキュメントで特定のフォントが使用されている場所を見つける方法

与えられたPDFはいくつかのフォントを使用します(たとえば、Acrobat Readerでは、[ファイル]> [プロパティ]> [フォント]を選択すると、使用されるフォントが表示されます)。どのようにして見つけることができますかwhereドキュメントで特定のフォントが使用されている(Adobe Acrobat 7、Reader、または無料のPDFツール)を使用)

明確にするために:特定のテキストでどのフォントが使用されているかを知りたくありません(Acrobat 9 Professionalを使用してその方法を知っています。詳細は このスーパーユーザーの質問 を参照してください)。代わりに、特定のフォントが使用されているwhereを検索します。

20
Rabarberski

今この質問は少し古いですが、私はGoogle経由でここに来ました、そして誰か他の人もそうかもしれません。私の解決策は、フォント情報にエラーのあるプリフライトプロファイル(Acrobat 9 Pro)を作成することでした。結果のフォント名をクリックすると、ページにジャンプしてテキストを強調表示します。欠点は、フォント名ではなくページごとに整理されたすべてのページのすべてのフォントのリストを取得できることですが、これは私に解決策を提供しました。

1)新しいカスタムプリフライトプロファイルを作成しますAdvanced | Preflight | Options | Create New Preflight Profile

2)プロファイルに名前を付けます(Fontfinderなど)。

3)ダイアログの左側のウィンドウで[カスタムチェック]をクリックします

4)空白のボックスの下のダイアログの右側のウィンドウで、プラス記号をクリックして新しいチェックを作成し、現在のプロファイルに含めます

5)グループの[テキスト]をクリックします。一番下のプロパティは[テキストサイズ]です。これを選択して「追加」をクリックします

6)下のペインにオプションが追加されました。おそらく「等しい」とラベル付けされたドロップダウンオプションをクリックし、「以下」を選択します

7)[数値]フィールドに大きな値を入力します。 500入りました

8)チェックがレポートを報告するときのダイアログの左上...として、テキストサイズ500 pt以下などを入力し、[OK]をクリックします。ペインの横に赤い十字がある新しいカスタムチェックがあるはずです。十字が赤でない場合は、チェックラベルをクリックし、ペインの下の[エラー]を選択します

上記の手順を繰り返して、別のエラーチェックを行いますが、500のオプションを「以上」に変更し、チェックはテキストとして500 pt以上のレポートを生成します。

9)[プロファイルの編集]ダイアログで[OK]をクリックします

10)PDFでプロファイルを実行します

すべてのエラーがグループで報告されるように、フォントを大きなポイントサイズでエラーに設定しました。 2番目のチェックは、それよりも大きいフォントをキャッチすることです。 ptサイズ50000を確認して同じ結果が得られると思います。

15
user164577

for each個々のページどのフォントのセットがその上で使用されているかを見つける方法は次のとおりです。 (申し訳ありませんが、callassoftware.comの pdfToolbox4 またはEnfocusなどの広範な商用ソフトウェアに頼らずに、フォントの使用に関する位置認識をページ単位でより具体的にする方法がわかりません' PitStop 。)

このメソッドはXPDFのpdffonts.exeユーティリティ、GPLライセンスのフリーソフトウェア:

  1. 移動: http://www.foolabs.com/xpdf/download.html とダウンロード: ftp://ftp.foolabs.com/pub/xpdf/xpdf-3.02pl4 -win32.Zip
  2. * .Zipファイルをディレクトリに抽出し、そこに含まれているさまざまな* .exeユーティリティを見つけます。
  3. 次に、ドキュメントの22ページで使用されているすべてのフォントを表示するには、次のコマンドを実行します。

    pdffonts.exe -f 22 -l 22 c:\path\to\some\pdf.pdf
    
  4. ドキュメント全体で使用されている all フォントを確認するには、次のコマンドを実行します。

    pdffonts.exe c:\path\to\some\pdf.pdf
    
  5. 22ページのPDFの各ページで使用されているフォントのリストを取得するには、次のコードを使用します。

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

私は Enfocus 'Pitstop Pro プラグインを使用しましたが、安くはありません。

3
e100

PDFが元々Wordで作成されていなかった場合はおそらく関係ありませんが、作成された場合は、詳細検索を使用してWordでフォントを見つけることができます こちら =。

要するに:

  1. 探す
  2. 上級...
  3. フォーマット->フォント

等。残りはエクササイズできます。

0
Shaul Behr

以下は、オープンソースソフトウェア(qpdfおよびpdffonts)のみを使用して、Linuxまたは同様のオペレーティングシステムでこれを実現するスクリプトです。

#!/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
0
Ben Crowell