2012-12-21 71 views
1

如何從打印機直接打印?如何直接從Yii打印機打印?

這是一個Intranet Web應用程序。用戶將使用此應用程序,他們將從其部門的打印機(不同部門,不同打印機)打印報告。我是Google直接從打印機打印出來的,但是我找不到任何地方。我正在使用Yii Framework 1.11。

我該怎麼做?是否可以直接從打印機打印出來?怎麼樣?

+0

將此項添加到您的視圖''是一個選項?,並作爲一個附註:除了打印機以外,還有什麼可以直接打印:) – Dale

+0

yes window.print將打印整個網頁。現在,客戶只希望通過.xls(csv)或pdf打印報告。但他們不希望允許保存到員工電腦,只是打印。 –

回答

0

你可以試試這個: -

$fhandle = fopen("test.php","rb"); 
$contents = fread($fhandle, filesize("test.php")); 
$output = eval($contents); 

$handle = printer_open("Dell Laser Printer M5200"); 
printer_set_option($handle,PRINTER_MODE,"raw"); 
printer_write($handle,$output); 
printer_close($handle); 
+0

打印機不應該被定義。有不同的部門有不同的打印機(1個部門至少有2個打印機),其中一臺打印機在損壞時可能被其他全新打印機替換。 –

0

對於Web應用程序的所有版畫作品與您的瀏覽器的依賴。您必須創建一個頁面或彈出窗口,以便使用特殊的Html和CSS進行打印視圖。

+0

你是什麼意思特殊的HTML和CSS? –

+0

你能幫我怎麼做嗎? –

+0

http://envisionic.com/webtips/user_experience/printer_friendly.php – Chalist

0

至少我付出了最好的方式。我從下面的網站獲得了js。

http://www.position-absolute.com/articles/printing-web-pages-a-new-jquery-printing-plugin/

我的視圖(指數或某事)

<p align="right"> 
     <?php 

      echo CHtml::link('New Job',array('create'),array('class'=>'btn btn-info')); 
      echo CHtml::link('Print',array('print'),array('class'=>'btnPrint btn btn-info', 'style'=>'margin-left: 10px;')); 
     ?> 
    </p> 
<?php $this->widget('zii.widgets.grid.CGridView', array(
    'id'=>'job-grid', 
    'dataProvider'=>$jobs->search(), 
    'filter'=>$jobs, 
...)); ?> 

我的控制器

public function actionPrint() { 
     $d = $_SESSION['all']; 
     $this->renderPartial('print',array('d'=>$d),false,true); 
} 

我的模型

public function search() 
    { 
     // Warning: Please modify the following code to remove attributes that 
     // should not be searched. 

     $criteria=new CDbCriteria; 

     $criteria->compare('id',$this->id,true); 
     $criteria->compare('name',$this->name,true); 
     $criteria->compare('date',$this->date,true); 
     $criteria->compare('department_id',$this->department_id); 
     $criteria->compare('section_id',$this->section_id); 
     $criteria->compare('team_id',$this->team_id); 
     $criteria->compare('created_date',$this->created_date,true); 
     $criteria->compare('updated_date',$this->updated_date,true); 

     $data = new CActiveDataProvider(get_class($this), array(
       'criteria'=>$criteria, 
       'pagination'=>false, 
     )); 
     $_SESSION['all'] = $data; 

     $data = new CActiveDataProvider(get_class($this), array(
       'pagination'=>array('pageSize'=> Yii::app()->user->getState('pageSize', 
         Yii::app()->params['defaultPageSize']),), 
       'criteria'=>$criteria, 
     )); 
     $_SESSION['limited'] = $data; 

     return $data; 
    } 

我的觀點(print.php)

<div id="summary"> 
<table width="100%" border="1"> 
    <tr> 
     <th>No.</th> 
     <th>Job No.</th> 
     <th>Date</th> 
     <th>Department</th> 
     <th>Section</th> 
     <th>Team</th> 
    </tr> 
    <?php 
    $i=1; 
    foreach($d->data as $item) 
    { 
    ?> 
    <tr> 
     <td><?php echo $i;?></td> 
     <td><?php echo $item->name; ?></td> 
     <td><?php echo $item->date; ?></td> 
     <td><?php echo $item->departmentsdep->name; ?></td> 
     <td><?php echo $item->departmentssec->name; ?></td> 
     <td><?php echo $item->departmentstea->name; ?></td> 
    </tr> 
    <?php 
     $i++; 
    } 
    ?> 
</table> 
</div> 
+0

我收到未定義索引的錯誤:全部。爲什麼這樣? –

+0

@ Femme Fatale,上面的答案不是我的代碼,但它看我的代碼,看看你的問題。我認爲錯誤來自這行代碼$ _SESSION ['all']。我想因爲你沒有用參數'all'設置會話。 –

相關問題