2

CakePdf と TcPdf エンジンを使用して背景画像で pdf 生成をセットアップしようとしています。次の設定を使用して、画像を背景に表示することができました。

// set background image
$img_file = APP . 'webroot/img/BC_Letterhead.jpg';
$TCPDF->Image($img_file, 0, 0, 210, 297, '', '', '', false, 300, '', false, false, 0);

問題は、画像が背景全体を覆っているように見えることです。右に約 1 インチ、ページの下部に約 2 インチ短いようです。私が使用している画像は正しいサイズです(再確認しました)

これはマージンの問題または同様のものでしょうか?

ありがとう

4

3 に答える 3

9

ポイントは、ヘッダーとフッターを削除し、余白をゼロに、自動改ページを false に設定することです。

たとえば、A4 ページ全体をカバーするイメージを印刷するには、次のようにします。

// create new PDF document
$pdf = new TCPDF(PDF_PAGE_ORIENTATION, PDF_UNIT, PDF_PAGE_FORMAT, true, 'UTF-8', false);

// remove default header/footer
$pdf->setPrintHeader(false);
$pdf->setPrintFooter(false);

// set margins
$pdf->SetMargins(0, 0, 0, true);

// set auto page breaks false
$pdf->SetAutoPageBreak(false, 0);

// add a page
$pdf->AddPage('P', 'A4');

// Display image on full page
$pdf->Image('background.jpg', 0, 0, 210, 297, 'JPG', '', '', true, 200, '', false, false, 0, false, false, true);

//Close and output PDF document
$pdf->Output('page.pdf', 'I');

ドキュメントには、カスタム ヘッダーを使用した例もあります。

http://www.tcpdf.org/examples/example_051.phps

于 2015-05-02T15:23:34.873 に答える
2

これは私にとってはうまくいきます。

class MYPDF extends TCPDF {
//Page header
public function Header() {
    // get the current page break margin
    $bMargin = $this->getBreakMargin();
    // get current auto-page-break mode
    $auto_page_break = $this->AutoPageBreak;
    // disable auto-page-break
    $this->SetAutoPageBreak(false, 0);
    // set background image
    $img_file = K_PATH_IMAGES.'pozadina.jpg';
    $this->Image($img_file, 0, 0, 98, 59, '', '', '', false, 300, '', false, false, 0);
    // restore auto-page-break status
    $this->SetAutoPageBreak($auto_page_break, $bMargin);
    // set the starting point for the page content
    $this->setPageMark();
}
}
$pdf = new MYPDF('L', 'mm', array(59,98));
$pdf->Output('filename.pdf', 'D'); //To force download
于 2013-03-04T08:41:02.400 に答える
1

私はこれを次のコードで多かれ少なかれ機能させることになりました。唯一の問題は、背景画像がカバーされていない状態で、下部に約 1cm の幅があることです。幅は問題ありません。

        // -- SET BACKGROUND IMAGE ------------------------------>
        $TCPDF->SetFooterMargin(0);

        // get the current page break margin
        $bMargin = $TCPDF->getBreakMargin();

        // get current auto-page-break mode
        $auto_page_break = $TCPDF->getAutoPageBreak();

        // disable auto-page-break
        $TCPDF->SetAutoPageBreak(true, 0);

        // set background image
        $img_file = APP . 'webroot/img/BC_Letterhead.jpg';
        $TCPDF->Image($img_file, 0, 0, 225, 305, '', '', '', false, 300, '', false, false, 0);

        // set the starting point for the page content
        $TCPDF->setPageMark();
        $TCPDF->setPrintFooter(false);
        // END BACKGROUND MODS -------------------------------->
于 2012-09-19T22:39:08.823 に答える