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