Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/91.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在iText 7的html2pdf中显示货币符号的简单方法_Java_Html_Css_Pdf_Html2pdf - Fatal编程技术网

Java 在iText 7的html2pdf中显示货币符号的简单方法

Java 在iText 7的html2pdf中显示货币符号的简单方法,java,html,css,pdf,html2pdf,Java,Html,Css,Pdf,Html2pdf,据《华盛顿邮报》报道,我将代码从iText 5.0更新为iText 7和html2pdf 2.0。在早期版本中,卢比符号的渲染正确,但由于css问题,我更改了代码。现在,除了卢比符号外,整个页面正在正确转换为pdf 尝试在html样式标记本身中添加字体,如*{font-family:Arial;} 卢比符号的值从和#x20b9,和#8377并直接添加₹ , 但是没有用 我的Html: <html> <head> <style> * { font-family:

据《华盛顿邮报》报道,我将代码从
iText 5.0
更新为
iText 7
html2pdf 2.0
。在早期版本中,卢比符号的渲染正确,但由于
css
问题,我更改了代码。现在,除了卢比符号外,整个页面正在正确转换为pdf

  • 尝试在
    html
    样式标记本身中添加字体,如
    *{font-family:Arial;}
  • 卢比符号的值从
    和#x20b9
    和#8377并直接添加₹ , 但是没有用
  • 我的Html:

    <html>
    <head>
    <style>
    * { font-family: Arial; }
    </style>
    <title>HTML div</title>
    </head>
    <body>
        <p style="margin-bottom: 0in; padding-left: 60px;">
        <div style="font-size: 450%; text-indent: 150px;">
            <strong>BUY <span style="color: #ff420e;">2</span> GET
            </strong>
        </div>
        </p>
        <div
            style="float: left; display: inline-block; margin: 10px; text-align: right; font-size: 70%; line-height: 27; transform: rotate(270deg);">Offer
            Expiry Date : 30/11/2017</Div>
        <div
            style="float: left; display: inline-block; margin: 10px; text-align: right; font-size: 350%;">
            ₹
            <!-- &#x20b9; -->
        </div>
        <div
            style="float: left; display: inline-block; margin: auto; font-size: 1500%; color: red; font-weight: bold;">99</div>
        <div
            style="float: left; display: inline-block; margin: 10px; text-align: left; font-size: 250%; line-height: 10;">OFF</div>
        <div
            style="position: absolute; height: 40px; font-size: 250%; line-height: 600px; color: red; text-indent: 50px">Pepsi
            2.25 Pet Bottle ltr</div>
        <div
            style="position: absolute; height: 40px; font-size: 245%; line-height: 694px; text-indent: 50px">
            MRP: &#x20b9; <span style="color: #ff420e;">654</span>
        </div>
    </body>
    </html>
    
    早期的代码,用于处理符号

                log.info("Creating file start");
                OutputStream file = new FileOutputStream(new File("font_check.pdf"));
                Document document = new Document(PageSize.A4);
                PdfWriter writer = PdfWriter.getInstance(document, file);
                document.open();
    
                InputStream is = new ByteArrayInputStream(fileTemplate.getBytes());
                XMLWorkerHelper.getInstance().parseXHtml(writer, document, is);
                document.close();
                file.close();
    
                log.info("Creating file end");
    
    有什么简单的方法可以用最少的优化代码来实现这一点吗? 因为我必须一次生成数千个pdf,所以性能应该不会受到影响。 请让我知道,如果有人通过最新版本实现了这一点


    编辑:还有如何在此设置特定的纸张类型,如
    A6
    A3
    A4
    等。

    希望你不要生气,因为我没有写简单评论的名声。。。所以我会发布一个完整的答案。我为我的工作解析HTML,有时我也这样阅读。这里有很多关于UTF-8的话题。大多数软件系统支持“大于字符256”(UTF-8)代码,例如印度卢比符号。然而,大多数情况下,程序员必须明确地包含针对这种期望行为的特定请求

    例如,在HTML中-添加此行通常有助于:

    String UTF8MetaTag = "<meta http-equiv='Content-Type' content='text/html; charset=utf-8' />";
    
    字符串UTF8MetaTag=”“;
    
    无论如何,没有使用过HTMLToPDF-我可能不是发布你问题答案的合适人选-但是,因为我已经处理UTF-8外语字符三年了,我知道设置一个软件设置来处理65000左右的字符通常是非常容易的,但也总是非常强制性的

    下面是一篇关于使用HTMLToPDF和UTF-8处理日文汉字的文章。最有可能的是,它应该处理所有的UTF-8,但这不是一个保证

    以下是一些关于在PHP中使用HTML2PDF的帖子:


    问题是关于itext7的,我已经在itext5中实现了与字符相关的功能,但同一字符集在更高版本中不起作用???-你的帖子标题是:“用html2pdf显示鲁珀斯符号的简单方法”。。。不管怎么说,我在介绍“高阶”UTF-8字符在我编程的软件环境中是如何工作的。。。之所以提到它,是因为我编写了中文程序(以及所有需要的符号)。。。一直以来(对我来说)都在寻找如何设置允许UTF-8。。。我也编写了西班牙语程序——这是一样的。UTF-8编码对iText版本5非常有效,同样的编码和同样的html页面设计对更高版本的iText(版本7)不起作用。无论如何,我找到了使用货币图像符号的解决方法:-(
    String UTF8MetaTag = "<meta http-equiv='Content-Type' content='text/html; charset=utf-8' />";