如何使用pdfcrowd HTML为PHP API设置背景水印图像?

时间:2013-11-19 13:39:45

标签: php html pdf smarty html-to-pdf

我正在使用“pdfcrowd HTML to PDF API for PHP”从PHP和smarty文件生成PDF文件。我能够生成PDF但不能将背景水印图像放到我正在打印的PDF上。我尝试了一切但仍然无法放置背景水印图像。有谁可以指导我这个?我哪里错了?任何形式的帮助将不胜感激。以下是我的代码供您参考:

<?php
  set_time_limit(0);

  require_once("../../includes/application-header.php");
  require_once OCN_ROOT."/core/extention/pdfcrowd/pdfcrowd_config.php";
  require_once OCN_ROOT."/core/extention/pdfcrowd/pdfcrowd.php";

try
  {   
    // create an API client instance
    $client = new Pdfcrowd($username, $apikey);
$objPracticeSheet = new PracticeSheet();
$practice_sheet_id = $_GET['practice_sheet_id'];

    $bread_crumbs_text = 'View Practice Sheet';

    $practice_details = $objPracticeSheet->ViewPracticeSheet($practice_sheet_id);

    $practice_sheet_details = $objPracticeSheet->GetPracticeSheetDetailsById($practice_sheet_id);

    $smarty->assign('bread_crumbs_text', $bread_crumbs_text);
    $smarty->assign('practice_sheet_name', $practice_sheet_details['practice_sheet_name']);
    $smarty->assign("practice_details", $practice_details);
    $smarty->assign("practice_sheet_questions", $practice_sheet_details['practice_sheet_total_questions']);
    $smarty->assign("practice_sheet_display_date", $practice_sheet_details['practice_sheet_display_date']);
    $smarty->assign("practice_sheet_for", $practice_sheet_details['practice_sheet_for']);

    $file_to_show = "pdf-practice-sheet.tpl";

    $final_data = $smarty->fetch($file_to_show);

    $file = fopen(ADMIN_ROOT."temp/pdf_practice_sheet.html", "w+");
    file_put_contents($file, "");

    fwrite($file, $final_data);
    fclose($file);  
  $client->setHeaderHtml($header_html);
    $client->setFooterHtml("<table border='0' width='100%' cellpadding='5' cellspacing='0' style='font-size:10px;font-family:verdana;background:#EFBC8F;margin-top:10px;'><tr><td align='left'>Powered by EntrancePrime.com : 
        India's Favourite Online Test Series for JEE, NEET, & CA-CPT</td><td align='right'>Page %p/%n</td></tr></table>");
    $client->setPageWidth("210mm");
    $client->setPageHeight("298mm");    
    $client->setNoCopy('True');
    //$client->setVerticalMargin("0.8in");
    $client->setPageMargins("1.1in","0.2in","0.4in","0.2in");

    //Set watermark
    $client->setWatermarkInBackground(True);
    $client->setWatermark("'".ADMIN_SITE_URL."assets/img/watermark.png'", -28, 406);

    $pdf = $client->convertFile(ADMIN_ROOT."temp/pdf_practice_sheet.html");
    $filename = $practice_sheet_details['practice_sheet_name'];
    // set HTTP response headers
    header("Content-Type: application/pdf");
    header("Cache-Control: no-cache");
    header("Accept-Ranges: none");
    header("Content-Disposition: attachment; filename=\"" . $filename . ".pdf\"");
    // send the generated PDF 
    echo $pdf;
}
catch(PdfcrowdException $why)
{
  echo "Pdfcrowd Error: " . $why;
}
?>

期待着回复。

1 个答案:

答案 0 :(得分:0)

尝试在此$client->setWatermark("'".ADMIN_SITE_URL."assets/img/watermark.png'", -28, 406);

中使用绝对网址(http://www.yoursite.com/image.png

看看你得到了什么。这对我来说似乎是道路问题。祝你好运。