修改PDF并重用嵌入字体

rek*_*ire 1 php pdf fpdf fpdi embedded-fonts

我想用PHP修改PDF文档.我找到了libs FPDFFPDI,它允许创建和修改PDF文件.这是我非常简单的代码:

<?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();
Run Code Online (Sandbox Code Playgroud)

这非常有效,但我看到插入的文本添加了类似于系统字体的引用而不是已经嵌入的字体.我怎样才能简单地重用嵌入字体?

如果那是不可能的,那么libs可以随意指向第三个免费的lib.


我知道我可以使用已经使用过的字符,但在我的特殊情况下这不是问题.我已经检查过所有可能的字符都用于正确的区分大小写.

Kur*_*fle 5

我敢打赌,不会调用导入的PDF页面中的嵌入字体calibri.(只有小写字母拼写的PDF格式很少见.)

而且我还打赌,PDF不会Calibri作为一整套嵌入.它很可能只是一个子集.作为子集,fontname将由随机的6个字母大写前缀+原始字体名称组成,如下所示:

 AXBTZV+Calibri
Run Code Online (Sandbox Code Playgroud)

您必须找到确切的名称并尝试使用此功能.(但是,我不确定你的PHP库是如何工作的,如果它可以做到这一点,以及它是否能够以正确的方式处理PDF文本编写代码的修改.给我带来Gimme和我很可能做的事情.它在文本编辑器中,但...)