将 HTML 转换为 PDF 文件时,PDF 中没有字体效果

发布于 2024-12-07 11:51:09 字数 1781 浏览 0 评论 0原文

使用下面的代码我是 Abel 将 HTML 文本转换为 PDF,我的代码可以在特定位置生成 PDF 文件。但问题是……我在正文标签中给出了字体样式,因此当生成 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");

所以这里我的字体样式是 Zurich 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();

Using this below Code i am Abel to convert a HTML text To PDF and my code can generate PDF File on particular location . but problem is...... i give font style in body tags so when PDF is generate i am not getting this font style effect in generate 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");

so here my font style is Zurich BT but i have just got plane simple text on generate PDF not get any effect on text.

i am using itextpdf-5.1.1 version and my code is....

            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();

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

吃素的狼 2024-12-14 11:51:09

使用 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 将不起作用。

您还可以使用iTextSharp中的BaseFont类

Use iTextSharp Paragraph class and set font and style to it like this

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

Setting style to html will not work.

You can also use the BaseFont class in iTextSharp

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文