I tried changint the font to arial unicode ms, which I verified correctly 
displays the text being loaded to the PDF. iText sees that font too...

PostScriptName ArialUnicodeMS
Encoding Identity-H

but still does not print the text.


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

Interesting. I took your suggestion and altered the method accordingly. It 
looks like iText has the right font, but the PDF output is the same:

System.out.println("PostScriptName " + bf.getPostscriptFontName());
System.out.println("Encoding " + bf.getEncoding()); 
   --->PostScriptName Sanskrit2003
   --->Encoding Identity-H



        protected void drawText(PdfContentByte pcb)
        throws IOException, DocumentException {
--->            FontFactory.registerDirectories();
--->            sans=FontFactory.getFont("Sanskrit 2003", "Identity-H");
                readfile();
                pcb.saveState();
--->            BaseFont bf = sans.getBaseFont();
--->            System.out.println("PostScriptName " + 
bf.getPostscriptFontName());
--->            System.out.println("Encoding " + bf.getEncoding()); 
                for (int i=0;i<10;i++){
                        ColumnText ct = new ColumnText(pcb);
                        //String test = "read this";
                        //test.concat(front.get(i));
                        String test =front.get(i);
                        test.concat("read this");
                        Phrase myText;
                        //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: "Mark Storer" <[email protected]>
To: "Post all your questions about iText here" 
<[email protected]>
Sent: Tuesday, March 29, 2011 8:09:19 PM GMT -05:00 US/Canada Eastern
Subject: Re: [iText-questions] writing text with a specific UTF-8 font

Here's the relevant portion of your content stream:


BT
1 0 0 1 144.41 707 Tm
/F1 12 Tf
(  )Tj
ET
BT
1 0 0 1 396.41 707 Tm
/F1 12 Tf
(  )Tj
ET
...

So what's F1?  It's Helvetica, with WinAnsiEncoding.

Warning:  BaseFont.createFont will always return SOMETHING.  If it
doesn't recognise the font name/path, it'll generally fall back to one
of the Base 14 fonts (Helvetica).  And the base 14 fonts don't support
Idenity-H encoding, so you're back at WinAnsiEncoding.


Check the return value of your CreateFont call.  I'd be astonished to
find you're getting what you expect.

PS: I like FontFactory.registerDirectories() &
FontFactory.getFont(familyName, encoding).  If registerDirectories takes
to long for your taste, you can register individual files or directories
as well.


--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 4:45 PM
> To: Post all your questions about iText here
> Subject: Re: [iText-questions] writing text with a specific UTF-8 font
> 
> 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
> 
> 

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