Frage

Ich bin im Begriff, eine dynamische PDF-Datei zu erzeugen, die Daten von rund 10.000 Anwender enthält in der Regel der App entwickelt mit MySQL und PHP. Der dynamische Inhalt ist so schwer, dass fand ich es schwierig zu verarbeiten mit fpdf() Klasse. So konvertiert ich meine Ausgabe PHP Seite als HTML-Datei mit ob_get_clean(). Nun wird die HTML-Datei erzeugt erfolgreich und auch die pdf-Datei. Aber ich möchte nach jeder Benutzerdaten einen Seitenumbruch verlassen, dass jeder Benutzer die Daten müssen in einer neuen Seite beginnen. Ich konnte keine HTML-Tags verwenden, weil in der dynamisch generierten HTML-Datei, alles der <html> und </html>-Tags aus. Bitte helfen Sie mir, so dass einige, wie ich einen Seitenumbruch in der pdf-Datei der Daten nach jedem Benutzer machen ... Vielen Dank im Voraus:)

War es hilfreich?

Lösung

Ich dachte gerade dieses heraus nach dem gleichen Problem. der Parser, dass sie verwenden Teilen die page-break-after-Tag unterstützen, aber die html2pdf nicht funktioniert.

Ich glaube, ich habe es funktioniert, indem die folgenden Änderungen an html2pdf.class tun:

um Zeile 4174, das erste, was im Innern:

protected function _tag_close_P($param){

sollte:

   if($this->parsingCss->value['page-break-after'] == "always")
        $this->_setNewPage();

um Zeile 2961, das erste, was im Innern:

protected function _tag_close_DIV($param, $other='div'){

sollte:

 if($this->parsingCss->value['page-break-after'] == "always")
        $this->_setNewPage();

Andere Tipps

html2pdf unterstützt Tag:

protected function _tag_open_PAGE($param) {} 

in Zeile 2229. Sie sehen dort, welche Attribute unterstützt werden. Zum Beispiel folgender erstellt eine Seite in der Landschaft und eine im Portrait-Modus:

<page orientation="l">
... some content ...
</page>
<page orientation="p">
... some content ...
</page>

Basing auf macdabby Arbeit (was nicht funktioniert). Aber dank ihm die Idee richtig ist.

HTML2PDF v4.03

Zum Beispiel wollen wir einen Tag DIV analysieren:

html2pdf.class.php Linie 2948:

protected function _tag_close_DIV($param, $other='div')
{
    if ($this->parsingCss->value['page-break-after'] == "always")
      $this->_setNewPage(null, '', null, $this->_defaultTop);
      $this->parsingCss->setPosition();
    ...
}

parsingCss.class.php Linie 114:

//add a new style declaration
public function initStyle()
{
    ...
    $this->value['page-break-after'] = null;
}

Line 1024 fügen Sie einen neuen Handler das Schaltergehäuse:

case 'page-break-after':
    $this->value[$nom] = $val;
    break;

Und dann für sie zu arbeiten, Ihr HTML-Inhalt sollte das Bruchelement enthält

 <div style="page-break-after:always; clear:both"></div>

Watch out für Groß- und Kleinschreibung Stil, nicht sicher, ob das Plugin handele es

Sie möchten möglicherweise einige CSS verwenden, zum Beispiel:

h1 {page-break-before:always}
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top