Here is the PDF output showing the empty boxes. 

If I uncomment the lines below with "----->" and comment the lines with 
"xxxxxx->" (i.e. concatenate in a different order), the document does print 
"read this" in all the boxes, but does not print the text that is concatenated 
after "read this" (the UTF-8 sanskrit text).


protected void drawText(PdfContentByte pcb)
        throws IOException, DocumentException {
                FontFactory.register("c:/windows/fonts/sanskrit2003.ttf", 
"sanskrit");
                sans = FontFactory.getFont("sanskrit", "Identity-H", true);
                //sans=new Font(BaseFont.createFont(
                //              
"c:/windows/fonts/sanskrit2003.ttf",BaseFont.IDENTITY_H, BaseFont.EMBEDDED ));
                readfile();
                pcb.saveState();
                for (int i=0;i<10;i++){
                        ColumnText ct = new ColumnText(pcb);
-------->               //String test = "read this";
-------->               //test.concat(front.get(i));
xxxxxxx->               String test =front.get(i);
xxxxxxx->               test.concat("read this");
                        Phrase myText;
                        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: "Mark Storer" <[email protected]>
To: "Post all your questions about iText here" 
<[email protected]>
Sent: Tuesday, March 29, 2011 7:37:19 PM GMT -05:00 US/Canada Eastern
Subject: Re: [iText-questions] writing text with a specific UTF-8 font

Can we see your PDF output?

--Mark Storer
  Senior Software Engineer
  Cardiff.com
 
import legalese.Disclaimer;
Disclaimer<Cardiff> DisCard = null;
 
 

> -----Original Message-----
> From: John Kilbourne [mailto:[email protected]] 
> Sent: Tuesday, March 29, 2011 3:43 PM
> To: Post all your questions about iText here
> Subject: Re: [iText-questions] writing text with a specific UTF-8 font
> 
> 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
> 
> 

------------------------------------------------------------------------------
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

Attachment: buscards.pdf
Description: Adobe PDF document

------------------------------------------------------------------------------
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