COLDFUSION: cfdocument und zwingen einen Seitenumbruch
Erstelle ich eine dynamische PDF-Datei in ColdFusion und habe ein Problem mit "Seitenumbruch". Die Seite, die in Frage kämen haben 1 Datensatz oder bis zu 60+ records. Jeder Datensatz erscheint in 2 Zeilen einer Tabelle. Einige der zurückgegebenen Datensätze werden aufgeteilt zwischen den Seiten (in der ersten Zeile ist am Ende von Seite eins, die zweite Zeile wird in der oberen Zeile der nächste).
Einen Beispiel-Datensatz in HTML angezeigt:
<tr>
<td>Title</td><td>Price</td>
<td colspan="2">Description</td>
</tr>
Pro client-Anfrage, ich versuche, Anzeige =< 9 Datensätze pro Seite.
Hier ist ein verdummt Beispiel von etwas, was ich versucht habe:
<cfdocument format="PDF">
<cfoutput query = "sqllookup">
<cfset loopcount = loopcount + 1>
<cfif loopcount EQ '9'>
<cfdocumentitem type="pagebreak" />
<cfelse>
<tr>
<td>#Title#</td><td>#Price#</td>
<td colspan="2">#Description#</td>
</tr>
</cfif>
</cfoutput>
</cfdocument>
Dies nicht funktioniert, (es versteckt nur die 9. record). Ich habe versucht, mehrere unterschiedliche Ideen, und ich bin derzeit überfragt. Bin ich über die Suche etwas?
Vielen Dank im Voraus.
ColdFusion MX 7.
(Ich lief auch den hot fix für text-cut-off-Problem. http://kb2.adobe.com/cps/402/kb402093.html)
InformationsquelleAutor nope_four | 2010-01-21
Du musst angemeldet sein, um einen Kommentar abzugeben.
Euch versteckt dem 9. Datensatz, da Sie die Wahl zwischen der Anzeige es und zeigt es:
Was Sie wollen, ist mehr wie:
InformationsquelleAutor Ben Doom
Nach Ringen mit dieser Frage-und ausschalten für mehrere Monate, ich habe entdeckt, dass die Verpackung der Inhalt eines
td
mit einemdiv
(dh.<tr><td><div>Cell Contents</div></td></tr>
) wird verhindern, dass ein Seitenumbruch innerhalb der Reihe. Mit diesem setup einen Seitenumbruch, normalerweise teilen Sie die Zeile, die zwischen den Seiten wird stattdessen fallen vor die Zeile, die Schaffung von ein wenig extra Leerraum am Ende der ersten Seite und platzieren die Zeile am Anfang der nächsten Seite.Hinweis zu Zeilen mit mehreren Zellen: Eine einzige td-verschachtelte div-Element ausreichend, um die Ursache der oben beschriebenen Verhalten für die gesamte Zeile.
InformationsquelleAutor Jonathan Wilson
Versuchen Sie, ein
style="page-break-inside: avoid;"
zu jedem element, das Sie nicht wollen, zu sein geteilt zwischen 2 Seiten.Beispielsweise
page-break-inside
CSS-Eigenschaft funktioniert nur bei Opera w3schools.com/cssref/pr_print_pagebi.aspDie Frage ist nicht zu Rendern ist zu einem browser, sondern auf eine PDF-Datei mit der VGL. Ich habe erlebt, wie (2+ Jahren), diese ordnungsgemäß in die Nutzung VGL.
Oh. Habe ich irgendwie missverstanden.
Gut, es funktioniert nicht für mich auf CF9
InformationsquelleAutor Eddie
Für mich, nach dem Versuch alle tricks und forum-Hinweise etc. - das einzige, was funktionierte, in cf8 für größere code-Blöcke (einschließlich der Bilder, Tabellen, div-block etc.) ist:
wickeln Sie die Seite nicht brechen Teil mit
<div>...</div>
aber ein super einfaches
<br>
nachdem es in einer neuen Zeile (im code)z.B.
<div>
... your stuff ...
</div>
<br>
arbeitete, der Teufel weiß, warum...
InformationsquelleAutor Raffael Meier