PDF 문서에서 특정 글꼴이 사용되는 위치를 찾는 방법


20

여러 글꼴을 사용하는 특정 PDF (예 : Acrobat Reader에서 파일> 속성> 글꼴을 선택할 때 사용 된 글꼴을 볼 수 있음) 에서 문서에서 특정 글꼴이 사용되는 위치를 어떻게 알 수 있습니까 (Adobe Acrobat 7 사용) , 리더 또는 무료 PDF 도구)

명확히하기 위해 : 특정 텍스트에 사용되는 글꼴을 찾고 싶지 않습니다 (Acrobat 9 Professional을 사용하여 글꼴을 만드는 방법을 알고 있습니다. 이 슈퍼 사용자 질문을 참조하십시오 ). 대신 특정 글꼴이 사용되는 위치 를 찾고 싶습니다 .


@Arjan의 위의 의견에 대답 해 주시겠습니까?
Mehper C. Palavuzlar

1
@Arjan & Mehper : 완료
Rabarberski

답변:


15

이 질문은 조금 오래되었지만 Google을 통해 여기에 왔으며 다른 사람도있을 수 있습니다. 내 솔루션은 글꼴 정보에 오류가있는 프리 플라이트 프로파일 (Acrobat 9 Pro)을 만드는 것입니다. 결과에서 글꼴 이름을 클릭하면 페이지로 이동하여 텍스트를 강조 표시합니다. 단점은 모든 페이지의 모든 글꼴 목록을 글꼴 이름이 아닌 페이지별로 구성하지만 나에게 해결책을 제공한다는 것입니다.

1) 새로운 커스텀 프리 플라이트 프로파일 생성 Advanced | Preflight | Options | 새 프리 플라이트 프로파일 생성

2) 프로필 이름을 지정하십시오 (예 : 글꼴).

3) 대화 상자의 왼쪽 창에서 "맞춤 검사"를 클릭하십시오

4) 빈 상자 아래 대화 상자의 오른쪽 창에서 더하기 기호를 클릭하여 새 검사를 작성하고 현재 프로파일에 포함하십시오

5) 그룹에서 "텍스트"를 클릭하면 맨 아래 속성은 "텍스트 크기"입니다. 이것을 선택하고 "추가"를 클릭하십시오

6) 아래 창에는 더 많은 옵션이 있습니다. "같음"이라고 표시된 드롭 다운 옵션을 클릭하고 "보다 작음"을 선택하십시오.

7) 숫자 필드에 큰 값을 입력하십시오. 나는 500을 입력

8) 확인시 대화 상자의 왼쪽 상단은 다음과 같이 보고서를보고하고 텍스트 크기 500pt 이하를 입력하고 확인을 클릭하십시오. 창에 옆에 빨간색 십자가가있는 새로운 사용자 지정 검사가 있어야합니다. 십자가가 빨간색이 아닌 경우 체크 레이블을 클릭하고 창 아래에서 "오류"를 선택하십시오.

다른 오류 검사에 대해 위의 단계를 반복하되 500에 대한 옵션을 "보다 크거나 같음"으로 변경하고 화재 검사 보고서를 텍스트 500pt 이상으로 표시하십시오.

9) 프로파일 편집 대화 상자에서 확인을 클릭하십시오.

10) PDF에서 프로파일을 실행하십시오.

큰 포인트 크기에서 글꼴을 오류로 설정하여 모든 오류가 그룹으로보고되도록했습니다. 두 번째 확인은 단순히 그보다 큰 글꼴을 잡는 것입니다. pt 크기 50000을 확인하고 동일한 결과를 얻을 수 있다고 가정합니다.


5
이 답변은 많은 도움이되었습니다. 그러나 5 단계에서 Text그룹 을 선택하는 대신 그룹을 선택한 Font다음 Base Font Name글꼴 이름을 입력하면 훨씬 좋습니다.
Jesse Good

6

여기에 사용되는 글꼴 세트가있는 개별 페이지 를 찾는 방법이 있습니다. (죄송합니다, callassoftware.com의 pdfToolbox4 또는 Enfocus ' PitStop 과 같은 광범위한 상용 소프트웨어에 의존하지 않고 글꼴 사용에 대한 위치 인식을 페이지 단위보다 더 구체적으로 만드는 방법을 모르겠습니다 .)

이 방법 pdffonts.exe은 GPL 라이센스가있는 자유 소프트웨어 인 XPDF의 유틸리티를 사용합니다 .

  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. 전체 문서에서 사용 된 모든 글꼴 을 보려면 다음을 실행하십시오.

    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)
    

4
이 방법은 Linux / Mac에서도 작동합니다. 물론 바이너리가 pdffonts아닌 바이너리가 호출 pdffonts.exe되고 경로에 슬래시가 사용됩니다.
ShreevatsaR


1

Acrobax X Preflight에서 생성 한 보고서에서 보고서 창의 왼쪽 하단에있는 "스냅으로 표시"버튼을 클릭 한 다음 창 목록에서 + 개요를 클릭하고 + 페이지를 클릭하십시오. pdf의 각 페이지가 나열됩니다. 예를 들어 + 글꼴을 클릭하면 페이지의 글꼴이 나열되고 글꼴을 클릭하면 사용 된 텍스트가 프리 플라이트 스냅 뷰 창에 표시됩니다. 필요한 경우 acrobat에서 찾기를 사용하여 텍스트를 찾을 수 있습니다. 나는 그것이보고 된 페이지에 항상있는 것은 아니라는 것을 알았지 만 스냅 뷰는 특정 글꼴이 사용되는 텍스트를 정확하게 표시하므로 일반 텍스트 찾기를 사용해야합니다.



0

다음은 오픈 소스 소프트웨어 (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

-1

인터넷 어딘가에 Adobe Acrobat이있는 경우이 다른 방법이 작동한다는 것을 알았습니다 (7 이후에 작동한다고 생각합니다).

찾기 도구> 문서 텍스트 편집 (Acrobat 10X에서 읽는 중입니다. 버전에 따라 다를 수 있지만 원하는 내용을 찾을 수 있어야합니다)

텍스트 상자가 선택되면 마우스 오른쪽 버튼을 클릭하고 속성을 확인하십시오. 거기에 사용 된 글꼴이 표시됩니다.

편집 : 내 참조에 대한 링크를 찾았습니다 : http://www.deepbluesky.com/blog/-/extracting-font-information-from-pdf-files_35/


내 질문에 구체적으로 언급했듯이, 해결하려는 문제는 내 질문이 아닙니다.
Rabarberski
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.