Print PDF custom module is coming out blank....

B)

Hi… Is there a serious way to print PDF models with different or custom modules? I mean, I found the way to create a “printpdf” button in the Opportunities module.

[color=#ff0000]To do this, I copied the pdf functions from Quotes module in custom/modules/Opportunities/metadata/detailviewdefs,php[/color] as:

4 =>
array (
‘customCode’ => ‘’,
),

[color=#ff0000]I also create a view.detail.php in custom/modules/Opportunities/views with:[/color]

require_once(‘include/MVC/View/views/view.detail.php’);

class OpportunitiesViewDetail extends ViewDetail {

function inter_InterventionViewDetail(){
	parent::ViewDetail();
}

function display(){
	$this->[color=#ff0000]populateQuoteTemplates[/color]();
	$this->displayPopupHtml();
	parent::display();
}

function populateQuoteTemplates(){
	global $app_list_strings, $current_user;
	
	$sql = "SELECT id, name FROM aos_pdf_templates WHERE deleted=0 AND type='Opportunities' AND active = 1";
	
	$res = $this->bean->db->query($sql);

    $app_list_strings['template_ddown_c_list'] = array();
	while($row = $this->bean->db->fetchByAssoc($res)){
        if($row['id']){
		    $app_list_strings['template_ddown_c_list'][$row['id']] = $row['name'];
        }
	}
}

function displayPopupHtml(){
	global $app_list_strings,$app_strings, $mod_strings;
    $templates = array_keys($app_list_strings['template_ddown_c_list']);
	if($templates){

	echo '	<div id="popupDiv_ara" style="display:none;position:fixed;top: 39%; left: 41%;opacity:1;z-index:9999;background:#FFFFFF;">
			<form id="popupForm" action="index.php?entryPoint=generatePdf" method="post">
			<table style="border: #000 solid 2px;padding-left:40px;padding-right:40px;padding-top:10px;padding-bottom:10px;font-size:110%;" >
				<tr height="20">
					<td colspan="2">
					<b>'.$app_strings['LBL_SELECT_TEMPLATE'].':-</b>
					</td>
				</tr>';
		foreach($templates as $template){
            if(!$template){
                continue;

            }
			$template = str_replace('^','',$template);
			$js = "document.getElementById('popupDivBack_ara').style.display='none';document.getElementById('popupDiv_ara').style.display='none';var form=document.getElementById('popupForm');if(form!=null){form.templateID.value='".$template."';form.submit();}else{alert('Error!');}";
			echo '<tr height="20">
			<td width="17" valign="center"><a href="#" onclick="'.$js.'"><img src="themes/default/images/txt_image_inline.gif" width="16" height="16" /></a></td>
			<td><b><a href="#" onclick="'.$js.'">'.$app_list_strings['template_ddown_c_list'][$template].'</a></b></td></tr>';
		}
	echo '		<input type="hidden" name="templateID" value="" />
			<input type="hidden" name="task" value="pdf" />
			<input type="hidden" name="module" value="'.$_REQUEST['module'].'" />
			<input type="hidden" name="uid" value="'.$this->bean->id.'" />
			</form>
			<tr style="height:10px;"><tr><tr><td colspan="2"><button style=" display: block;margin-left: auto;margin-right: auto" onclick="document.getElementById(\'popupDivBack_ara\').style.display=\'none\';document.getElementById(\'popupDiv_ara\').style.display=\'none\';return false;">Cancel</button></td></tr>
			</table>
			</div>
			<div id="popupDivBack_ara" onclick="this.style.display=\'none\';document.getElementById(\'popupDiv_ara\').style.display=\'none\';" style="top:0px;left:0px;position:fixed;height:100%;width:100%;background:#000000;opacity:0.5;display:none;vertical-align:middle;text-align:center;z-index:9998;">
			</div>
			<script>
				function showPopup(task){
					var form=document.getElementById(\'popupForm\');
					var ppd=document.getElementById(\'popupDivBack_ara\');
					var ppd2=document.getElementById(\'popupDiv_ara\');
					if('.count($templates).' == 1){
						form.task.value=task;
						form.templateID.value=\''.$template.'\';
						form.submit();
					}else if(form!=null && ppd!=null && ppd2!=null){
						ppd.style.display=\'block\';
						ppd2.style.display=\'block\';
						form.task.value=task;
					}else{
						alert(\'Error!\');
					}
				}
			</script>';
	}
	else{
		echo '<script>
			function showPopup(task){
			alert(\''.$mod_strings['LBL_NO_TEMPLATE'].'\');
			}
		</script>';
	}
}

}
?>

Nothing can be printed as pdf… cause I copied from Quotes Module (see [color=#ff0000]populateQuoteTemplates[/color]).? Where am I wrong?

Heeeeeelp please :unsure:

The basic steps you will have to carry out:

Create a custom a copy of generatePdf.php here:

custom/modules/AOS_PDF_Templates/generatePdf.php

Rename the copy MyCustomPdf.php

Then create a custom button on your custom module that calls the functions in your custom copy of MyCustomPdf.php.
(this will involve creating a custom controller and adding a custom action that includes MyCustomPdf.php)

edit MyCustomPdf.php to work with the fields in your custom module.

Create custom/modules/AOS_PDF_Templates/views/view.edit.php

edit the view.edit.php to include fields from your custom module so that they can be added to a pdf template.

Create a new pdf template for your module

Also see this thread:

https://www.suitecrm.co.uk/forum/developer-help/1379-no-preview-option-in-pdf-templates

1 Like