Reputation: 12957
I'm using "pdfcrowd HTML to PDF API for PHP" to generate PDF files from the PHP and smarty file. I'm able to generate the PDF but not able to put the background watermark image to the PDF I'm printing out. I tried everything but still couldn't put the background watermark image. Can anyone please guide me regarding this? Where I'm going wrong? Any kind of help would be greatly appreciated. Following is my code for your reference:
<?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;
}
?>
Looking forward to the reply.
Upvotes: 2
Views: 1953
Reputation: 2290
Try using an absolute URL(http://www.yoursite.com/image.png) in this $client->setWatermark("'".ADMIN_SITE_URL."assets/img/watermark.png'", -28, 406);
And see what you get. It looks like a path issue to me mate. Good luck.
Upvotes: 0