Lowagie के अनुसार:
PdfPCell cell = new PdfPCell(new Phrase("blah Blah blah");
cell.setVerticalAlignment(Element.ALIGN_MIDDLE);
यह हमेशा एक तकनीकी अर्थ में सही है, लेकिन कभी कभी बुरा लग रहा है।
केंद्र के लिए, ऑब्जेक्ट के चारों ओर एक बॉक्स खींचें, इसके मध्य को ढूंढें, और इसे अपने आसपास के ऑब्जेक्ट के केंद्र से संरेखित करें।
iText इस प्रकार वाक्यांश का केंद्र पाता है, और इसे संरेखित करता है। लेकिन मानव आंखें कभी-कभी टेक्स्ट के बड़े हिस्से पर ध्यान केंद्रित करती हैं, बेसलाइन और टोपी ऊंचाई के बीच फ़ॉन्ट के हिस्सों का कहना है। तो यह अच्छा दिखने के लिए, आपको उससे संबंधित केंद्र की आवश्यकता है।
Phrase content = new Phrase("Blah blah blah", Font);
Float fontSize = content.getFont().getSize();
Float capHeight = content.getFont().getBaseFont().getFontDescriptor(BaseFont.CAPHEIGHT, fontSize);
Float padding = 5f;
PdfPCell cell = new PdfPCell(content);
cell.setPadding(padding);
cell.setPaddingTop(capHeight - fontSize + padding);
ध्यान दें कि पीडीएफपीसेल विधि सेट वर्टिकल एलाइनमेंट (..) का उपयोग नहीं किया जाता है।
ऐसा लगता है कि यह एक बहु-पंक्ति वाक्यांश के लिए आवश्यक नहीं होगा, लेकिन ऐसा करता है।
समस्या स्पष्ट हो सकता है अगर नीली लपटें चारों ओर बातें बाउंडिंग बॉक्स दिखा सकता है (मन, आप iText बाउंडिंग बॉक्स आकर्षित करने के लिए बता सकते हैं, यह/बंद स्विच पर एक जादुई से सिर्फ अधिक काम है)।
यह समाधान email from Paulo Soares से अनुकूलित किया गया है।
कई बार इस प्रश्न से पूछा गया है (और उत्तर दिया गया है)। पीडीएफसेल वर्टिकल संरेखण के लिए खोजें। –
@ मार्क स्टोरर: मुझे यह प्रश्न मिला: iText - लंबवत संरेखण समग्र मोड में काम नहीं कर रहा है - लेकिन यह मेरे लिए काम नहीं करता है। कोई विचार? – user590586
@MarkStorer क्या आप डुप्लिक से लिंक कर सकते हैं? मेरी खोज ने कुछ भी नहीं बदला। – djeikyb