iText

2009-11-21 24 views
10

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

उत्तर

9

यदि आप iText के साथ और अधिक काम कर रहे हैं, तो आप iText book में निवेश करना चाह सकते हैं - इसमें iText की सभी सुविधाओं के लिए उदाहरण हैं।

BaseFont helvetica = BaseFont.createFont(BaseFont.HELVETICA, BaseFont.CP1252, BaseFont.EMBEDDED); 
Font font = new Font(helvetica, 12, Font.NORMAL); 

आप यहाँ और अधिक iText फ़ॉन्ट संबंधित उदाहरण मिल सकते हैं::

है कि आप जब आप अपने फ़ॉन्ट उस फ़ॉन्ट एम्बेडिंग को परिभाषित करता है बनाने निर्दिष्ट एक पैरामीटर है http://1t3xt.info/examples/browse/?page=toc&id=14

+1

मैंने आईटेक्स्ट पुस्तक में कुछ उदाहरणों का अध्ययन किया है, ऐसा लगता है कि किसी ने मेरी समस्या के लिए संकेत नहीं दिया है। आपके उदाहरण में, एक ध्वज "BaseFont.EMBEDDED" है जिसका उपयोग फ़ॉन्ट फ़ाइल के एम्बेडिंग को इंगित करने के लिए किया जा सकता है। लेकिन मुझे क्या करना है एक्सएमएल फ़ाइल को परिभाषित टैगमैप के साथ पीडीएफ निर्देशिका में परिवर्तित करना है, पूरी प्रक्रिया केवल एक कॉल है। वहां कोई जगह नहीं है जहां मैं एम्बेड कोड को कुछ कोड डाल सकता हूं। आपके उदाहरण में, हम फ़ॉन्ट को कुछ पैराग्राफ पर सेट कर सकते हैं ताकि फ़ॉन्ट उस अनुच्छेद में एम्बेड किया जा सके। लेकिन टैगमैप के साथ स्वचालित पीडीएफ पीढ़ी के लिए, हम फ़ॉन्ट कैसे सेट कर सकते हैं, हम फ़ॉन्ट को एम्बेड करने के लिए किस वर्ग/इंटरफ़ेस का उपयोग कर सकते हैं? धन्यवाद। – moonli

+4

समस्या हल हो गई। हम टैगमैप में कॉन्फ़िगरेशन के साथ फ़ॉन्ट एम्बेड कर सकते हैं। "एम्बेडेड" विशेषता को "सत्य" पर सेट करना फ़ॉन्ट एम्बेडिंग इंगित करता है। वैसे भी धन्यवाद। – moonli

+0

https://www.manning.com/books/itext-in-action-second-edition यह पुस्तक है? –

6

हालांकि, अगर आप समस्या है जाएगा यदि आपके पास आपके द्वारा उपयोग किए जाने वाले किसी भी वर्ण से मिलान करने वाला एकल फ़ॉन्ट नहीं होगा और आपको एकाधिक फ़ॉन्ट्स की आवश्यकता है।

इस मामले में फ़ॉन्ट चयनकर्ता कक्षा आपके लिए है।

मैंने इस बारे में एक संक्षिप्त लेख में लिखा है:
http://lechlukasz.wordpress.com/2010/01/06/using-dynamic-fonts-for-international-texts-in-itext/

0

आप पीडीएफ और इसे एक कोशिश कर सकते हैं/ए जो सभी फोंट एम्बेडेड है।

PdfReader reader = new PdfReader(GetTemplateBytes()); 
    pst = new PdfStamper(reader, Response.OutputStream); 

    pst.Writer.SetPdfVersion(PdfWriter.PDF_VERSION_1_4); 
    pst.Writer.PDFXConformance = PdfWriter.PDFA1A; 
7

सभी फ़ॉन्ट्स को एम्बेड करने के लिए iText को निर्देश देने का एक बहुत आसान तरीका यहां दिया गया है। फोंट लोड करने के लिए अपने कोड से पहले इसे सम्मिलित करें:

FontFactory.defaultEmbedding = true; 
+1

ध्यान दें कि iTextSharp में, FontFactory.DefaultEmbedding केवल पढ़ने योग्य संपत्ति है। – howcheng