首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >FPDI将我的进口PDF稍加种植

FPDI将我的进口PDF稍加种植
EN

Stack Overflow用户
提问于 2017-09-28 19:09:08
回答 1查看 1K关注 0票数 1

我使用的是FPDI和FPDF,当我导入我的pdf时,它有一个完整的、好看的设计,出于某种原因,我保存在文件夹中的生成pdf的大小略有改变,在底部和右边/左侧都被缩小/裁剪。如何按原样导入PDF?和原版一样大吗?提前感谢!

代码语言:javascript
运行
复制
<?php
use setasign\Fpdi\Fpdi;

require_once('FPDF/fpdf.php');
require_once('FPDI/src/autoload.php');

// initiate FPDI
$pdf = new Fpdi();

$pdf->setSourceFile('file.pdf');
$tplidx = $pdf->importPage(1);

$pdf->addPage();
$pdf->useTemplate($tplidx);

$pdf->SetFont('Helvetica');
$pdf->SetXY(5, 5);
$pdf->Write(8, 'This is an example of inputted text.');

$filename="test8.pdf";
$pdf->Output($filename, 'F');

?>
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-09-29 06:05:14

这是一个很好的问题,可以证明FPDI不会修改PDF,但是可以将页面导入可重用的结构中。

您在构造函数中或在addPage()调用中都没有定义页面大小,因此生成的页面大小是A4 (默认大小)。

如果您以例如字母格式导入页面,则导入的页面将不适合A4页面--当然。

这方面有一些解决办法:

A:获取导入页面的大小并使用此参数调用AddPage():

代码语言:javascript
运行
复制
$pageId = $this->ImportPage($pageNo);
$s = $this->getTemplatesize($pageId);
$this->AddPage($s['orientation'], $s);
$this->useTemplate($pageId); 

B:将useImportedPage() / useTemplate()方法的useImportedPage()/useTemplate()参数设置为true:

代码语言:javascript
运行
复制
$this->AddPage();
$pageId = $this->ImportPage($pageNo);
$this->useTemplate($pageId, ['adjustPageSize' => true]); 

我建议解决方案A,因为它是直接的。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46476619

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档