webentwicklung-frage-antwort-db.com.de

dompdf HTML zu PDF - Der Seitenrand kann nicht festgelegt werden

version: 0.6.0 Beta 3

Ich habe in jeder Hinsicht versucht, den Rand der Seite mit dompdf festzulegen. Ich habe eine lange Seite mit viel Text, unterteilt in Kapitel ...

meine css ist so etwas wie:

#wrapper{
    padding:8px;
}

/* other styles... */

@page{margin: 0.2in 0.5in 0.2in 0.5in;}

wenn der php ist

<?php
ob_start(); // begin collecting output
include 'makemypdf.php'; // this page output the html
$html = ob_get_clean(); // retrieve output from makemypdf.php and stop buffering


require_once("dompdf/dompdf_config.inc.php");

$dompdf = new DOMPDF();
$dompdf->load_html($html);
$dompdf->render();
$dompdf->stream("sample.pdf", array("Attachment" => false));

?>

aber was ich bekomme ist eine Seite ohne Seitenränder !!! Nur das Padding des #wrappers wird angewendet ... und sie werden nur am Anfang und am Ende des gesamten PDF angewendet ...

Ich mache etwas falsch?

PS - es scheint, dass nur der untere Rand angewendet wird ... aber ich bin mir nicht sicher ...

PPS - Ich habe auch dieses CSS ohne Erfolg ausprobiert: Karosserie { Rand oben: 40px; } HTML { Rand oben: 40px; } @Seite { Rand oben: 40px; }

16

Ich habe herausgefunden, dass in dieser Version von dompdf weder body noch @page funktionieren.

das Problem lag im Haupt-CSS, wo ich jedem Tyme diese Zeile hinzufügte:

*{margin:0;padding:0}

Ich finde heraus, dass die Ränder von PDF am Rand des HTML-Rands festgelegt werden. Daher habe ich diese Zeile mit dem globalen Selektor entfernt und durch Folgendes ersetzt:

th,td,p,div,b ... {margin:0;padding:0}
html{margin:40px 50px}

Dies funktioniert als "nicht erwartet" und ich bekomme auf jeder Seite den richtigen Rand.

JETZT BIN ICH GLÜCKLICH. Ich weiß wirklich nicht, wer meine Frage abstimmt. Ich denke, das ist sehr wichtig! Tatsächlich gibt es überall im Internet die falsche Antwort (mithilfe von body oder @page margin).

Lösung: Verwendung in CSS-HTML {margin: ...}

38

Das hat mein Problem behoben:

        @page {
            margin: 0px 0px 0px 0px !important;
            padding: 0px 0px 0px 0px !important;
        }
0
servetoz32