将HTML转换为PDF文件时,不会在PDF中获得字体效果

时间:2011-09-30 07:19:02

标签: java pdf itext font-face

使用下面的代码我是Abel将HTML文本转换为PDF,我的代码可以在特定位置生成PDF文件。但问题是......我在body标签中给出了字体样式,所以当生成PDF时我没有在生成PDF ex中获得这种字体样式效果。

 // Here On Body Tag I have given a Zurich BT font style
 StyleSheet styles = new StyleSheet();
 //styles.loadTagStyle("body", "font-family", "Zurich BT");
 styles.loadTagStyle("body", "font", "Zurich BT");

所以这里我的字体样式是苏黎世BT,但是我在生成PDF上的平面简单文字没有对文字产生任何影响。

我正在使用itextpdf-5.1.1版本,我的代码是....

            ByteArrayOutputStream baos = new ByteArrayOutputStream();   
            Document pdfDocument = new Document();

            Reader htmlreader = new StringReader("<html><head></head><body>"
                    + " <font> HELLO MY NAME IS JIMIT TANK </font> </html></body>");

            PdfWriter.getInstance(pdfDocument, baos);

            pdfDocument.open();

            // Here On Body Tag I am giving a Zurich BT font style
            StyleSheet styles = new StyleSheet();
            //styles.loadTagStyle("body", "font-family", "Zurich BT");
            styles.loadTagStyle("body", "font", "Zurich BT");

            ArrayList arrayElementList =    HTMLWorker.parseToList(htmlreader,styles);

            for (int i = 0; i < arrayElementList.size(); ++i) {
                Element e = (Element) arrayElementList.get(i);
                pdfDocument.add(e);
            }
            pdfDocument.close();
            byte[] bs = baos.toByteArray();
            String pdfBase64 = Base64.encodeBytes(bs); //output
            File pdfFile = new File("c:/pdfExample.pdf");
            FileOutputStream out = new FileOutputStream(pdfFile);
            out.write(bs);
            out.close();

1 个答案:

答案 0 :(得分:0)

使用iTextSharp Paragraph类并像这样设置字体和样式

Document doc = new Document(PageSize.A4);
Paragraph paraReportTitle = new Paragraph();
                //paraReportTitle.Font = new Font(Font.FontFamily.HELVETICA, 13f, Font.BOLD);
                paraReportTitle.Font = new Font(Font.FontFamily.HELVETICA, 8f, Font.NORMAL);

doc.Add(paraReportTitle);

将样式设置为html无效。

您还可以使用BaseFont class in iTextSharp