Cómo averiguar DÓNDE se usa una fuente específica en un documento PDF

20

Para un PDF determinado que utiliza una cantidad de fuentes (por ejemplo, en Acrobat Reader, las fuentes utilizadas se pueden ver al seleccionar Archivos> Propiedades> Fuentes), ¿cómo puedo averiguar dónde se utiliza una determinada fuente en el documento (usando Adobe Acrobat 7 , Reader o una herramienta PDF gratuita)

Para ser claros: no quiero encontrar qué fuente se usa en un determinado texto (sé cómo hacerlo usando Acrobat 9 Professional, consulte esta pregunta de Superusuario ). En cambio, quiero encontrar dónde se usa una fuente específica.

Rabarberski
fuente
¿Podría responder al comentario anterior de @ Arjan?
Mehper C. Palavuzlar
1
@Arjan & Mehper: Hecho
Rabarberski

Respuestas:

15

Ahora es un poco vieja esta pregunta, pero vine aquí a través de Google, y alguien más también podría hacerlo. Mi solución fue crear un perfil Preflight (Acrobat 9 Pro) que presentaba errores en la información de la fuente. Al hacer clic en el nombre de la fuente en los resultados, salta a la página y resalta el texto. Lo malo es que obtienes una lista de todas las fuentes en todas las páginas organizadas por página en lugar de por nombre de fuente, pero me proporcionó una solución.

1) Crear un nuevo perfil Preflight personalizado Avanzado | Preflight | Opciones | Crear nuevo perfil Preflight

2) Dé un nombre al perfil (Fontfinder, por ejemplo)

3) En la ventana izquierda del cuadro de diálogo, haga clic en "Verificaciones personalizadas"

4) En la ventana derecha del cuadro de diálogo debajo del cuadro en blanco, haga clic en el símbolo más para crear un nuevo cheque e incluirlo en el perfil actual

5) Haga clic en "texto" en el Grupo, la propiedad inferior es "Tamaño de texto". Seleccione esto y haga clic en "Agregar"

6) El siguiente panel ahora tiene más opciones. Haga clic en las opciones desplegables probablemente etiquetadas como "igual a" y seleccione "menor que"

7) Ingrese un valor grande en el campo Número. Entré en 500

8) Arriba a la izquierda del cuadro de diálogo cuando verifique el informe de incendios como ... e ingrese algo como Tamaño de texto 500 pt o menos y haga clic en Aceptar. Debería haber una nueva verificación personalizada en el panel con una cruz roja al lado. Si la cruz no es roja, haga clic en la etiqueta de verificación y seleccione "error" debajo del panel

Repita los pasos anteriores para otra verificación de error, pero cambie la opción para 500 a "mayor o igual que", y Verificar informe de incendios como Texto 500 pt o mayor

9) Haga clic en Aceptar en el cuadro de diálogo Editar perfil

10) Ejecute el perfil en su PDF

Configuré la fuente como error en un tamaño de punto grande para que todos los errores se informaran en un grupo. La segunda comprobación es simplemente capturar cualquier fuente más grande que eso. Supongo que podría verificar el tamaño de pt 50000 y obtener el mismo resultado.

usuario164577
fuente
55
Esta respuesta ayudó mucho. Sin embargo, en el paso 5, en lugar de seleccionar el Textgrupo, seleccione el Fontgrupo y luego Base Font Nameescriba el nombre de la fuente, que funciona mucho mejor.
Jesse Good el
6

Aquí hay una forma de averiguar para cada página individual qué conjunto de fuentes se utiliza en ella. (Lo siento, no conozco una manera de hacer que el reconocimiento de la ubicación para el uso de la fuente sea más específico que el de una página sin recurrir a un software comercial expansivo como pdfToolbox4 de callassoftware.com o PitStop de Enfocus ).

Este método utiliza la pdffonts.exeutilidad XPDF , un software libre con licencia GPL:

  1. Vaya a: http://www.foolabs.com/xpdf/download.html y descargue: ftp://ftp.foolabs.com/pub/xpdf/xpdf-3.02pl4-win32.zip .
  2. Extraiga el archivo * .zip en algún directorio y localice las diversas utilidades * .exe que contiene.
  3. Ahora, para mostrar todas las fuentes utilizadas en la página 22 de un documento, ejecute:

    pdffonts.exe -f 22 -l 22 c:\path\to\some\pdf.pdf
    
  4. Para ver todas las fuentes utilizadas en el documento completo, simplemente ejecute:

    pdffonts.exe c:\path\to\some\pdf.pdf
    
  5. Para obtener una lista de las fuentes utilizadas en cada página de un PDF de 22 páginas, simplemente use:

    for /l %i in (1,1,22) do ^
          (echo.PAGE %i & pdffonts -f %i -l %i c:\path\to\some\pdf.pdf)
    
Kurt Pfeifle
fuente
44
Este método también funciona en Linux / Mac, excepto que, por supuesto, se llama al binario en pdffontslugar de pdffonts.exey la ruta usaría barras diagonales.
ShreevatsaR
1

En el informe creado por Acrobax X Preflight, haga clic en el botón "Mostrar en Snap" en la esquina inferior izquierda de la ventana del informe, luego, en la lista de ventanas, haga clic en + Descripción general y + Páginas, cada página del pdf aparece en la lista , haga clic en + Página: 1 por ejemplo, haga clic en + Fuentes, se enumeran las fuentes de la página, haga clic en una fuente y el texto en el que se usa se mostrará en la ventana Vista previa de verificación instantánea. Si es necesario, puede usar find en acrobat para localizar el texto. Descubrí que no siempre está en la página informada, pero la vista instantánea muestra con precisión en qué texto se usa una fuente en particular, de ahí la necesidad de usar una búsqueda de texto regular.

Greg
fuente
0

Quizás no sea relevante para usted si el PDF no se creó originalmente en Word, pero si lo fuera, puede encontrar las fuentes en Word usando Búsqueda avanzada, como se describe aquí .

En breve:

  1. Encontrar
  2. Avanzado...
  3. Formato -> Fuente

etc. Puedes resolver el resto.

Shaul dice que apoyo a Monica
fuente
0

El siguiente es un script que logra esto en Linux o sistemas operativos similares, utilizando solo software de código abierto (qpdf y 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
Ben Crowell
fuente
-1

En algún lugar de Internet encontré este otro método que funciona, si tienes Adobe Acrobat (creo que funciona después de 7).

Buscar herramientas> Editar texto del documento (estoy leyendo desde mi Acrobat 10X, puede ser diferente en su versión, pero debería poder encontrar de lo que estoy hablando)

Una vez que se selecciona un cuadro de texto, haga clic derecho y observe las propiedades. Allí, dirá la fuente utilizada.

editado: encontré el enlace a mi referencia: http://www.deepbluesky.com/blog/-/extracting-font-information-from-pdf-files_35/

newyuppie
fuente
Como se indicó específicamente en mi pregunta, el problema que está resolviendo no es mi pregunta.
Rabarberski