PDF belgesinde belirli bir yazı tipinin NEREDE kullanıldığını bulma


20

Çok sayıda yazı tipi kullanan belirli bir PDF için (örn. Acrobat Reader'da kullanılan yazı tipleri Dosyalar> Özellikler> Yazı Tipleri seçildiğinde görülebilir) belgede belirli bir yazı tipinin nerede kullanıldığını nasıl öğrenebilirim (Adobe Acrobat 7 kullanarak , Reader veya ücretsiz bir PDF aracı)

Açık olmak gerekirse: Belirli bir metin parçasında hangi yazı tipinin kullanıldığını bulmak istemiyorum (Acrobat 9 Professional kullanarak bunu nasıl yapacağımı biliyorum, bu Süper Kullanıcı sorusuna bakın ). Bunun yerine belirli bir yazı tipinin nerede kullanıldığını bulmak istiyorum .


@ Arjan'ın yukarıdaki yorumuna cevap verebilir misiniz?
Mehper C.Palavuzlar

1
@Arjan & Mehper: Bitti
Rabarberski

Yanıtlar:


15

Şimdi bu soru biraz eski ama buraya Google üzerinden geldim ve başka biri de gelebilir. Benim çözümüm, yazı tipi bilgilerinde hatalı olan bir Ön Kontrol profili (Acrobat 9 Pro) oluşturmaktı. Sonuçlarda yazı tipi adını tıklattıktan sonra sayfaya atlar ve metni vurgular. Dezavantajı, yazı tipi adına göre sayfaya göre düzenlenmiş tüm sayfalardaki tüm yazı tiplerinin bir listesini almanızdır, ancak benim için bir çözüm sağlamıştır.

1) Yeni bir Özel ön kontrol profili oluşturun Gelişmiş | Ön Kontrol | Seçenekler | Yeni Ön Kontrol Profili Oluştur

2) Profile bir ad verin (Fontfinder, diyelim)

3) İletişim kutusunun sol penceresinde "Özel denetimler" i tıklayın

4) Boş kutunun altındaki iletişim kutusunun sağ penceresinde yeni bir onay oluşturmak ve mevcut profile dahil etmek için artı sembolünü tıklayın

5) Grupta "metin" i tıklayın, alt özellik "Metin boyutu" dur. Bunu seçin ve "Ekle" yi tıklayın

6) Aşağıdaki bölmede artık daha fazla seçenek var. Muhtemelen "eşit" olarak etiketlenmiş açılır seçenekleri tıklayın ve "küçüktür" ü seçin

7) Sayı alanına büyük bir değer girin. 500 girdim

8) Denetim raporunu şu şekilde başlat iletişim kutusunun sol üst köşesinde ... ve 500 pt veya daha küçük Metin boyutu gibi bir şey girin ve Tamam'ı tıklayın. Bölmede yanında kırmızı bir çarpı işareti olan yeni bir özel kontrol olmalıdır. Çarmıh kırmızı değilse, kontrol etiketine tıklayın ve bölmenin altındaki "hata" yı seçin

Başka bir hata kontrolü için yukarıdaki adımları tekrarlayın, ancak seçeneği 500'den "büyük veya ona eşit" olarak değiştirin ve Yangınları kontrol raporu Metin 500 pt veya daha büyük olarak kontrol edin

9) Profili Düzenle İletişim Kutusunda Tamam'ı tıklatın

10) Profili PDF'nizde çalıştırın

Yazı tipini büyük bir nokta boyutunda hataya ayarladım, böylece tüm hatalar bir grupta raporlanır. İkinci kontrol basitçe bundan daha büyük yazı tiplerini yakalamaktır. Sanırım pt boyutu 50000'ü kontrol edebilir ve aynı sonuca sahip olabilirsiniz.


5
Bu cevap çok yardımcı oldu. Ancak, 5. adımda, Textgrubu seçmek yerine, grubu seçin Fontve ardından Base Font Nameçok daha iyi çalışan yazı tipinin adını yazın.
Jesse Good

6

Aşağıda, üzerinde kullanılan yazı tipi kümesinin her bir sayfasını nasıl bulacağınız anlatılmaktadır. (Üzgünüm, böyle callassoftware.com en ticari yazılım geniş başvurmadan yazı kullanımı sayfa bilge daha spesifik için lokasyon farkındalık yapmak için bir yol bilmiyorum pdfToolbox4 veya Enfocus' PitStop .)

Bu yöntem pdffonts.exeGPL lisanslı Özgür Yazılım olan XPDF yardımcı programını kullanır :

  1. : Git http://www.foolabs.com/xpdf/download.html ve indirme: ftp://ftp.foolabs.com/pub/xpdf/xpdf-3.02pl4-win32.zip .
  2. * .Zip dosyasını bir dizine çıkarın ve içerdiği çeşitli * .exe yardımcı programlarını bulun.
  3. Şimdi, bir belgenin 22. sayfasında kullanılan tüm yazı tiplerini göstermek için şunu çalıştırın:

    pdffonts.exe -f 22 -l 22 c:\path\to\some\pdf.pdf
    
  4. Belgenin tamamında kullanılan tüm yazı tiplerini görmek için şunu çalıştırın:

    pdffonts.exe c:\path\to\some\pdf.pdf
    
  5. 22 sayfalık PDF'nin her sayfasında kullanılan yazı tiplerinin bir listesini elde etmek için şunu kullanın:

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

4
Bu yöntem aynı zamanda Linux / Mac üzerinde de çalışır, tabii ki ikili pdffontsyerine adlandırılır pdffonts.exeve yol ileri eğik çizgiler kullanır.
ShreevatsaR


1

Acrobax X Ön Kontrol tarafından oluşturulan raporda, rapor penceresinin sol alt köşesindeki "Hızlıca Göster" düğmesini tıklayın, ardından pencere listesinde + Genel Bakış ve + Sayfalar'ı tıklayın, pdf'nin her sayfası listelenir , + Sayfa: 1'i tıklayın, örneğin + Yazı Tipleri'ni tıklayın, sayfanın yazı tipleri listelenir, bir yazı tipini tıklayın ve üzerinde kullanılan metin Ön Kontrol Görünümü'nde gösterilir. Gerekirse metni bulmak için acrobat'ta find komutunu kullanabilirsiniz. Her zaman rapor edilen sayfada olmadığını fark ettim, ancak anlık görünüm, belirli bir yazı tipinin hangi metinde kullanıldığını doğru bir şekilde gösteriyor, bu nedenle normal bir metin bulma kullanmanız gerekiyor.


0

PDF orijinal olarak Word'de oluşturulmamışsa, sizinle ilgisi olmayabilir, ancak öyleyse, burada açıklandığı gibi Gelişmiş Arama'yı kullanarak Word'deki yazı tiplerini bulabilirsiniz .

Kısacası:

  1. bulmak
  2. İleri...
  3. Biçim -> Yazı Tipi

Geri kalanını halledebilirsiniz.


0

Aşağıda, bunu yalnızca açık kaynaklı yazılım (qpdf ve pdffonts) kullanarak Linux veya benzer işletim sistemlerinde gerçekleştiren bir komut dosyasıdır.

#!/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

İnternette bir yerde, Adobe Acrobat varsa (7'den sonra işe yaradığını düşünüyorum) çalışan bu diğer yöntemi buldum.

Araçlar Bul> Belge Metnini Düzenle (Acrobat 10X'imden okuyorum, sürümünüzde farklı olabilir, ancak neden bahsettiğimi bulabilmeniz gerekir)

Bir metin kutusu seçildikten sonra, sağ tıklayın ve özelliklere bakın. Orada, kullanılan yazı tipini söyleyecektir.

düzenlendi: referansımın bağlantısını buldu: http://www.deepbluesky.com/blog/-/extracting-font-information-from-pdf-files_35/


Sorumda özellikle belirtildiği gibi, çözdüğünüz sorun sorum değil.
Rabarberski
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.