Cakephp - 从数据库中打印(物理)数据

时间:2013-02-28 21:17:50

标签: php file cakephp cakephp-1.3

我很难完成这项工作,我需要的是,打印我的数据库中的合同,当我说打印时,是物理打印。

我可以使用此

访问我要打印的内容
<?php echo @$contrato['Content']['text']; ?>

但我不知道还有什么要做,比如,获取此信息,保存到临时文件然后打开并打印? 我输了。

我知道我是否使用:

<script>window.print()</script>

它将打印整个页面,我不想要,我想打印php代码带给我的那些。

2 个答案:

答案 0 :(得分:0)

  

我不知道还有什么,比如,获取此信息,保存到临时文件然后打开并打印?

将其打印到页面并使用此javascript从浏览器打印:

<?php echo @$contrato['Content']['text']; ?>
<script>window.print()</script>

答案 1 :(得分:0)

如果内容是纯文本,请创建一个视图,仅包含“text”字段的内容并禁用该视图/操作的布局,或者根本不使用视图,而只是回显结果来自您的控制器,例如

控制器中的

public function printable($id)
{
     // (retrieve your data from the database here)
     // ...



    $this->layout = false;
    $this->autoRender = false;
    echo $contrato['Content']['text'];
}

在现有/其他视图中,链接到可打印版本;

 <?php 
    echo $this->Html->link(
       'printable version', 
       array(
           'action' => 'printable',
           0 => $id  // needs to be present as a viewVar or some other way
       ),
       array('target' => '_blank')
    );
 ?>

使用需要使用CTRL + P或手动'打印'

一些备注/备注

如果内容是plaint文本,则文本将以浏览器使用的默认字体打印。

从浏览器打印HTML时,您对打印页面的确切方式有无控制。尽管CSS具有各种“打印”选项,但在大多数情况下,浏览器在打印时会附加页眉和/或页脚(例如,打印页面的URL和页码)。

对输出布局进行完全控制的唯一选项,包括字体,页面大小和抑制页眉/页脚,是生成内容的PDF文件。存在各种库以使用PHP将HTML转换为PDF。一个很好的CakePHP插件可以在这里找到:

https://github.com/ceeram/CakePdf