Dear all,
When we used iText to generate pdf containing the Thai characters on Window
7/2008, some characters can't display properly, while on windows 2003,
everything works well.
In windows 2003, the result is:
while in windows 2008, the result is:
Tahoma/Tahomabd used in my code is installed on both Win 2003 and 2008, use
the tahoma.ttf/tahomabd.ttf in windows 2003 replace the ones in win7/win
2008 could resolve the problem on win7/2008.
There is a discussion in which the issue is similar to mine, but I think
the answer could not resolve my problem.
http://itext-general.2136553.n4.nabble.com/Thai-characters-iText-support-td4658747.html
Could you please help confirm it's an iText known issue/limitation or a bug
of Windows? Thanks!
Source code:
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import com.itextpdf.text.Document;
import com.itextpdf.text.DocumentException;
import com.itextpdf.text.Font;
import com.itextpdf.text.FontFactory;
import com.itextpdf.text.Phrase;
import com.itextpdf.text.Rectangle;
import com.itextpdf.text.pdf.BaseFont;
import com.itextpdf.text.pdf.ColumnText;
import com.itextpdf.text.pdf.PdfContentByte;
import com.itextpdf.text.pdf.PdfWriter;
public class TestThai {
public static final String RESULT = "Testthai.pdf";
public static final String FRAGMENT = "ครั้งที่";
public static void main(String[] args) {
float pageWidth = 596.0f;
float pageHeight = 842.0f;
Rectangle rect = new Rectangle(pageWidth, pageHeight);
Document doc = new Document(rect, 0, 0, 0, 0);
FileOutputStream out = null;
PdfWriter pdfWriter = null;
try {
FontFactory.registerDirectories();
out = new FileOutputStream(RESULT);
pdfWriter = PdfWriter.getInstance(doc, out);
doc.open();
Font pdfFont = FontFactory.getFont("Tahoma", BaseFont.
IDENTITY_H, false, 22.0f);
PdfContentByte pdfContentByte =
pdfWriter.getDirectContent();
float px = 70.0f;
float py = 80.0f;
float baselineOffsets = 18.0f;
float baseline = py + baselineOffsets;
int runDirection = PdfWriter.RUN_DIRECTION_LTR;
Phrase phrase = new Phrase(FRAGMENT, pdfFont);
int alignMethod = PdfContentByte.ALIGN_LEFT;
ColumnText.showTextAligned(pdfContentByte, alignMethod,
phrase, px, doc.top(baseline), 0f, runDirection, 0);
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (DocumentException e) {
e.printStackTrace();
}
finally {
if (doc != null) {
doc.close();
}
if (out != null) {
try {
out.close();
} catch (IOException e) {
e.printStackTrace();
}
}
if (pdfWriter != null) {
}
}
}
}
Best Regards,
Jing Fan
Email: fjfj...@cn.ibm.com
------------------------------------------------------------------------------
Comprehensive Server Monitoring with Site24x7.
Monitor 10 servers for $9/Month.
Get alerted through email, SMS, voice calls or mobile push notifications.
Take corrective actions from your mobile device.
http://pubads.g.doubleclick.net/gampad/clk?id=154624111&iu=/4140/ostg.clktrk
_______________________________________________
iText-questions mailing list
iText-questions@lists.sourceforge.net
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