gpt4 book ai didi

fpdf - tFDPF 中 AddFont 调用的顺序生成错误

转载 作者:行者123 更新时间:2023-12-02 04:28:56 28 4
gpt4 key购买 nike

我正在使用 tFPDF 库(扩展 fpdf 以包含 unicode 字体)。

我在添加多种字体时遇到了一个奇怪的问题。以下代码不会产生错误:

$pdf->AddFont('DejaVu','','DejaVuSans.ttf',true);
$pdf->AddFont('DejaVuBold','','DejaVuSans-Bold.ttf',true);
$pdf->AddFont('DejaVuBoldOblique','','DejaVuSans-Oblique.ttf',true);
$pdf->AddFont('DejaVuOblique','','DejaVuSans-BoldOblique.ttf',true);

但是正如你所看到的,我不小心添加了一种名为“DejaVuBoldOblique”的字体,它实际上只是倾斜的,而“DejaVuOblique”既是倾斜的又是倾斜的。因此,当我渲染 PDF 时,文本没有按预期显示。但是,当我将代码修复为以下内容时,出现错误:

$pdf->AddFont('DejaVu','','DejaVuSans.ttf',true);
$pdf->AddFont('DejaVuBold','','DejaVuSans-Bold.ttf',true);
$pdf->AddFont('DejaVuOblique','','DejaVuSans-Oblique.ttf',true);
$pdf->AddFont('DejaVuBoldOblique','','DejaVuSans-BoldOblique.ttf',true);

FPDF 错误:未定义字体:dejavuoblique

这里有什么想法吗,为什么顺序会有所不同?

最佳答案

我已经审查了您的问题,据我了解您正在尝试添加 DejaVu 和 DejaVu Bold 字体。您的代码:

$pdf->AddFont('DejaVu','','DejaVuSans.ttf',true);
$pdf->AddFont('DejaVuBold','','DejaVuSans-Bold.ttf',true);

使用下面的代码代替上面的代码:

// Add a Unicode font (uses UTF-8)
$tfpdf->AddFont('DejaVu', '', 'DejaVuSansCondensed.ttf', true);
$tfpdf->AddFont('DejaVu', 'B', 'DejaVuSansCondensed-Bold.ttf', true);

tFPDF 最新版本中提供 DejaVuSansCondensed 字体,即 ( http://www.fpdf.org/en/script/script92.php )

下载后,您必须在 tfpdf.php 文件函数“SetFont”中进行一些更改。将以下代码粘贴到第 619 行。

/* Modified by Vinod Patidar due to font key does not match in dejavu bold.*/
if ( $family == 'dejavu' && !empty($style) && ($style == 'B' || $style == 'b') ) {
$fontkey = $family.' '.strtolower($style);
} else {
$fontkey = $family.$style;
}
/* Modified end here*/

如果有任何不清楚的地方,请告诉我,我很高兴为您提供帮助!

关于fpdf - tFDPF 中 AddFont 调用的顺序生成错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24731540/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com