कैसे पता लगाएं कि एक पीडीएफ दस्तावेज़ में एक विशिष्ट फ़ॉन्ट का उपयोग कैसे किया जाता है


20

किसी दिए गए पीडीएफ के लिए जो कई फोंट का उपयोग करता है (उदाहरण के लिए, एक्रोबैट रीडर में, उपयोग किए गए फोंट को फाइल> गुण> फॉन्ट का चयन करते समय देखा जा सकता है) मैं कैसे पता लगा सकता हूं कि दस्तावेज़ में एक निश्चित फ़ॉन्ट का उपयोग कहां किया गया है (एडोब एक्रोबेट 7 का उपयोग करके) , पाठक, या एक मुफ्त पीडीएफ उपकरण)

बस स्पष्ट होने के लिए: मैं यह नहीं खोजना चाहता कि पाठ के एक निश्चित टुकड़े पर किस फ़ॉन्ट का उपयोग किया जाता है (मुझे पता है कि कैसे करना है कि एक्रोबेट 9 प्रोफेशनल का उपयोग करके, यह सुपर उपयोगकर्ता प्रश्न देखें )। इसके बजाय मैं खोजना चाहता हूं कि एक विशिष्ट फ़ॉन्ट का उपयोग कहां किया जाता है।


क्या आप कृपया @ अर्जन की उपरोक्त टिप्पणी का जवाब दे सकते हैं?
मेहपर सी। पलुवज़लर

1
@ अर्जन एंड मेपर: हो गया
Rabarberski

जवाबों:


15

यह सवाल अब थोड़ा पुराना है, लेकिन मैं Google के माध्यम से यहां आया था, और कोई और भी हो सकता है। मेरा समाधान एक प्रीफ़लाइट प्रोफ़ाइल (एक्रोबैट 9 प्रो) बनाने के लिए था, जो फ़ॉन्ट जानकारी पर गलत है। परिणामों में फ़ॉन्ट नाम पर क्लिक करने पर पृष्ठ पर कूदता है और पाठ को हाइलाइट करता है। नकारात्मक पक्ष यह है कि आपको फ़ॉन्ट नाम के बजाय पृष्ठ द्वारा आयोजित सभी पृष्ठों पर सभी फोंट की एक सूची मिलती है, लेकिन इसने मेरे लिए एक समाधान प्रदान किया।

1) एक नया कस्टम प्रीफ़लाइट प्रोफ़ाइल बनाएँ उन्नत | Preflight | विकल्प | नई प्रीफ़लाइट प्रोफ़ाइल बनाएँ

2) प्रोफ़ाइल को एक नाम दें (Fontfinder, कहें)

3) संवाद की बाईं विंडो में "कस्टम चेक" पर क्लिक करें

4) खाली बॉक्स के नीचे डायलॉग की दाईं विंडो में एक नया चेक बनाने के लिए प्लस करेंट पर क्लिक करें और करंट प्रोफाइल में शामिल करें

5) समूह में "पाठ" पर क्लिक करें, नीचे की संपत्ति "पाठ का आकार" है। इसे चुनें और "जोड़ें" पर क्लिक करें

6) अब नीचे दिए गए फलक में अधिक विकल्प हैं। संभवतः "के बराबर" लेबल वाले ड्रॉप डाउन विकल्पों पर क्लिक करें और "इससे कम" चुनें

7) नंबर फ़ील्ड में एक बड़ा मान दर्ज करें। मैंने 500 दर्ज किए

8) जब आग की जाँच करें तो डायलॉग के शीर्ष बाएँ ... के रूप में और पाठ आकार 500 pt या उससे कम कुछ दर्ज करें और ठीक पर क्लिक करें। उसके बगल में लाल क्रॉस के साथ फलक में एक नया कस्टम चेक होना चाहिए। यदि क्रॉस लाल नहीं है, तो चेक लेबल पर क्लिक करें, और फलक के नीचे "त्रुटि" चुनें

एक और त्रुटि जांच के लिए ऊपर दिए गए चरणों को दोहराएं, लेकिन 500 के विकल्प को "इससे अधिक या बराबर" में बदल दें, और आग की रिपोर्ट को पाठ 500 pt या अधिक के रूप में जांचें।

9) एडिट प्रोफाइल डायलॉग में ओके पर क्लिक करें

10) अपने पीडीएफ पर प्रोफ़ाइल को चलाएं

मैंने एक बड़े बिंदु आकार पर त्रुटि के लिए फ़ॉन्ट सेट किया है ताकि सभी त्रुटियां एक समूह में रिपोर्ट करें। दूसरा चेक किसी भी फॉन्ट को पकड़ने के लिए है। मुझे लगता है कि आप पीटी आकार 50000 की जांच कर सकते हैं और उसी का परिणाम है।


5
इस जवाब से बहुत मदद मिली। हालांकि, चरण 5 पर, Textसमूह का चयन करने के बजाय, समूह का चयन करें Font, और फिर Base Font Nameफ़ॉन्ट के नाम पर टाइप करें, जो बहुत अच्छे वायसर का काम करता है।
जेसी गुड

6

यहाँ एक तरीका है कि प्रत्येक व्यक्तिगत पेज के लिए कैसे पता लगाया जाए कि फोंट का सेट किस पर प्रयोग किया जाता है। (क्षमा करें, मैं विस्तार से वाणिज्यिक सॉफ़्टवेयर जैसे कि 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. पूर्ण दस्तावेज़ में उपयोग किए जाने वाले सभी फोंट देखने के लिए , बस चलाएं:

    pdffonts.exe c:\path\to\some\pdf.pdf
    
  5. 22-पृष्ठ के प्रत्येक पृष्ठ पर उपयोग किए जाने वाले फोंट की सूची प्राप्त करने के लिए, बस उपयोग करें:

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

4
यह विधि लिनक्स / मैक पर भी काम करती है, सिवाय इसके कि बाइनरी को pdffontsइसके बजाय कहा जाता है pdffonts.exeऔर पथ आगे के स्लैश का उपयोग करेगा।
श्रीवत्सआर

3

मैंने इसके लिए Enfocus 'Pitstop Pro प्लगइन का उपयोग किया है , लेकिन यह सस्ता नहीं है।


1

एक्रोबैक्स एक्स प्रीफ़लाइट द्वारा बनाई गई रिपोर्ट में, रिपोर्ट विंडो के निचले बाएँ कोने में "स्नैप में दिखाएँ" बटन पर क्लिक करें, फिर विंडो लिस्टिंग में + अवलोकन, और + पृष्ठ पर क्लिक करें, पीडीएफ के प्रत्येक पृष्ठ को सूचीबद्ध किया गया है , उदाहरण के लिए + पेज: 1 पर क्लिक करें, क्लिक करें + फ़ॉन्ट्स, पृष्ठ के लिए फ़ॉन्ट सूचीबद्ध हैं, एक फ़ॉन्ट पर क्लिक करें और जिस पाठ का उपयोग किया जाता है वह प्रीफ़लाइट स्नैप व्यू विंडो में दिखाई देगा। यदि आपके पास है तो आप टेक्स्ट का पता लगाने के लिए एक्रोबैट में खोज का उपयोग कर सकते हैं। मैंने पाया है कि यह हमेशा रिपोर्ट किए गए पृष्ठ पर नहीं होता है, लेकिन स्नैप दृश्य सटीक रूप से दिखाता है कि किसी विशेष फ़ॉन्ट का उपयोग किस पाठ पर किया गया है, इसलिए नियमित पाठ खोज का उपयोग करने की आवश्यकता है।


0

शायद आपके लिए प्रासंगिक नहीं है यदि पीडीएफ मूल रूप से वर्ड में नहीं बनाया गया था, लेकिन अगर यह था, तो आप उन्नत खोज का उपयोग करके वर्ड में फोंट पा सकते हैं, जैसा कि यहां वर्णित है

संक्षेप में:

  1. खोज
  2. उन्नत ...
  3. प्रारूप -> फ़ॉन्ट

आदि आप बाकी काम कर सकते हैं।


0

निम्नलिखित एक स्क्रिप्ट है जो केवल ओपन-सोर्स सॉफ़्टवेयर (qpdf और 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

कहीं इंटरनेट में मुझे यह दूसरी विधि मिली जो काम करती है, अगर आपके पास Adobe Acrobat है (मुझे लगता है कि यह 7 के बाद काम करता है)।

उपकरण ढूंढें> दस्तावेज़ पाठ संपादित करें (मैं अपने कलाबाज 10X से पढ़ रहा हूं, यह आपके संस्करण में भिन्न हो सकता है, लेकिन आपको यह पता लगाने में सक्षम होना चाहिए कि मैं किस बारे में बात कर रहा हूं)

एक बार पाठ का एक बॉक्स चुने जाने के बाद, राइट-क्लिक करें और गुणों को देखें। वहां, यह उपयोग किए गए फ़ॉन्ट को कहेगा।

संपादित: मेरे संदर्भ की लिंक मिली: http://www.deepbluesky.com/blog/-/extracting-font-information-from-pdf-files_35/


जैसा कि मेरे प्रश्न में विशेष रूप से कहा गया है, आप जिस समस्या को हल कर रहे हैं वह मेरा प्रश्न नहीं है।
राबर्सकी
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.