标签: openhtmltopdf

OpenHTMLToPDF:将自定义字体嵌入到由 HTML 创建的 PDF 中

我使用 Jsoup 和OpenHTMLToPDF从 HTML 创建了一个 PDF 。我必须在我的 PDF 中使用不同的字体才能覆盖非拉丁字形(请参阅此处)。如何正确嵌入我的字体?

重现问题的简化程序:

src/main/resources/test.html

<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8" />
        <title>Font Test</title>
        <style>
            @font-face {
                font-family: 'source-sans';
                font-style: normal;
                font-weight: 400;
                src: url(fonts/SourceSansPro-Regular.ttf);
            }
        </style>
    </head>
    <body>    
        <p style="font-family: 'source-sans',serif">Latin Script</p>
        <p style="font-family: 'source-sans',serif">????? ???????? ???????.</p>
    </body>
</html>
Run Code Online (Sandbox Code Playgroud)
  • 这个文件应该写成PDF
  • 在浏览器中,它看起来正确并使用 Source Sans 字体。

src/main/java/main.java:

import com.openhtmltopdf.extend.FSSupplier;
import com.openhtmltopdf.pdfboxout.PdfRendererBuilder;
import org.jsoup.Jsoup;
import org.jsoup.helper.W3CDom;
import org.w3c.dom.Document;

import java.io.*;
import java.nio.charset.StandardCharsets;
import java.util.Objects;

public class main {
    public static void main(String[] …
Run Code Online (Sandbox Code Playgroud)

java fonts pdfbox jsoup openhtmltopdf

4
推荐指数
1
解决办法
1万
查看次数

带有德语字母的 Html 到 Pdf

我正在使用openhtmltopdf将 html 转换为 pdf。目前,如果 html 包含德语字符,例如 \xc3\xa4、\xc3\xb6、\xc3\xbc,我会遇到异常。

\n\n
  PdfRendererBuilder builder = new PdfRendererBuilder();\n  builder.useFastMode();\n  builder.withHtmlContent(html,"file://localhost/");\n  builder.toStream(out);\n  builder.run();\n
Run Code Online (Sandbox Code Playgroud)\n\n
\n

org.xml.sax.SAXParseException; 行号:17;列数:31;实体“auml”已被引用,但未声明。

\n
\n\n

这是我的html:

\n\n
<html>\n   <head>      \n      <meta charset="UTF-8" />\n    </head>\n    <body>\n        k&auml;se\n    </body>\n</html>\n
Run Code Online (Sandbox Code Playgroud)\n\n

导出的单词是“k\xc3\xa4se”(奶酪)。

\n\n
\n\n

更新

\n\n

我尝试过使用实体解析器,如下所示:

\n\n
 DocumentBuilderFactory factory=DocumentBuilderFactory.newInstance();\n    DocumentBuilder builder=null;\n    try{\n      builder=factory.newDocumentBuilder();\n\n      ByteArrayInputStream input=new ByteArrayInputStream(html.getBytes("UTF-8"));\n      builder.setEntityResolver(FSEntityResolver.instance());\n      org.w3c.dom.Document doc=builder.parse(input);\n\n\n    }catch(Exception e){\n      logger.error(e.getMessage(),e);\n    }\n
Run Code Online (Sandbox Code Playgroud)\n\n

但我在“解析”时仍然遇到相同的异常。

\n

java html-to-pdf flying-saucer openhtmltopdf

3
推荐指数
1
解决办法
1352
查看次数

将 OpenHTMLtoPDF 内容保存为 PDF 文件

我有这个 PDF 文件,我用OpenHTMLtoPDF.

string html = "<html><body><h1>TEST</h1></body></html>";
var pdf = Pdf.From(html).OfSize(size);
byte[] content = pdf.Content();
Run Code Online (Sandbox Code Playgroud)

但是,我不知道如何将其保存到磁盘。似乎没有保存到硬盘的方法。

c# openhtmltopdf

1
推荐指数
1
解决办法
4187
查看次数

标签 统计

openhtmltopdf ×3

java ×2

c# ×1

flying-saucer ×1

fonts ×1

html-to-pdf ×1

jsoup ×1

pdfbox ×1