我想用PHP修改PDF文档。我找到了允许创建和修改PDF文件的库FPDF和FPDI。这是我非常简单的代码:
<?php
require_once('include/fpdf.php');
require_once('include/fpdi.php');
// initiate FPDI
$pdf = new FPDI();
// add a page
$pdf->AddPage();
// set the sourcefile
$pdf->setSourceFile('input.pdf');
// import page 1
$page1 = $pdf->importPage(1);
// insert the page
$pdf->useTemplate($page1);
// now write some text above the imported page
$pdf->AddFont('calibri');
$pdf->SetFont('calibri','',11);
$pdf->Write(0, "This is just a simple text");
header("Content-Type: application/pdf");
$pdf->Output();
这效果很好,但我看到插入的文本添加了对系统字体的引用,而不是已经嵌入的字体。如何简单地重复使用嵌入字体?
如果这是不可能的,那么库请随时将我指向第三个免费库。
我知道我只能使用已经使用的字符,但这在我的特殊情况下没有问题。我已经检查了所有可能的字符是否以正确的区分大小写使用。
我敢打赌,您从导入的PDF页面中嵌入的字体不称为calibri
。(PDF 中字体名称的仅小写拼写非常罕见。
而且我也敢打赌,PDF不会Calibri
嵌入为全套。它很可能只是一个子集。作为子集,字体名称将由随机的 6 个字母大写前缀 + 原始字体名称组成,如下所示:
AXBTZV+Calibri
您必须找到确切的名称并尝试使用它。(但是,我不确定您的PHP库是否如何工作,是否可以做到这一点,以及它是否会以正确的方式处理PDF文本编写代码的修改。不过,请提供PDF,我很可能可以在文本编辑器中做到这一点...
中重复使用字体通常是不可能的,因为只存储 PDF 中使用的字符。因此,如果您从未在 PDF 模板中使用过大写W
,并且想要添加带有大写的文本,则无法显示它。
这不会回答您的问题,而是告诉您根本不要尝试。