2013-07-11 8 views
6

मैं यह जानने का प्रयास कर रहा हूं कि शब्द दस्तावेज़ में कुछ भी मौजूद है जिसमें 2 का फ़ॉन्ट है। हालांकि, मैं ऐसा करने में सक्षम नहीं हूं। आरंभ करने के लिए, मैंने नमूना शब्द दस्तावेज़ में प्रत्येक शब्द का फ़ॉन्ट पढ़ने की कोशिश की है जिसमें केवल एक पंक्ति और 7 शब्द हैं। मुझे सही नतीजे नहीं मिल रहे हैं।पीओआई का उपयोग करते हुए एक शब्द दस्तावेज़ में प्रत्येक शब्द का फ़ॉन्ट आकार कैसे पढ़ा जाए?

HWPFDocument doc = new HWPFDocument (fileStream); 
WordExtractor we = new WordExtractor(doc); 
Range range = doc.getRange() 
String[] paragraphs = we.getParagraphText(); 
for (int i = 0; i < paragraphs.length; i++) { 
    Paragraph pr = range.getParagraph(i); 
    int k = 0 
    while (true) { 
    CharacterRun run = pr.getCharacterRun(k++); 
    System.out.println("Color: " + run.getColor()); 
    System.out.println("Font: " + run.getFontName()); 
    System.out.println("Font Size: " + run.getFontSize()); 
    if (run.getEndOffSet() == pr.getEndOffSet()) 
     break; 
    } 
} 

हालांकि, इसके बाद के संस्करण कोड हमेशा फ़ॉन्ट आकार दोगुना हो जाता है:

यहाँ मेरी कोड है। यानी यदि दस्तावेज़ में वास्तविक फ़ॉन्ट आकार 12 है तो यह 24 आउटपुट करता है और यदि वास्तविक फ़ॉन्ट 8 है तो यह आउटपुट 16.

क्या यह शब्द दस्तावेज़ से फ़ॉन्ट आकार पढ़ने का सही तरीका है ??

+0

आप संभवतः [इस वर्ड-वीबीए तर्क] (http://stackoverflow.com/a/5160803/2143262) (जावा में यदि संभव हो) का उपयोग करने का प्रयास कर सकते हैं ... –

उत्तर

2

हाँ, यह सही तरीका है; माप आधे अंक में है।

<w:rPr> 

    <w:sz w:val="28" /> 

</w:rPr> 

ECMA 376 spec on @sz रूप ST_HpsMeasure (Measurement in Half-Points)

बाइनरी दस्तावेज़ प्रारूप के साथ एक ही इसकी, जो HWPF का समर्थन करता है इकाई को परिभाषित करता है:

एक docx में, आप की तरह कुछ होगा। यदि आप [MS-DOC] देखते हैं, तो आप देखेंगे कि यह आधा अंक में टेक्स्ट का आकार भी निर्दिष्ट करता है।

संबंधित मुद्दे