我正在使用TCPDF制作PDF,我正在努力使文件尽可能小。我使用的字体是Open Sans。我不是(故意,至少)在PDF中的任何地方使用Helvetica。当我在输出的PDF文件中使用Adobe Reader查看包含的字体时,会列出Open Sans和Helvetica。我注意到如果我AddFont()
其他字体,输出的PDF会变大。
为了节省空间,我如何告诉TCPDF不在文件中包含Helvetica?
答案 0 :(得分:1)
TCPDF添加Helvetica字体有两个原因:
为防止这种情况,您可以编辑文件config/tcpdf_config.php
并将常量PDF_FONT_NAME_MAIN
更改为所需的默认字体名称(应在第155行左右)。请注意,不得使用任何核心字体,因为它们永远不会被嵌入。
为防止这种情况,您必须使用这样的覆盖类:
class MyPdf extends TCPDF {
public function __construct($orientation='P', $unit='mm', $format='A4', $unicode=true, $encoding='UTF-8', $diskcache=false, $pdfa=false) {
// call parent constructor
parent::__construct($orientation, $unit, $format, $unicode, $encoding, $diskcache, $pdfa);
// disable the tcpdf link
$this->setTcpdfLink(false);
}
/**
* Allows to disable the invisible "Powered by www.tcpdf.org" link at the bottom of the page.
* @param type $tcpdflink
*/
public function setTcpdfLink($tcpdflink = true) {
$this->tcpdflink = $tcpdflink ? true : false;
}
}
答案 1 :(得分:0)
Helvetica字体是标准的14核心PDF字体之一,因此在使用时不会嵌入PDF中。如果你查看TCPDF字体目录,你会发现Helvetica文件只包含字体的描述,而不是字体的副本。因此,它不应该显着增加文件大小。
Helvetica字体被设置为TCPDF配置文件中的默认字体。从我的测试来看,这似乎导致它被设置为生成的PDF文件中的字体,即使它没有被使用。更改TCPDF配置文件中的默认字体可以防止这种情况发生。
答案 2 :(得分:0)
我必须面对同样的问题。我已经尝试过 JOR 解决方案。正确,但在我的pdf中仍然显示Helvetica字体系列。
对于我的pdf,我使用的是SVG image.so,它显示Helvetica。在tcpdf.php受保护的属性$ svgstyles中,其SVG字体家族为Helvetica。
答案 3 :(得分:0)
只需在 tcpdf.php 中找到 $tcpdflink 并将该变量设为 false。这对我有用