itext
कॉलम: iText 5 बनाम iText 7
खोज…
टिप्पणियों
IText 5 में, यदि आप कॉलम में सामग्री को व्यवस्थित करना चाहते हैं, तो आप किसी Document
Paragraph
जोड़ने के लिए add()
विधि का उपयोग नहीं कर सकते हैं। हम Text2Pdf.java (iText 5) उदाहरण के कोड का पुन: उपयोग नहीं कर सकते।
इसके बजाय हमें एक ColumnText
ऑब्जेक्ट बनाना है, हमें इस ऑब्जेक्ट में सभी Paragraph
ऑब्जेक्ट्स को जोड़ना होगा, और एक बार जब हमने सभी कंटेंट को जोड़ लिया, तो हम go()
मेथड का उपयोग करके उस कंटेंट को रेंडर करना शुरू कर सकते go()
। ऐसा करते समय, हमें स्तंभों का ट्रैक रखना होगा, और आवश्यक होने पर नए पृष्ठ बनाने होंगे।
हमने iText 7 में क्या तय किया है:
IText 7 के साथ, हम Text2Pdf.java (iText 7) उदाहरण से कोड को कॉपी और पेस्ट कर सकते हैं। हम add()
विधि का उपयोग उसी तरह जारी रख सकते हैं जैसा हमने पहले किया था। यदि हम एक के बजाय दो कॉलम में सामग्री को प्रस्तुत करना चाहते हैं, तो हमें दस्तावेज़ रेंडरर को बदलना होगा:
Rectangle[] columns = {
new Rectangle(36, 36, 254, 770),
new Rectangle(305, 36, 254, 770)};
document.setRenderer(new ColumnDocumentRenderer(document, columns));
अधिक जानना चाहते हैं?
रूटटेमेंट के साथ कार्य करना पढ़ें जो iText 7 में अध्याय 5 है : बिल्डिंग ब्लॉक्स ट्यूटोरियल। मुफ्त ebook जाओ!
Text2PdfColumns.java (iText 5)
मान लीजिए कि हमारे पास निम्नलिखित पाठ फ़ाइल है: jekyll_illy.txt
हम इसे एक पीडीएफ में कैसे बदलते हैं जो इस तरह दिखता है:
IText 5 का उपयोग करते समय, आपको इस तरह कोड की आवश्यकता होगी:
public void createPdf(String dest)
throws DocumentException, IOException {
Document document = new Document();
PdfWriter writer = PdfWriter.getInstance(document, new FileOutputStream(dest));
document.open();
ColumnText ct = new ColumnText(writer.getDirectContent());
BufferedReader br = new BufferedReader(new FileReader(TEXT));
String line;
Paragraph p;
Font normal = new Font(FontFamily.TIMES_ROMAN, 12);
Font bold = new Font(FontFamily.TIMES_ROMAN, 12, Font.BOLD);
boolean title = true;
while ((line = br.readLine()) != null) {
p = new Paragraph(line, title ? bold : normal);
p.setAlignment(Element.ALIGN_JUSTIFIED);
title = line.isEmpty();
ct.addElement(p);
}
Rectangle[] columns = {
new Rectangle(36, 36, 290, 806), new Rectangle(305, 36, 559, 806)
};
int c = 0;
int status = ColumnText.START_COLUMN;
while (ColumnText.hasMoreText(status)) {
ct.setSimpleColumn(columns[c]);
status = ct.go();
if (++c == 2) {
document.newPage();
c = 0;
}
}
document.close();
}
स्रोत: Developers.itextpdf.com
Text2PdfColumns.java (iText 7)
मान लें कि आपके पास निम्न पाठ फ़ाइल है: jekyll_illy.txt
हम इसे एक पीडीएफ में कैसे बदलते हैं जो इस तरह दिखता है:
IText 7 का उपयोग करते समय, आपको इस तरह कोड की आवश्यकता होगी:
public void createPdf(String dest) throws IOException {
PdfDocument pdf = new PdfDocument(new PdfWriter(dest));
Document document = new Document(pdf)
.setTextAlignment(TextAlignment.JUSTIFIED);
Rectangle[] columns = {
new Rectangle(36, 36, 254, 770),
new Rectangle(305, 36, 254, 770)};
document.setRenderer(new ColumnDocumentRenderer(document, columns));
BufferedReader br = new BufferedReader(new FileReader(TEXT));
String line;
PdfFont normal = PdfFontFactory.createFont(FontConstants.TIMES_ROMAN);
PdfFont bold = PdfFontFactory.createFont(FontConstants.TIMES_BOLD);
boolean title = true;
while ((line = br.readLine()) != null) {
document.add(new Paragraph(line).setFont(title ? bold : normal));
title = line.isEmpty();
}
document.close();
}
स्रोत: Developers.itextpdf.com और iText 7: बिल्डिंग ब्लॉक्स ट्यूटोरियल।