1

私はこれを成し遂げるのに苦労しています。私が必要としているのは、データベースにある契約書を印刷することです。私が印刷と言うとき、それは物理的な印刷です。

これを使って印刷したいコンテンツにアクセスできます

<?php echo @$contrato['Content']['text']; ?>

しかし、この情報を取得し、一時ファイルに保存してから開いて印刷するなど、他に何をする必要はありませんか?道に迷いました。

私が使用するかどうか知っています:

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

それは私が望まないページ全体を印刷します、私はそのphpコードが私にもたらすものだけを印刷したいと思います。

4

2 に答える 2

1

この情報を取得し、一時ファイルに保存してから開いて印刷するなど、他に何をする必要はありませんか?

ページに印刷し、次の JavaScript を使用してブラウザから印刷します。

<?php echo @$contrato['Content']['text']; ?>
<script>window.print()</script>
于 2013-02-28T21:20:53.457 に答える
0

コンテンツがプレーンテキストの場合は、「テキスト」フィールドのコンテンツのみを含むビューを作成し、そのビュー/アクションのレイアウトを無効にするか、ビューをまったく使用せずにコントローラーからの結果をエコーするだけです例えば

あなたのコントローラーで

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 または「印刷」を手動で使用する必要があります

いくつかのメモ/コメント

コンテンツがプレーン テキストの場合、テキストはブラウザーが使用する既定のフォントで印刷されます。

ブラウザーから HTML を印刷する場合、ページが印刷される正確な方法を制御することはできません。CSS にはさまざまな「印刷」オプションがありますが、ほとんどの場合、ブラウザーは印刷時にヘッダーやフッターを追加します (たとえば、印刷されたページの URL とページ番号)。

フォント、ページサイズ、ヘッダー/フッターの抑制など、出力のレイアウトを完全に制御する唯一のオプションは、コンテンツの PDF ファイルを生成することです。PHP を使用して HTML を PDF に変換するためのさまざまなライブラリが存在します。このための便利な CakePHP プラグインは、次の場所にあります。

https://github.com/ceeram/CakePdf

于 2013-02-28T23:03:15.503 に答える