2011-06-07 98 views
0

好了,所以这里是完整的代码它不断给我约pdf_add_bookmark功能废话,而PHP的网站有这个功能没有文档更多PHP PDF功能错误

<?php 

    // Declare PDF File 

    $pdf = pdf_new(); 
    PDF_open_file($pdf, "1.pdf"); 

    // Set Document Properties 

    PDF_set_info($pdf, "author", "BT"); 
    PDF_set_info($pdf, "title", "Whats a title?"); 
    PDF_set_info($pdf, "creator", "BT"); 
    PDF_set_info($pdf, "subject", "Whats a subject?"); 

    // Get fonts to use 

    pdf_set_parameter($pdf, "FontOutline", "Arial=C:\Windows\Fonts\arial.ttf"); // get a custom font 
    $font1 = PDF_findfont($pdf, "Helvetica-Bold", "winansi", 0); // declare default font 
    $font2 = PDF_findfont($pdf, "Arial", "winansi", 1); // declare custom font & embed into file 

    /* 
    You can use the following Fontypes 14 safely (the default fonts) 
    Courier, Courier-Bold, Courier-Oblique, Courier-BoldOblique 
    Helvetica, Helvetica-Bold, Helvetica-Oblique, Helvetica-BoldOblique 
    Times-Roman, Times-Bold, Times-Italic, Times-BoldItalic 
    Symbol, ZapfDingbats 
    */ 

    // make the images 

    $image1 = PDF_open_image_file($pdf, "jpeg", "424698.jpg","page",$page); //supported filetypes are: jpeg, tiff, gif, png. 

    //Make First Page 

    PDF_begin_page($pdf, 450, 450); // page width and height. 
    $bookmark = PDF_add_bookmark($pdf, "Front"); // add a top level bookmark. 
    PDF_setfont($pdf, $font1, 12); // use this font from now on. 
    PDF_show_xy($pdf, "First Page!", 5, 225); // show this text measured from the left top. 
    pdf_place_image($pdf, $image1, 255, 5, 1); // last number will schale it. 
    PDF_end_page($pdf); // End of Page. 

    //Make Second Page 

    PDF_begin_page($pdf, 450, 225); // page width and height. 
    $bookmark1 = PDF_add_bookmark($pdf, "Chapter1", $bookmark); // add a nested bookmark. (can be nested multiple times.) 
    PDF_setfont($pdf, $font2, 12); // use this font from now on. 
    PDF_show_xy($pdf, "Chapter1!", 225, 5); 
    PDF_add_bookmark($pdf, "Chapter1.1", $bookmark1); // add a nested bookmark (already in a nested one). 
    PDF_setfont($pdf, $font1, 12); 
    PDF_show_xy($pdf, "Chapter1.1", 225, 5); 
    PDF_end_page($pdf); 

    // Finish the PDF File 

    PDF_close($pdf); // End Of PDF-File. 
    $output = PDF_get_buffer($pdf); // assemble the file in a variable. 

    // Output Area 

    header("Content-type: application/pdf"); //set filetype to pdf. 
    header("Content-Length: ".strlen($output)); //content length 
    header("Content-Disposition: attachment; filename=test.pdf"); // you can use inline or attachment. 
    echo $output; // actual print area! 

    // Cleanup 

    PDF_delete($pdf); 
?> 

这里是返回错误代码

Fatal error: Uncaught exception 'PDFlibException' with message 'pdf_add_bookmark() expects exactly 4 parameters, 2 given' in D:\wamp\www\PDF\pdf.php:36 Stack trace: #0 D:\wamp\www\PDF\pdf.php(36): pdf_add_bookmark(Resource id #2, 'Front') #1 {main} thrown in D:\wamp\www\PDF\pdf.php on line 36 

回答

1

最好的选择,如果你想要写PDF是TCPDF libray。看这里:http://www.tcpdf.org/

它正在积极发展中,有很多例子和很好的作品。它也非常适用于转换HTML到PDF(其有时比使用PDF细胞是有用的和更小的麻烦)

+0

谢谢我会考虑是否正在研究fpdf一个 – 2011-06-07 15:12:28

+0

它也可以用于HTML到PDF的转换。在我看来,创建PDF的任何其他库都好得多(比Zend_Framework 1.11好几百倍于Zend_Pdf) – 2011-06-07 15:29:04

1

我会推荐使用http://www.fpdf.org/来代替。它没有积极的发展,但它有很好的文档和支持/关注。

+0

谢谢,但我会尝试这一个或TCPDF然后看看哪一个更好 – 2011-06-07 15:12:58

0
int pdf_add_bookmark (resource pdfdoc, string text, int parent, int open) 

添加下父嵌套书签或一个新的顶层书签如果父= 0 。返回一个书签描述符,可用作后续嵌套书签的父代。如果打开= 1,则子书签将折叠出来,并且如果打开= 0则不可见。参数parent和open在PHP 4.3.5或PDFlib小于5之前是可选的。