I tried concatenating a simple text piece to the UTF-8 string to see if at 
least the concatenated part would show, but still none of the text is visible 
in the PDF:

protected void drawText(PdfContentByte pcb)
        throws IOException, DocumentException {
                FontFactory.register("c:/windows/fonts/sanskrit2003.ttf", 
"sanskrit");
                sans = FontFactory.getFont("sanskrit", "Identity-H", true);
                readfile();
                pcb.saveState();
                for (int i=0;i<10;i++){
                        ColumnText ct = new ColumnText(pcb);
-->                     String test = front.get(i);
-->                     test.concat("read this");
-->                     Phrase myText = new Phrase(test);
                        //Phrase myText = new Phrase(front.get(i));
-->                     myText = new Phrase(test);
                        myText.setFont(sans);
                        ct.setSimpleColumn(myText,
                                        VRT_2BY5_BCARDS[i][0],
                                        VRT_2BY5_BCARDS[i][1],
                                        VRT_2BY5_BCARDS[i][2],
                                        VRT_2BY5_BCARDS[i][3],
                                        16,
                                        Element.ALIGN_CENTER);
                        ct.go();
                }
                pcb.restoreState();
        }
----- Original Message -----
From: "John Kilbourne" <[email protected]>
To: "Post all your questions about iText here" 
<[email protected]>
Sent: Tuesday, March 29, 2011 6:33:51 PM GMT -05:00 US/Canada Eastern
Subject: Re: [iText-questions] writing text with a specific UTF-8 font

Thank you, but that did not do the trick; I still get only blank cards printed. 
Do I need to embed the font if my system already has the font?

John
----- Original Message -----
From: "Paulo Soares" <[email protected]>
To: "Post all your questions about iText here" 
<[email protected]>
Sent: Tuesday, March 29, 2011 5:33:54 PM GMT -05:00 US/Canada Eastern
Subject: Re: [iText-questions] writing text with a specific UTF-8 font



There's no UTF-8 encoding for fonts in PDFs. Try: 

sans = FontFactory.getFont("sanskrit", "Identity-H", true); 

Paulo 



----- Original Message ----- 
From: John Kilbourne 
To: . 
Sent: Tuesday, March 29, 2011 10:08 PM 
Subject: [iText-questions] writing text with a specific UTF-8 font 

I am having difficulty reading UTF-8 encoded text (Sanskrit) from a text file 
and writing it onto a PDF page. No text is printed at all when I read from the 
file. However, when I simply generate text in the program, it prints as I would 
expect. The non-text portions of the page (the lines for the flashcards) print 
fine. Also, I am able to do a round trip of reading from the file and writing 
to another (text) file in UTF-8 such that I can read it as I expect; I 
commented that part out. 

I wonder if I am using the correct the correct Font invocations on in my 
drawText() method. There seem to be a number of ways to get a font 
(FontFactory, Font, BaseFont..) and I am not compeletely positive that i am 
doing it the correct way. Any help is appreciated. 


import java.io.*; 
import java.io.FileInputStream; 
import java.io.IOException; 
import java.util.Scanner; 
import java.util.List; 
import java.util.ArrayList; 

import com.itextpdf.text.Document; 
import com.itextpdf.text.DocumentException; 
import com.itextpdf.text.Element; 
import com.itextpdf.text.Phrase; 
import com.itextpdf.text.Font; 
import com.itextpdf.text.FontFactory; 
import com.itextpdf.text.PageSize; 
import com.itextpdf.text.pdf.ColumnText; 
import com.itextpdf.text.pdf.PdfContentByte; 
import com.itextpdf.text.pdf.PdfWriter; 

public class BusCard { 

float LTMARG= 0.5f*72; 
float BOTMARG= 0.25f*72; 
float CARDWIDTH= 3.5f*72; 
float CARDHT= 2*72f; 
float PAD=15; 

float [][] VRT_2BY5_BCARDS = new float[][]{ 
{LTMARG+PAD, BOTMARG+(5*CARDHT)-PAD, CARDWIDTH-PAD/2, CARDHT-PAD/2}, 
{LTMARG+2*CARDWIDTH+PAD, BOTMARG+(5*CARDHT)-PAD, CARDWIDTH-PAD/2, 
CARDHT-PAD/2}, 

{LTMARG+PAD, BOTMARG+(4*CARDHT)-PAD, CARDWIDTH-PAD/2, CARDHT-PAD/2}, 
{LTMARG+2*CARDWIDTH+PAD, BOTMARG+(4*CARDHT)-PAD, CARDWIDTH-PAD/2, 
CARDHT-PAD/2}, 

{LTMARG+PAD, BOTMARG+(3*CARDHT)-PAD, CARDWIDTH-PAD/2, CARDHT-PAD/2}, 
{LTMARG+2*CARDWIDTH+PAD, BOTMARG+(3*CARDHT)-PAD, CARDWIDTH-PAD/2, 
CARDHT-PAD/2}, 

{LTMARG+PAD, BOTMARG+(2*CARDHT)-PAD, CARDWIDTH-PAD/2, CARDHT-PAD/2}, 
{LTMARG+2*CARDWIDTH+PAD, BOTMARG+(2*CARDHT)-PAD, CARDWIDTH-PAD/2, 
CARDHT-PAD/2}, 

{LTMARG+PAD, BOTMARG-PAD, CARDWIDTH-PAD/2, CARDHT-PAD/2}, 
{LTMARG+2*CARDWIDTH+PAD, BOTMARG-PAD, CARDWIDTH-PAD/2, CARDHT-PAD/2}, 
}; 

public static final String RESULT = "C:/all/_sanskrit/flashcards/buscards.pdf"; 
protected static final String 
cardfile="C:/all/_sanskrit/flashcards/SEL-first10.txt"; 

List <String>front; 
List <String>back; 
Font sans; 

public void createPdf(String filename) 
throws DocumentException, IOException { 
// step 1 
Document document = new Document(PageSize.LETTER); 
// step 2 
PdfWriter writer 
= PdfWriter.getInstance(document, new FileOutputStream(filename)); 
// step 3 
document.open(); 
// step 4 
drawCards(writer.getDirectContentUnder()); 
drawText(writer.getDirectContentUnder()); 
// step 5 
document.close(); 
} 

void readfile()throws IOException{ 
Scanner scanner = new Scanner(new FileInputStream(cardfile), "UTF-8"); 
front = new ArrayList<String>(); 
back = new ArrayList<String>(); 
try { 
while (scanner.hasNextLine()) { 
String line = scanner.nextLine(); 
String[] fields = line.split(" \\t "); 
front.add(fields[0]); 
if (fields.length>1){back.add(fields[1]);} 
} 
} finally { 
scanner.close(); 
} 
} 

protected void drawCards(PdfContentByte pcb) 
throws DocumentException { 
int i; 
pcb.saveState(); 
for (i=0;i<=4; i++){ 
pcb.rectangle(LTMARG , BOTMARG + i*CARDHT, CARDWIDTH, CARDHT); 
pcb.stroke(); 
} 
for (i=0;i<=4; i++){ 
pcb.rectangle(LTMARG + CARDWIDTH, BOTMARG + i*CARDHT, CARDWIDTH, CARDHT); 
pcb.stroke(); 
} 
pcb.restoreState(); 
} 

protected void drawText(PdfContentByte pcb) 
throws IOException, DocumentException { 
FontFactory.register("c:/windows/fonts/sanskrit2003.ttf", "sanskrit"); 
sans = FontFactory.getFont("sanskrit", "UTF-8", true); 
readfile(); 
pcb.saveState(); 
for (int i=0;i<10;i++){ 
ColumnText ct = new ColumnText(pcb); 
//Phrase myText = new Phrase(front.get(i)); 
Phrase myText = new Phrase(i+ " read this"); 
myText.setFont(sans); 
//out.write(front.get(i)); 
ct.setSimpleColumn(myText, 
VRT_2BY5_BCARDS[i][0], 
VRT_2BY5_BCARDS[i][1], 
VRT_2BY5_BCARDS[i][2], 
VRT_2BY5_BCARDS[i][3], 
16, 
Element.ALIGN_CENTER); 
ct.go(); 
} 
pcb.restoreState(); 
} 

public static void main(String[] args) throws DocumentException, IOException { 
new BusCard().createPdf(RESULT); 
System.out.println("done"); 
} 
} 


------------------------------------------------------------------------------ 
Enable your software for Intel(R) Active Management Technology to meet the 
growing manageability and security demands of your customers. Businesses 
are taking advantage of Intel(R) vPro (TM) technology - will your software 
be a part of the solution? Download the Intel(R) Manageability Checker 
today! http://p.sf.net/sfu/intel-dev2devmar 
_______________________________________________ 
iText-questions mailing list 
[email protected] 
https://lists.sourceforge.net/lists/listinfo/itext-questions 

iText(R) is a registered trademark of 1T3XT BVBA. 
Many questions posted to this list can (and will) be answered with a reference 
to the iText book: http://www.itextpdf.com/book/ 
Please check the keywords list before you ask for examples: 
http://itextpdf.com/themes/keywords.php 
------------------------------------------------------------------------------
Enable your software for Intel(R) Active Management Technology to meet the
growing manageability and security demands of your customers. Businesses
are taking advantage of Intel(R) vPro (TM) technology - will your software 
be a part of the solution? Download the Intel(R) Manageability Checker 
today! http://p.sf.net/sfu/intel-dev2devmar
_______________________________________________
iText-questions mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/itext-questions

iText(R) is a registered trademark of 1T3XT BVBA.
Many questions posted to this list can (and will) be answered with a reference 
to the iText book: http://www.itextpdf.com/book/
Please check the keywords list before you ask for examples: 
http://itextpdf.com/themes/keywords.php


------------------------------------------------------------------------------
Enable your software for Intel(R) Active Management Technology to meet the
growing manageability and security demands of your customers. Businesses
are taking advantage of Intel(R) vPro (TM) technology - will your software 
be a part of the solution? Download the Intel(R) Manageability Checker 
today! http://p.sf.net/sfu/intel-dev2devmar
_______________________________________________
iText-questions mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/itext-questions

iText(R) is a registered trademark of 1T3XT BVBA.
Many questions posted to this list can (and will) be answered with a reference 
to the iText book: http://www.itextpdf.com/book/
Please check the keywords list before you ask for examples: 
http://itextpdf.com/themes/keywords.php



------------------------------------------------------------------------------
Enable your software for Intel(R) Active Management Technology to meet the
growing manageability and security demands of your customers. Businesses
are taking advantage of Intel(R) vPro (TM) technology - will your software 
be a part of the solution? Download the Intel(R) Manageability Checker 
today! http://p.sf.net/sfu/intel-dev2devmar
_______________________________________________
iText-questions mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/itext-questions

iText(R) is a registered trademark of 1T3XT BVBA.
Many questions posted to this list can (and will) be answered with a reference 
to the iText book: http://www.itextpdf.com/book/
Please check the keywords list before you ask for examples: 
http://itextpdf.com/themes/keywords.php

Reply via email to