php - 如何在 PHP FPDI 库中设置编码

标签 php pdf fpdf fpdi

如何在名为 FPDI 的 php 库中设置 UTF-8 编码?
这是图书馆:https://www.setasign.com/products/fpdi/manual/
编码:

$pdf = new Fpdi();
$pdf->AddPage();
$pdf->setSourceFile('PdfDocument.pdf');
$tplIdx = $pdf->importPage(1);
 
$pdf->useTemplate($tplIdx, 10, 10, 100);

$pdf->SetFont('Helvetica');
$pdf->SetTextColor(255, 0, 0);
$pdf->SetXY(30, 30);
$pdf->Write(0, 'Zażółcić gęślą jaźń');

$pdf->Output();

最佳答案

您可以使用适当的字母添加新字体

$pdf->AddFont('DejaVu','','DejaVuSansCondensed.php');
$pdf->SetFont('DejaVu', '', 10, '', false);
那么关于FPDF FPDI 使用的库:
可能的编码有:
cp1250 (Central Europe)
cp1251 (Cyrillic)
cp1252 (Western Europe)
cp1253 (Greek)
cp1254 (Turkish)
cp1255 (Hebrew)
cp1257 (Baltic)
cp1258 (Vietnamese)
cp874 (Thai)
ISO-8859-1 (Western Europe)
ISO-8859-2 (Central Europe)
ISO-8859-4 (Baltic)
ISO-8859-5 (Cyrillic)
ISO-8859-7 (Greek)
ISO-8859-9 (Turkish)
ISO-8859-11 (Thai)
ISO-8859-15 (Western Europe)
ISO-8859-16 (Central Europe)
KOI8-R (Russian)
KOI8-U (Ukrainian)
发送到 pdf 的字符串是 UTF-8(由 mb_detect_encoding 函数检查),需要用 cp1250 转换它。
$str = iconv('UTF-8', 'cp1250', 'zazółcić gęślą jaźń');
另一种解决方案是尝试使用:
$pdf->SetFont('freeserif', '', 14, '', true);
更新专业提示:
如果字体出现问题 - 首先检查您的 linux 服务器上是否安装了字体。

关于php - 如何在 PHP FPDI 库中设置编码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46772714/

相关文章:

pdf - 更改 PDF 坐标系

php - 使用 fpdf 使文本适合单元格

python - 如何使用 Python 请求获取 pdf 文件名?

java - 从 PDF 中提取文本位置

php - 从 pdf 重定向到 php

php - FPDF 在每个 A4 尺寸页面的页脚处获取页码

php - Codeigniter 在 View 问题中显示私有(private)消息?

php - 暂时禁用 blackfire 模块

php - 捕获未知的命名参数错误

php - 按 slug 查询还是按 id 查询?