  | Mailing List | | Home | | Forum Home | | JBoss - Java Application Server | | Tomcat - JSP/Servlet container | | Struts - A MVC web framework | | iText - An open source PDF Java Library | | JDOM - JDOM XML Parser | | J2EE - A mailing list for Java(tm) 2 Platform, Enterprise Edition | | J2EE Pattern - An interest list for Sun Java Center J2EE Pattern Catalog | | JSP - A mailing list about Java Server Pages specification and reference | | Servlet - A mailing list for discussion about Sun Microsystem's Java Servlet API Technology | |
Struts & Hibernate
|
|
|
  | | | 2 czech Characters getting lost when parsing through IText | 2 czech Characters getting lost when parsing through IText 2006-07-22 - By Bela Sharma
Back Hi I get a strange issue with 2 of the czech characters when generating PDF using IText version 1.4.2. When customerNumber=Pr??erne ?lutouck? is sent as as input to IText after doing following steps // Step 1: creation of a document-object document = new Document(PageSize.A4); // step 2: create a writer that listens to the document writer = PdfWriter.getInstance(document, baos); // step 3: we create a parser and set the document handler parser = SAXParserFactory.newInstance().newSAXParser(); InputSource isrc = new InputSource(bais); isrc.setEncoding(getEncodingType()); CustomTagHandler cth= new CustomTagHandler(document, writer, getCustomMap(),"ISO-8859 (See http://ISO-8859.ora-code.com)-2"); // step 4: we parse the document parser.parse(isrc,cth); System.out.println(" in GenericContracttoPdfconv. parser:"+parser.toString()); // step 5: close the document object document.close();
The 2 characters ? and ? are lost and we get boxes in their place.
Here's the constructor for CustomTagHandler
public CustomTagHandler(DocListener _doclistener, PdfWriter _writer,HashMap hashmap,String encoding_loc)throws DocumentException, IOException { super(_doclistener); setStrMethodName("CustomTagHandler"); /* NOI18N */ fillLocaleFont();
if (encoding_loc.indexOf("-locale-") != -1){ position = encoding_loc.indexOf("-locale-"); System.out.println("CTH sit_loc:"+encoding_loc+" pos:"+position); encoding = encoding_loc.substring(0, position); locale = encoding_loc.substring(position+8); System.out.println("CTH enc:"+encoding+" locale:" +locale); }else{ encoding = encoding_loc; System.out.println("CTH enco:"+encoding); }
filename=getFontFile(locale); setBaseFont(BaseFont.createFont(filename, encoding,BaseFont.EMBEDDED)); setMyTags(hashmap); setWriter(_writer); setDoclistener(_doclistener); setCb(_writer.getDirectContent()); stackThis = new java.util.Stack (); isStackReadyForText = false; leftText = null; centerText = null; rightText = null;
}
Can you please guide us as to what should we do for those 2 missing characters.
Regards, Bela Sharma IBM India Pvt. Ltd. India ADC for E-Business Team Tech Park One (TPO) ,Tower-B Off Airport Road,Yerwada-Pune Tel. No. 020-40115523 -ext. 15541 Cell No 9321028514
<br><font size=2 face="sans-serif">Hi</font> <br><font size=2 face="sans-serif">I get a strange issue with 2 of the czech characters when generating PDF using IText version 1.4.2.</font> <br><font size=1 face="Tahoma">When customerNumber=Pr??erne ?lutouck? is sent as as input to IText after doing following steps</font> <br><font size=2 color=#3f8080 face="Courier New">// Step 1: creation of a document-object</font> <br><font size=2 face="Courier New">document = </font><font size=2 color= #820040 face="Courier New"><b>new</b></font><font size=2 face="Courier New"> Document(PageSize.A4);</font> <br><font size=2 face="Courier New"> </font> <br><font size=2 color=#3f8080 face="Courier New">// step 2: create a writer that listens to the document</font> <br><font size=2 face="Courier New">writer = PdfWriter.getInstance(document, baos);</font> <br><font size=2 color=#3f8080 face="Courier New">// step 3: we create a parser and set the document handler</font> <br><font size=2 face="Courier New"> parser = SAXParserFactory.newInstance().newSAXParser();</font> <br><font size=2 face="Courier New"> InputSource isrc = </font><font size=2 color=#820040 face="Courier New"><b>new</b></font> <font size=2 face="Courier New"> InputSource(bais);</font> <br><font size=2 face="Courier New"> isrc.setEncoding (getEncodingType()); </font> <br><font size=2 face="Courier New"> CustomTagHandler cth= </font><font size=2 color=#820040 face="Courier New"><b>new</b></font><font size=2 face="Courier New"> CustomTagHandler(document, writer, getCustomMap(),"ISO-8859 (See http://ISO-8859.ora-code.com)-2");< /font> <br><font size=2 face="Courier New"> </font> <br><font size=2 face="Courier New"> </font><font size=2 color= #3f8080 face="Courier New">// step 4: we parse the document</font> <br><font size=2 face="Courier New"> parser.parse(isrc,cth);</font> <br><font size=2 face="Courier New"> System.out.println(</font> <font size=2 color=#4200ff face="Courier New">" in GenericContracttoPdfconv. parser:"</font><font size=2 face="Courier New ">+parser.toString());</font> <br><font size=2 face="Courier New"> </font><font size=2 color= #3f8080 face="Courier New">// step 5: close the document object</font> <br><font size=2 face="Courier New"> document.close();</font> <br> <br><font size=2 face="Courier New">The 2 characters </font><font size=1 face= "Tahoma">?</font><font size=2 face="Courier New"> and </font><font size=1 face="Tahoma">?</font><font size=2 face="Courier New"> are lost and we get boxes in their place.</font> <br> <br><font size=2 face="Courier New">Here's the constructor for CustomTagHandler </font> <br> <br><font size=2 color=#820040 face="Courier New"><b>public</b></font><font size=2 face="Courier New"> CustomTagHandler(DocListener _doclistener, PdfWriter _writer,HashMap hashmap ,String encoding_loc)</font><font size=2 color=#820040 face="Courier New"><b>throws</b> </font><font size=2 face="Courier New"> DocumentException, IOException</font> <br><font size=2 face="Courier New"> {</font> <br><font size=2 face="Courier New"> </font><font size=2 color=#820040 face="Courier New"><b >super</b></font><font size=2 face="Courier New">(_doclistener);</font> <br><font size=2 face="Courier New"> </font> <br><font size=2 face="Courier New"> setStrMethodName(</font><font size=2 color=#4200ff face= "Courier New">"CustomTagHandler"</font><font size=2 face="Courier New" >); </font><font size=2 color=#3f8080 face="Courier New">/* NOI18N */</font> <br><font size=2 face="Courier New"> fillLocaleFont();</font> <br> <br><font size=2 face="Courier New"> </font><font size=2 color=#820040 face="Courier New"><b>if </b></font><font size=2 face="Courier New"> (encoding_loc.indexOf(</font><font size=2 color=#4200ff face="Courier New"> "-locale-"</font><font size=2 face="Courier New">) != -1){</font> <br><font size=2 face="Courier New"> position = encoding_loc.indexOf(</font><font size=2 color=#4200ff face="Courier New"> "-locale-"</font><font size=2 face="Courier New">);</font> <br><font size=2 face="Courier New"> System.out.println(</font> <font size=2 color=#4200ff face="Courier New">"CTH sit_loc:"</font><font size=2 face="Courier New">+encoding_loc+</font><font size=2 color=#4200ff face="Courier New">" pos:"</font><font size=2 face="Courier New">+position);</font> <br><font size=2 face="Courier New"> encoding = encoding_loc.substring(0, position);</font> <br><font size=2 face="Courier New"> locale = encoding_loc.substring(position+8);</font> <br><font size=2 face="Courier New"> System.out.println(</font> <font size=2 color=#4200ff face="Courier New">"CTH enc:"</font><font size=2 face="Courier New">+encoding+</font><font size=2 color=#4200ff face="Courier New">" locale:"</font><font size=2 face="Courier New">+locale);</font> <br><font size=2 face="Courier New"> }</font><font size=2 color=#820040 face="Courier New"><b >else</b></font><font size=2 face="Courier New">{</font> <br><font size=2 face="Courier New"> encoding = encoding_loc;</font> <br><font size=2 face="Courier New"> System.out.println(</font> <font size=2 color=#4200ff face="Courier New">"CTH enco:"</font><font size=2 face="Courier New">+encoding);</font> <br><font size=2 face="Courier New"> }</font> <br> <br> <br><font size=2 face="Courier New"> filename=getFontFile(locale);</font> <br><font size=2 face="Courier New"> setBaseFont(BaseFont.createFont(filename, encoding,BaseFont.EMBEDDED)); </font> <br><font size=2 face="Courier New"> setMyTags(hashmap);</font> <br><font size=2 face="Courier New"> setWriter(_writer);</font> <br><font size=2 face="Courier New"> setDoclistener(_doclistener);</font> <br><font size=2 face="Courier New"> setCb(_writer.getDirectContent());</font> <br><font size=2 face="Courier New"> stackThis = </font><font size=2 color=#820040 face= "Courier New"><b>new</b></font><font size=2 face="Courier New"> java.util.Stack ();</font> <br><font size=2 face="Courier New"> isStackReadyForText = </font><font size=2 color=#820040 face="Courier New"><b>false</b></font><font size=2 face="Courier New">;</font> <br><font size=2 face="Courier New"> leftText = </font><font size=2 color=#820040 face="Courier New"><b>null</b></font><font size=2 face="Courier New">;</font> <br><font size=2 face="Courier New"> centerText = </font><font size=2 color=#820040 face= "Courier New"><b>null</b></font><font size=2 face="Courier New">;</font> <br><font size=2 face="Courier New"> rightText = </font><font size=2 color=#820040 face= "Courier New"><b>null</b></font><font size=2 face="Courier New">;</font> <br> <br><font size=2 face="Courier New"> </font> <br><font size=2 face="Courier New"> }</font> <br> <br><font size=2 face="Courier New">Can you please guide us as to what should we do for those 2 missing characters.</font> <br> <br><font size=2 face="sans-serif">Regards,<br> Bela Sharma<br> IBM India Pvt. Ltd.<br> India ADC for E-Business Team<br> Tech Park One (TPO) ,Tower-B<br> Off Airport Road,Yerwada-Pune<br> Tel. No. 020-40115523 -ext. 15541<br> Cell No 9321028514</font>
-- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ----- Take Surveys. Earn Cash. Influence the Future of IT Join SourceForge.net's Techsay panel and you'll get the chance to share your opinions on IT & business topics through brief surveys -- and earn cash http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV __ ____ ____ ____ ____ ____ ____ ____ ____ ____ iText-questions mailing list iText-questions@(protected) https://lists.sourceforge.net/lists/listinfo/itext-questions
|
|
 |