mpdf 相关问题

mPDF是一个PHP库,用于从HTML生成PDF文件,支持Unicode / UTF-8和CJK。它是在GNU通用公共许可证下分发的。虽然它比它的protoplast(fpdf库)慢,但它支持Unicode字符,而fpdf则不支持。

无法使用 mpdf 8.2.4 和希腊字符设置 Times New Roman 字体

我是 mpdf 的新手。我安装了 mpdf 8.2.4。无论我做什么,我都无法使用希腊字符正确获得 Times New Roman。 我有以下代码: 我是 mpdf 新手。我安装了 mpdf 8.2.4。无论我做什么,我都无法使用希腊字符正确获得 Times New Roman。 我有以下代码: <?php $html = file_get_contents('pdf.html'); require_once DIR . '/vendor/autoload.php'; $defaultConfig = (new \Mpdf\Config\ConfigVariables())->getDefaults(); $fontDirs = $defaultConfig['fontDir']; $defaultFontConfig = (new \Mpdf\Config\FontVariables())->getDefaults(); $fontData = $defaultFontConfig['fontdata']; $mpdf = new \Mpdf\Mpdf([ 'mode' => 'utf-8', 'format' => 'A4', 'default_font_size' => 16, 'fontDir' => array_merge($fontDirs, [ DIR . '/vendor/mpdf/mpdf/roman', ]), 'fontdata' => $fontData + [ // lowercase letters only in font key 'roman' => [ 'R' => "timesnewroman.ttf", 'B' => "timesnewroman-bold.ttf", 'I' => "timesnewroman-italic.ttf", 'BI' => "timesnewroman-bold-italic.ttf", ] ], 'default_font' => 'roman' ]); $mpdf->SetDefaultBodyCSS('background', "url('images/border.png')"); $mpdf->SetDefaultBodyCSS('background-image-resize', 6); $mpdf->SetDefaultBodyCSS('margin-top', '10px'); $mpdf->WriteHTML($html); $mpdf->Output('filename.pdf','D'); ?> 我在供应商/mpd/mpdf 中创建了一个名为 roman 的文件夹,并将 Times New Roman 的 ttf 文件放入其中,其中包含 R、B、I 和 BI 的确切名称。在我的 html 文件中,我在标题中设置了: 我还设置了: 正文 { 字体系列:罗马字体; } 但也尝试过: p { 字体系列:罗马字体; } 没有成功。我不断收到小方块而不是希腊字母。但数字和特殊字符显示正确。 我也尝试过,font-family: ctimes;有或没有fontdir和fontdata,但没有成功。 我做错了什么? 问题在于自定义字体目录的配置以及确保您使用的 Times New Roman 字体文件支持希腊字符。以下是逐步解决该问题的方法: 验证字体文件 确保 timesnewroman.ttf 目录中的 timesnewroman-bold.ttf、timesnewroman-italic.ttf、timesnewroman-bold-italic.ttf 和 vendor/mpdf/mpdf/roman 文件包含对希腊字符的支持。您可以通过在字体查看器或文本编辑器中打开这些文件并检查希腊字形来测试它们。如果它们不包含希腊语,请从可信来源下载正确的版本。 更新您的代码 稍微修改您的代码以确保一切设置正确。这是脚本的更新版本: <?php $html = file_get_contents('pdf.html'); require_once __DIR__ . '/vendor/autoload.php'; $defaultConfig = (new \Mpdf\Config\ConfigVariables())->getDefaults(); $fontDirs = $defaultConfig['fontDir']; $defaultFontConfig = (new \Mpdf\Config\FontVariables())->getDefaults(); $fontData = $defaultFontConfig['fontdata']; $mpdf = new \Mpdf\Mpdf([ 'mode' => 'utf-8', 'format' => 'A4', 'default_font_size' => 16, 'fontDir' => array_merge($fontDirs, [ __DIR__ . '/vendor/mpdf/mpdf/roman', // Ensure correct path ]), 'fontdata' => $fontData + [ 'timesnewroman' => [ 'R' => 'timesnewroman.ttf', 'B' => 'timesnewroman-bold.ttf', 'I' => 'timesnewroman-italic.ttf', 'BI' => 'timesnewroman-bold-italic.ttf', ], ], 'default_font' => 'timesnewroman', // Match the font key ]); // Set background and write content $mpdf->SetDefaultBodyCSS('background', "url('images/border.png')"); $mpdf->SetDefaultBodyCSS('background-image-resize', 6); $mpdf->WriteHTML($html); // Output the PDF $mpdf->Output('filename.pdf', 'D'); ?> HTML 样式 在 HTML (pdf.html) 中,确保应用了正确的字体: <style> body { font-family: 'timesnewroman', serif; } </style> 测试您的配置 清除 vendor/mpdf/mpdf/roman 文件夹并添加 Times New Roman 字体文件的新副本。 运行脚本以生成 PDF。如果您仍然看到希腊字符的方块,请验证字体文件或尝试其他包含希腊字形的 Unicode 兼容字体,例如 DejaVu Serif。 使用替代字体(可选) 如果 Times New Roman 由于某种原因无法使用,请考虑切换到像 DejaVu Serif 这样的字体,它与 mPDF 捆绑在一起,支持多种字符,包括希腊语。使用方法: 'default_font' => 'dejavuserif' 希望这有帮助!

回答 1 投票 0

Mpdf 第一页有不同的标题

我正在开发报价软件,我使用 mpdf 使用 HTML 格式生成报价。标题由下面的代码设置。 $mpdf->SetHTMLHeader($header); $mpdf=>SetHTMLFooter($footer...

回答 4 投票 0

MPDF - 更改最后一页的背景?

@页面:最后{ 背景:rgb(167,0,51); } 我需要为 PDF 的最后一页添加背景,但它不起作用。只有第一页有背景,但最后一页没有。有什么解决办法吗? 参考链接是

回答 1 投票 0

无法安装mpdf

我已经安装了composer,现在我尝试在我的项目文件夹中安装mpdf。 我执行了以下命令composer require mpdf/mpdf。之后我收到以下错误: 使用版本...

回答 3 投票 0

将 SVG 转换为 PNG 用于 mPDF 库时出现黑色背景

我正在开发一项功能,可以使用 Composer/Packagist 的 mpdf/mpdf 库将 DOM 内容转换为 PDF,而且通常效果很好。然而,部分 DOM 内容是使用 ... 生成的

回答 1 投票 0

Mpdf Kartik 上的绝对位置不起作用

继续问题Yii2 mPdf Kartik:设置纸张高度和宽度 我在页脚上的绝对宽度位置有问题。 我已经将其设置为位置:绝对;底部:0; 但是页脚...

回答 1 投票 0

mpdf 当我将视图渲染为 HTML 时跳过 CSS?

我正在使用 codeigniter,我正在处理发票,我想打印我的发票页面的 PDF 文件,这里是我的控制器。 $pdfFilePath ='发票.pdf'; $data=$this->singleinvoice($invoiceId); ini_...

回答 2 投票 0

如何在MPDF中显示ACF复选框值?

我一直在使用mpdf和acf来生成pdf。我可以生成 pdf 并显示文本值,但无法让它显示复选框的值,它什么也不显示。 这是代码...

回答 1 投票 0

mPDF - 将一个表格单元格分为两页

在mPDF生成的PDF中,我想将表格单元格分成两个(或更多)页面。 该单元格包含很长的文本,因此其字体大小被迫变小。 然而,我想避免小...

回答 1 投票 0

mpdf - 如何防止表格打印在新页面上,何时变大

我正在使用 mpdf 从 HTML 生成包含大量表格的 pdf。 结构基本上是: 标头 氢2 桌子 氢2 桌子 氢2 桌子 有些桌子很大,太大(长!!!),无法填满……

回答 1 投票 0

使用 php 创建带有 emoji utf-8 字符的 PDF

我正在尝试创建包含表情符号字符的文本的pdf。 使用 PHP > 7 和 mysql 'char_set' => utf8mb4 'dbcollat' => utf8mb4_unicode_ci 我已经从 html 创建了 PDF,是回显 html 文本...

回答 1 投票 0

mPDF 错误:无法创建输出文件

我正在使用 mPDF 从 html 生成 pdf。 在我的本地主机上,pdf 已成功生成到位于的目录中。 但不是在服务器上,尽管我已经打开了该目录的权限。

回答 2 投票 0

有时 mPDF 会出现“找不到 TTF TrueType 字体文件”的错误

我在使用 mPDF 创建 pdf 时遇到错误。我已经尝试过这里给出的所有答案。我仍然遇到以下错误。 mPDF 错误 - 找不到 TTF TrueType 字体文件 - /home/xxxxxx/public_html/app/

回答 2 投票 0

如何使用mPDF for Chinese Language

我正在使用 mPDF 将表单输入数据保存到 PDF。对于英语来说,它工作得很好。任何人都可以使用此代码将 HTML 表单数据保存为 PDF。 问题:为了满足我的项目要求,我需要...

回答 5 投票 0

Div 高度在除第一个页面以外的页面中不会延伸

我将内容 div 高度设置为 100%,以便它延伸到页面末尾。它在第一页上效果很好。但是,如果内容很长,需要扩展到不止一页,则此道具......

回答 1 投票 0

MPDF 复选框仅在 PDF 中不显示点

我使用 MPDF 将 html 表单输出为 PDF。但我的问题是,当它转换为 PDF 时,复选框的框形状消失了,下面是我如何编码复选框的示例

回答 0 投票 0

如何在laravel中使用mpdf为每个页面添加水印

我在 laravel 中使用 niklasravnsborg/laravel-pdf 包来生成 pdf。在这段代码中,我添加了水印,但该水印仅出现在最后一页,尽管我希望它出现在每一页中......

回答 4 投票 0

mPDF 无法正确加载波斯语文本的自定义波斯字体(BMitra、IRANSans,...)

我无法让 mPDF 使用 BMitra 和 IRANSans 等自定义字体正确渲染波斯语(波斯语)文本。 问题: 主要问题是,当我尝试生成包含波斯语内容的 PDF 时,...

回答 1 投票 0

如何使用composer安装包

我对作曲家完全陌生;-) 我尝试使用 Composer 在我的本地主机(ubuntu 16.04)上安装 mPDF 7.1。 1.) 我安装了composer 1.6.5。 2.)下载mPDF 7.1(https://github.com/mpdf/mpdf/rele...

回答 3 投票 0

mpdf {PAGENO}可以显示波斯语字符吗?

mpdf 是否有一个设置可以更改默认编号模式? 我尝试在页脚中使用 {PAGENO},它总是显示 1,2,3 等,而不是 1,2,3 现在我可以通过添加

回答 1 投票 0

© www.soinside.com 2019 - 2024. All rights reserved.