我无法让我的 pdf 生成器工作。我正在使用 dompdf/dompdf 库,但在生成我想要的 PDF 时遇到很多麻烦。我的问题是:每次我尝试使用使用 family-font 样式的文件生成 PDF:DejaVu Sans 时,我都会收到 500 错误并且没有任何反应。
当我删除包含“DejaVu Sans”的行时,一切正常,但我需要 PDF 文件来处理扩展的拉丁字符,如“ążćłóńę”。有什么方法可以实现这一点,或者有其他方法可以在 DomPdf 中使用扩展拉丁语吗?
PHP 生成:
<?php
require 'vendor/autoload.php';
use Dompdf\Dompdf;
use Dompdf\Options;
$options = new Options();
$options->set('isRemoteEnabled', true);
$dompdf = new Dompdf($options);
$php = file_get_contents("inputPdfData.php");
$dompdf->setPaper('A4', 'portrait');
$dompdf->loadHtml($php);
$dompdf->render();
$dompdf->stream();
“输入PdfData.php”
<html lang="pl">
<head>
<title>PDF GENERATOR</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<meta charset="UTF-8" content="text/html">
<style>
* {
font-family: "DejaVu Sans", sans-serif;
}
</style>
</head>
<body>
ążćęłóńź
ĄŻĘĆŹŁÓŃ
</body>
</html>
“composer.json”
{
"require": {
"dompdf/dompdf": "^2.0"
}
}
通常在安装 DOMPDF 后,DejaVu TrueType 字体已被预安装,默认情况下为 dompdf 提供适当的 Unicode 字符覆盖。
在 DomPdf 中使用扩展拉丁语的另一种方法(或渲染波兰字体等),您可以使用
Poltawski Nowy
字体代替。诀窍是使用谷歌字体,例如
<link href="https://fonts.googleapis.com/css2?family=Poltawski+Nowy:ital,wght@0,400..700;1,400..700&display=swap" rel="stylesheet">
所以请在下面找到完整的工作代码:
PHP
<?php
require 'vendor/autoload.php';
use Dompdf\Dompdf;
use Dompdf\Options;
$options = new Options();
$options->set('isRemoteEnabled', true);
$dompdf = new Dompdf($options);
$php = file_get_contents("inputPdfData.php");
$dompdf->setPaper('A4', 'portrait');
$dompdf->loadHtml($php);
$dompdf->render();
$dompdf->stream();
输入PdfData.php
<html lang="pl">
<link href="https://fonts.googleapis.com/css2?family=Poltawski+Nowy:ital,wght@0,400..700;1,400..700&display=swap" rel="stylesheet">
<head>
<title>PDF GENERATOR</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<meta charset="UTF-8" content="text/html">
<style>
* {
font-family: "Poltawski Nowy", sans-serif;
}
</style>
</head>
<body>
ążćęłóńź <br>
ĄŻĘĆŹŁÓŃ <br>
Stack Overflow is good
</body>
</html>
结果见下文