2010-06-14 34 views
1

我想加載一個現有的pdf文件,並填充數據庫信息。加載文件和一切工作,除了寫入數據到加載頁面。它不會將文本寫入加載的頁面。如果我添加一個新頁面並使用foreach將繪圖應用於所有頁面,則所有添加的頁面都會被寫入,除了已加載的頁面。下面是我使用的代碼:用Zend Framework在一個加載的pdf文件上繪製文本

$pdf = Zend_Pdf::load('./documents/agreements/_root/gegevens.pdf'); // Load pdf 
$pdf->pages = array_reverse($pdf->pages); // reverse pages 
$pdf->pages[] = new Zend_Pdf_Page(Zend_Pdf_Page::SIZE_A4); // Add a page (A4) 
$font = Zend_Pdf_Font::fontWithName(Zend_Pdf_Font::FONT_HELVETICA); // Set font 
foreach($pdf->pages as $page) // Apply settings+text to every page (total of 2) 
{ 
    $page->setFont($font, 36); 
    $page->setAlpha(0.25); 
    $page->drawText('LALALALALALALA', 62, 260, 'UTF-8'); 
} 
$pdf->save('./documents/agreements/Gegevens_'.$this->school_id.'.pdf'); // Save file 

回答

1

我解決了這個問題:我創建了一個新的PDF文件使用不同的設置。使用以下設置創建pdf(我使用Acrobat PDFmaker Office COM Addin)來做到這一點。我猜想代碼畢竟是工作的,PDF本身就是造成問題的原因。

在字選擇另存爲PDF 選擇 '快速和簡單的PDF' 格式

變化 'Adobe PDF轉換選項' 設置:

啓用 - >轉換文檔信息
啓用 - >製作PDF/A標準
禁用 - >從
禁用創建書籤 - >轉換評論

注:這對於將文件保存爲PDF格式字。其他辦公應用程序未經測試。

0

嘗試以下操作:

$pdf = Zend_Pdf::load('./documents/agreements/_root/gegevens.pdf'); // Load pdf 
$font = Zend_Pdf_Font::fontWithName(Zend_Pdf_Font::FONT_HELVETICA); // Set font 
foreach($pdf->pages as $pid => $page) // Apply settings+text to every page (total of 2) 
{ 
    $myPage = new Zend_Pdf_Page($page); 
    $myPage->setFont($font, 36); 
    $myPage->setAlpha(0.25); 
    $myPage->drawText('LALALALALALALA', 62, 260, 'UTF-8'); 
    $pdf->pages[$pid] = $page; 
} 
$pdf->save('./documents/agreements/Gegevens_'.$this->school_id.'.pdf'); // Save file 
+0

不幸的是,沒有工作。 在PDF中有設置導致頁面不可寫入的可能性? – 2010-06-15 07:38:20

+0

是的,如果PDF是密碼或寫保護是可能的,那麼你將無法寫入它。上述方法可以在我的非受保護的pdf發票模板上正確使用 – Mark 2010-06-15 14:58:57

0

試試這個。

$pdf->pages[i]->drawText('LALALALALALALA', 62, 260, 'UTF-8'); 
相關問題