2009-03-09 14 views
12

मेरे पास एक पीडीएफ है जो फॉक्सिट फॉर्म डिज़ाइनर का उपयोग करके बनाया गया है। मेरे डिजाइन सिस्टम पर, मेरे पास बारकोड फ़ॉन्ट स्थापित है। बारकोड फ़ॉन्ट का उपयोग एक्रोफिल्ड्स में से एक में किया जाता है। ऐसा लगता है कि फॉक्सिट दस्तावेज़ में फ़ॉन्ट एम्बेड नहीं करता है।पीडीएफ में Itext एम्बेड फ़ॉन्ट

मेरे पास ऐसे ग्राहक भी हैं जिनके पास उनके कंप्यूटर में बारकोड फ़ॉन्ट स्थापित नहीं है, और इस प्रकार मैं फ़ॉन्ट को पीडीएफ में एम्बेड करना चाहता हूं। क्या iText का उपयोग करके पीडीएफ में एक्रोफिल्ड्स में उपयोग किए जाने वाले फ़ॉन्ट को एम्बेड करने का कोई तरीका है?

संपादित करें: फ़ॉन्ट टेक्स्ट में शामिल नहीं है, लेकिन फ़ील्ड नहीं, इसलिए फ़ॉन्ट (बारकोड) प्रिंट नहीं होगा।

उत्तर

9

मुझे यकीन है कि अब तक आपको कोई जवाब मिला है, लेकिन शायद अन्य समाधान पर विस्तृत दृश्य प्राप्त करना चाहते हैं। नीचे नमूना जावा कोड है जिसे मैंने जेनरेट किए गए पीडीएफ में फोंट एम्बेड करने के लिए उपयोग किया था (केवल कुछ मामलों में उपयोगी, क्योंकि दस्तावेज़ों का आकार नाटकीय रूप से बढ़ता है)। पीडीएफ रूपों बनाने के लिए एक नि: शुल्क उपकरण के रूप में, मैं OpenOffice लेखक का इस्तेमाल किया है, दस्तावेजों के अंदर रूपों को जोड़ने और पीडीएफ फाइलों के रूप में दस्तावेजों के निर्यात से:

PdfReader pdfTemplate = new PdfReader(templateName); 
ByteArrayOutputStream out = new ByteArrayOutputStream(); 
BaseFont unicode = BaseFont.createFont(unicodeFontPath, BaseFont.IDENTITY_H, BaseFont.EMBEDDED); 
PdfStamper stamper = new PdfStamper(pdfTemplate, out); 
//assigning the font to the field 
stamper.getAcroFields().setFieldProperty("myField", "textfont", unicode, null); 
stamper.getAcroFields().setField("myField", someValue); 
stamper.close(); 
pdfTemplate.close(); 
+0

मैं लगभग एक ही समस्या से मुलाकात कर रहा हूँ और मैंने किया है आपके जैसा ही है, लेकिन मैं अभी भी जावा का उपयोग करके इनपुट किए गए उन पाठों के लिए फ़ॉन्ट एम्बेड नहीं कर सकता, क्या आप [मेरा प्रश्न] देख सकते हैं (http://stackoverflow.com/questions/34335481/how-to-embed -font के बाद सपाट-टेम्पलेट का उपयोग कर-iText)? अग्रिम में धन्यवाद! – Elderry

1
PdfContentByte ab = yourPDFWriter.getDirectContent(); 
// field: PdfFormField.createTextField(...); 
PdfAppearance ap = ab.createAppearance(320, 30); // size of field 
field.setDefaultAppearanceString(ap); 

यह चाल चलाना चाहिए।

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