当前位置: 首页 > 知识库问答 >
问题:

Dompdf并设置不同的字体系列

陈阳舒
2023-03-14

生成PDF时,它完全忽略应用于CSS的我的font-family属性。它使用的不是Verdana,而是Times New Roman。所以我的CSS看起来像:

.sub-header {
    font-size: 1.4rem;
    text-transform: uppercase;
    font-family: NeutraText-Book !important;
    padding-bottom: 1.5rem;
}

PDF是这样生成的:

$pdf = PDF::loadHTML($view);
return $pdf->stream();

如何设置我想要的字体?

共有3个答案

欧镜
2023-03-14

Dompdf的关于字体和字符编码的文章说包含了字体实用程序,但没有告诉你如何获取和运行它。以下是方法:

>

  • 将load_font.php下载到项目的根目录<代码>curl-o load_font.phphttps://raw.githubusercontent.com/dompdf/utils/master/load_font.php

    使用文本编辑器(例如vim)打开load_font.php。将require_onceautoload.inc.php;改为require_once供应商/autoload.php;

    使用要注册的字体名称和TFF文件的路径运行该实用程序。例如:php load_font.php'Brush Script MT'https/fonts/Brush-Script-MT.ttf

    有关如何使用此命令的更多信息,请阅读load_font.php的代码。

  • 金晗日
    2023-03-14

    我有一个类似的问题,我已经寻找了2天的解决方案…与新版本,接受的答案不再工作。

    @jay-bienvenu答案正确。新版本的DomPDF不包括一切,也有一个非常差的留档。

    所以你必须:

    >

    然后用编辑器打开load_font.php,并将正确的路径放置到autoload.inc.php,例如require_oncelib/dompdf/autoload.inc.php;

    打开命令行,转到项目的根文件夹,并使用要注册的字体名称和TFF文件的路径运行该实用程序,例如php load\u font.php SourceSansPro./pathtoyorfolder/lib/dompd/SourceSansPro-Regular.ttf./pathtoyorfolder/lib/dompd/SourceSansPro Bold.ttf

    现在字体已安装。您可以将其作为html中的webfont使用:

    <html>
    <head>
        <meta http-equiv="Content-Type" content="charset=utf-8" />
        <style type="text/css">
            @page {
                margin: 0;
            }
            * { padding: 0; margin: 0; }
            @font-face {
                font-family: "source_sans_proregular";           
                src: local("Source Sans Pro"), url("fonts/sourcesans/sourcesanspro-regular-webfont.ttf") format("truetype");
                font-weight: normal;
                font-style: normal;
    
            }        
            body{
                font-family: "source_sans_proregular", Calibri,Candara,Segoe,Segoe UI,Optima,Arial,sans-serif;            
            }
        </style>
    </head>
    <body>
    Your code here ....
    </body>
    </html>
    屠德宇
    2023-03-14

    PDF文档内部支持以下字体:Helvetica,Times-Roman,Courier,Zapf-Dingbats,

    dompdf支持与底层R相同的字体

    加载字体的过程取决于您的需求和服务器访问权限。有三种方法可以加载字体:

    1. 使用CSS@font-face规则在运行时加载字体。
    2. 从命令行使用dompdf/load_font.php。
    3. 浏览包含的管理站点中的dompdf/www/fonts.php

    使用CSS@font-face规则在运行时加载字体

    不需要命令行访问。只要你想加载的字体在线可用,你就可以通过CSS轻松加载。

    @font-face {
      font-family: 'Open Sans';
      font-style: normal;
      font-weight: normal;
      src: url(http://themes.googleusercontent.com/static/fonts/opensans/v8/cJZKeOuBrn4kERxqtaUH3aCWcynf_cDxXwCLxiixG1c.ttf) format('truetype');
    }
    

    从命令行使用dompdf/load_font.php

    如果您可以访问命令行,那么加载字体就像:

    [php] load_font.php "NeutraText-Book" /path/to/neutratext.ttf
    

    运行不带任何参数的命令以查看帮助文本。但很快,参数是:字体名称、普通字体文件、粗体字体文件、斜体字体文件、粗体斜体字体文件

    在包含的管理站点中浏览到dompdf/www/fonts.php

    不言自明(样本)。你唯一需要做的是确保你已经修改了管理员用户名/密码组合

    注意:从dompdf 0.7.0开始,默认情况下,load_font.php和管理站点将不包括在内

    改编自DOMPDFWiki(Unicode How To,关于字体和字符编码)和其他来源。

     类似资料:
    • 问题内容: 生成PDF时,它完全忽略了应用于CSS的属性。而不是说 Verdana ,而是使用 Times New Roman。 所以我的CSS看起来像: PDF生成如下: 如何设置想要的字体? 问题答案: PDF文档内部支持以下字体:Helvetica,Times-Roman,Courier,Zapf-Dingbats和Symbol(均使用Windows ANSI编码)。dompdf将在PDF中

    • 使用DOM PDF创建一些报告,但是我唯一遇到的问题是设置无衬线字体。 我尝试了几乎所有的方法来设置CSS中可能的字体,但它总是以衬线字体呈现。 我并没有试图呈现一个自定义字体,只是一些简单的东西,比如helvetica或arial。 有没有其他人有过这个问题,或者知道为什么它可能会默认为衬线? 注意:应用程序在CodeIgnitor上运行。

    • 我需要扩展对基于拉丁语的字体的支持,所以我想使用默认字体“dejavu sans”,但是文本是完全白色的,并且忽略了css规则。有什么想法吗? 谢谢 我使用的是laravel 4,代码如下: php css }

    • 问题内容: 我有这样的CSS声明: 这里的font1是嵌入式的eot / ttf字体,但问题是该字体比其他字体要小,所以我想为此字体(font1)使用不同的字体大小(1.8em)。所有其他字体(font2,font3)保持不变。 问题是,我无法验证用户的浏览器是使用font1,font2还是font3。是否有任何CSS声明允许不同家族使用不同的字体大小? 谢谢。 问题答案: 这里 是 一个办法做到

    • 问题内容: 我有一个ListView,它显示TextViews的列表。我希望每个TextView以适当的字体显示。作为字体String []数组的一部分出现在ListView中的字体名称的拼写与创建字体时的拼写相同。 和XML: 为什么我不能在ListView中获得每个TextView正确的字体? 问题答案:

    • 我想在Java中创建一个文本编辑器。这是我到目前为止写的: 我的问题是为设置字体。当我在实际程序上单击按钮时,什么也没发生。我该怎么办?