这看起来是最简单的事情,但我无法让它工作。
我需要添加文本到多页pdf的第一页(可以是任何页数)
在两页pdf上使用此代码(没有for循环,只使用$pdf-
// Original file with multiple pages
$fullPathToFile = 'full/path/to/file.pdf';
class PDF extends FPDI {
var $_tplIdx;
function Header() {
global $fullPathToFile;
if (is_null($this->_tplIdx)) {
$this->setSourceFile($fullPathToFile);
$this->_tplIdx = $this->importPage(1);
}
$this->useTemplate($this->_tplIdx);
}
function Footer() {}
}
// initiate PDF
$pdf = new PDF();
$pdf->setFontSubsetting(true);
// add a page
$pdf->AddPage();
// The new content
$pdf->SetFont("helvetica", "B", 14);
$pdf->Text(10,10,'Some text here');
// How to get the number of pages of original pdf???
// $numPages = $pdf->getNumPages(???);
// Carry on adding all remaining pages starting from page 2
for($i=2;$i<=$numPages;$i++) {
// Add another page
$pdf->AddPage();
// Do I need to declare the source file here?
// $pdf->setSourceFile($fullPathToWD);
$pdf->importPage($i);
}
// Output the file as forced download
$pdf->Output('theNewFile.pdf', 'D');
文档链接
TCPDF类http://www.tcpdf.org/doc/code/classTCPDF.html#a5171e20b366b74523709d84c349c1ced
FPDI类http://www.setasign.de/support/manuals/fpdi/
FPDF_TPL类http://www.setasign.de/support/manuals/fpdf-tpl/
$pdf = new TCPDF('P', 'mm', 'A4', true, 'UTF-8', false);
...
$pdf->SetMargins(10, 10, 10);
$pdf->SetAutoPageBreak(true, 10);
foreach($array as $item)
{
$pdf->AddPage(); //add new page for new item
$txt = some_long_long_text;
$pdf->Write(0, $txt, '', 0, 'C', true);
$pdf->endPage(); //do end of page
$pdf->lastPage(); //set cursor at last page, because autopagebreak not do it
}
在本例中,数组中有10个学生,需要为每个学生创建简历。在考试中,一份简历有三页。所以输入输出你得到30页的pdf,有正确的文本。SetAutoPageBreak(true,10),而不是在最后一页设置光标,所以您需要使用函数$pdf手动执行此操作-
我对此有些挣扎,并试图想出一种最简单的方法,在多页文档的最后一页添加一些文本。下面是对我有用的非常简单的代码:
require_once('fpdf/fpdf.php');
require_once('fpdf/fpdi.php');
$pdf = new FPDI();
$fullPathToPDF = '/usr/local/common/my.pdf';
$pageCount = $pdf->setSourceFile($fullPathToPDF);
for ($i = 1; $i <= $pageCount; $i++) {
$pdf->importPage($i);
$pdf->AddPage();
$pdf->useTemplate($i);
}
$pdf->SetFont('Helvetica');
$pdf->SetXY(110, 225);
$pdf->Write(8, 'A complete document imported with FPDI');
$pdf->Output($fullPathToPDF);
只需将完整路径更改为您拥有多页PDF的位置。
解决了我的问题。。。
// Original file with multiple pages
$fullPathToFile = 'full/path/to/file.pdf';
class PDF extends FPDI {
var $_tplIdx;
function Header() {
global $fullPathToFile;
if (is_null($this->_tplIdx)) {
// THIS IS WHERE YOU GET THE NUMBER OF PAGES
$this->numPages = $this->setSourceFile($fullPathToFile);
$this->_tplIdx = $this->importPage(1);
}
$this->useTemplate($this->_tplIdx);
}
function Footer() {}
}
// initiate PDF
$pdf = new PDF();
$pdf->setFontSubsetting(true);
// add a page
$pdf->AddPage();
// The new content
$pdf->SetFont("helvetica", "B", 14);
$pdf->Text(10,10,'Some text here');
// THIS PUTS THE REMAINDER OF THE PAGES IN
if($pdf->numPages>1) {
for($i=2;$i<=$pdf->numPages;$i++) {
$pdf->endPage();
$pdf->_tplIdx = $pdf->importPage($i);
$pdf->AddPage();
}
}
// Output the file as forced download
$pdf->Output('theNewFile.pdf', 'D');
通过添加此行的第一部分可以获得页数
$this->numPages = $this->setSourceFile($fullPathToFile);
请看最后一段代码——for循环将添加其余的页面。
不知道这是不是应该这样做?我在一些地方读到甚至不可能实现这一点,而且文档中也没有提供代码。然而,这是有效的,希望它能帮助别人。
我正在开发PDF Toc。它会生成第一页,但当我有更多元素时,我会逻辑地为TOC创建一个新页面。我正在使用PDF Box和那个PDPageContentStream。我必须创建一个函数来计算我需要多少页面。然后我在列表中创建确切数量的页面,并在我启动PDPageContentStream之前将它们添加到PDF文档中。该流处于循环中,它只生成第一页。其他页面是空白的。我不知道到底出了什么问题。这是代
如何生成多个页面的pdf报告,每个页面上的内容相同。以下是单页报告的代码。多个页面应位于单个pdf文件中。
我对我的可视寻呼机有一个自定义要求。我想要的是我的寻呼机应该有一个类似DepthPageTransformer的默认水平pageTransformer。现在,在屏幕上我有一个按钮,我希望我的当前页面从底部滑动到顶部,我的下一个页面像VerticalPageTransformer一样替换它,一旦页面改变,页面转换器应该改变回默认的DepthPageTransformer。 所以基本上我想在运行时应用
我可以创建10个线程。但问题是,当我试图以并行方式使用这些线程访问单个页面时。我也尝试过将私有静态PDFTextStripper实例放入同步块中。但我还是得到了以下例外: COSStream已被关闭,无法读取。也许它的附件已经被关闭? 试图打印前10页每页的第一个单词,但不起作用。这是我第一次尝试多线程和PDF阅读。任何帮助都将不胜感激。 如果我使用一个线程按顺序读取for循环中的每个页面,那么它
问题内容: 我已经在这个论坛上使用了一段时间,以找到一些与SQL有关的问题的答案。现在是时候问一个我已经尝试解决一段时间的问题了。 我有两个表(产品和源)。 我想创建一个SQL SELECT来从源中检索记录列表,并从产品中检索一条附加记录(价格的总和)。我想看到的表应如下所示: source.source_id | source.location | source.source_name | so
当我实例化MyRepository时,一切都很好。 我做了一些重构,试图为Db1JdbcTemplate和Db2JdbcTemplate创建新的类,这样我就可以在没有限定符的情况下注入它们。不幸的是,当我这样做时,我会遇到以下异常: 以下是我试图做的: 修改了MyRepository以使用以下内容: 所以我在这两个上面都有@component注释,所以我希望能够注册和自动连线。然而,当我运行这些东