Print Cforms form as pdf

时间:2012-06-12 作者:rhand

我使用创建了一个表单Cforms from Delicious. 客户要求我提供将此表单打印为pdf的选项。我尝试了一些插件,比如Print Friendly and PDF Button 这样就可以添加pdf或打印按钮,但该按钮随后会添加到所有页面,并且大多数情况下表单不会显示在打印预览/打印输出中。有人知道我怎么做吗?

1 个回复
最合适的回答,由SO网友:rhand 整理而成

在开发人员的帮助下WordPress Questions 我解决了这个问题。在里面wp-content/plugins/cforms/cforms.php 我们补充道

require_once(dirname(__FILE__) . \'/html2pdf/html2pdf.class.php\');
从文件夹中加载了所有必要的数据html2pdf 其中包含所有基于源代码的文件html2pdf.fr

之后在同一文件中进一步$newcontent .= substr($content,$last); 我们有用于pdfy代码的代码:

 $pdfContent = \'<table width="560" border="0" cellspacing="1" cellpadding="2" bgcolor="#CCCCCC">\';  
    for($i = 1; $i <= $field_count; $i++) {

        if ( !$custom )
            $field_stat = explode(\'$#$\', $cformsSettings[\'form\'.$no][\'cforms\'.$no.\'_count_field_\' . $i]);
        else
            $field_stat = explode(\'$#$\', $customfields[$i-1]);

        $field_name       = $field_stat[0];
        $field_type       = $field_stat[1];
        $field_required   = $field_stat[2];
        $field_emailcheck = $field_stat[3];
        $field_clear      = $field_stat[4];
        $field_disabled   = $field_stat[5];
        $field_readonly   = $field_stat[6];


        if($field_type == \'fieldsetstart\') {
        $pdfContent.=\'<tr><td colspan="2"></td>&nbsp;</tr><tr><td  align="left" colspan="2" valign="middle"><span style="width:100pxheight:30px;float:left">\' . stripslashes(($field_name)) . \'</span></td></tr><tr><td colspan="2"></td>&nbsp;</tr><tr><td colspan="2"></td>&nbsp;</tr><tr><td colspan="2"></td>&nbsp;</tr>\' ;
        }

    else if($field_type ==\'textarea\') {
    $pdfContent.=\'<tr><td  align="left" valign="middle"><span style="width:100pxheight:30px;float:left">\' . stripslashes(($field_name)) . \'</span></td><td valign="middle"  bgcolor="#ffffff" align="left"><span style="width:300px;height:30px;float:left"><textarea  cols="40" style="width:400px;height:100px;"></textarea></span></td></tr><tr><td colspan="2"></td>&nbsp;</tr>\' ;
    }   

    else{
    $pdfContent.=\'<tr><td  align="left" valign="middle"><span style="width:100pxheight:30px;float:left">\' . stripslashes(($field_name)) . \'</span></td><td valign="middle"  bgcolor="#ffffff" align="left"><span style="width:300px;height:30px;float:left"><input type="text" style="width:350px;height:30px;"></span></td></tr><tr><td colspan="2"></td>&nbsp;</tr>\' ;
    }   
以及

$pdfContent.=\'</table>\';
//echo $pdfContent;
 try
            {
                $html2pdf = new HTML2PDF(\'P\', \'A4\', \'fr\');
                $html2pdf->writeHTML($pdfContent, isset($_GET[\'vuehtml\']));
                $html2pdf->Output(dirname(__FILE__) . \'/html2pdf/pdf/form.pdf\',\'F\');
            }
            catch(HTML2PDF_exception $e) {
                echo $e;
                exit;
            }

结束