Zum Inhalt springen

PDF zickt mit codebox rum...

Erstellt am 27. April 2006 · 7 Antworten · letzte Antwort am 24. Dezember 2008

Tags: Frage

Spyker ·

Hallo Leute.

Ich habe auf meiner Seite über Suchmaschinenoptimierung Beipsiel nun die Ext pdf_generator2 am laufen und diese generiert auch schon den Link unten auf der Seite mit dem man sich eine druckbar PDF herrunterladen kann.

Nun benutze ich auch die Ext sk_codebox und der Inhalt der sk_codebox wird in der PDF total komisch angezeigt.

Hatte das vielleicht schon mal jemand?

Beste,
Tim

Spyker ·

Hab noch ein bischen versucht aber keine neuen erkenntnisse dazugewinnen können.
Hatte das Problem schon mal jemand?

Beste,
Tim

steffenk ·

Hi Tim,

da ich die Codebox geschrieben hab, interessiert mich das. Bei Deiner Seite bekomm ich allerdings immer einen Memory-Fehlermeldung beim Aufruf des pdf-Generators.

Spyker ·

hi steffen,

ich habe das memory limit nun hoch gesetzt.
Die PDF wird nun angezeigt, dann siehste wie komisch das aussieht.

Vll kannste den Fehler auch in einem Testweb rekonstruieren.

PS: deine Extension macht auch einen CSS Validierungsfehler bei font: verdana, ... bold; das bold, ist da ein bischen Fehl am platz...

Beste,
Tim

steffenk ·

Hi Tim,

meine Extension integriert lediglich geshi, d.h. der Source immerhalb der Codeboxen wird komplett von geshi gerendert.

Schuld sind Konstrukte wie <span style=""> </span>, wahrscheinlich die leeren style-Anweisungen.

Ich mach mir mal Gedanken, wie ich die in der Extension nach geshi ausfiltern kann 😉

PS Du kannst auch in der Klasse die $highLightStyles modifizieren - dort sind die leeren spans definiert.

ossipetz ·

ola!

dasja genau mein problemchen hier - zumindest fast geanu #paralyzed#

die leeren spans habe ich in den template constants via pdf_generator entfernt:

pdf_generator2.cssmedia = print
pdf_generator2.regexp_search1 = /<span style="">(.*?)<\/span>/i
pdf_generator2.regexp_replace1 = $1

nun sind da immer noch zwei problemchens:

  • die breite ist immer in pixeln (breite 'auto' wird zu autopx, 100% wird 100%px). im pdf kommt sowas dann schön als 1cm breites irgendwas daher. gibt wohl derzeit nur den patch weg das px abzuschaffen?

  • jedes span wird via pdfgenerator zu einer neuen Zeile. Zeilennunmmern genauso. Ist das nur noch ein Konfigurationsproblem oder kommt das von wo ganz anders her? Und kann man das hinbekommen? resp. hat das schon wer hinbekommen?

jeder tipp ist willkommen 😉

typodry ·

Hi, ich benutze auch den Konstrukt aus pdf_generator2 und sk_codebox und habe das gleiche Problem...

Habe gesehen, dass der komplette Inhalt der Box ins PDF kommt... aber durch die Zeilenumbrüche außerhalb des Rahmens... kann sogar den Text per c&p in ein Textdokument einfügen, obwohl ich ihn im PDF nur teilweise sehen kann...

Anbei ein Bsp. wo man den Text komplett markieren kann...

http://www.typodry.de/index.php?id=57&type=123&attachment=1&filename=typodry.pdf

typodry ·

Hallo zusammen,

da mir dieses Thema keine Ruhe lässt, habe ich mich mal ein wenig damit beschäftigt und habe folgende Kleinigkeit über die CSS-Anweisungen des PDF-Generator2 geändert:

a,p,h1,h2,h3,span,div,li { font-family: Verdana; font-size: 12px; }

a,span,div { white-space: nowrap; }

.CodeBoxTitel {width: auto !important; margin: 0; padding: 0; font-family: Verdana; font-size: 12px; white-space: nowrap; }
.CodeBox {width: auto !important; margin: 0; padding: 0; font-family: Verdana; font-size: 12px; white-space: nowrap; }

Wobei hier nicht die Schriftarten gemeint sind, sondern die nowrap-Anweisungen... somit habe ich es schon mal geschafft, die Zeilenumbrüche einigermaßen in den Griff zu bekommen... Das wiederum nur in HTML-Boxen

Hier eine Beispiel-PDF http://www.typodry.de/index.php?id=81&type=123&attachment=1&filename=typodry.pdf

Hier die Konfiguration meiner Extension
http://www.typodry.de/konfigurationen/ext-pdf-generator2.html

Leider renne ich noch des öfteren auf einen Timeout beim Erstellen von PDFs, das wird wohl an der Anzahl der zu generierenden Informationen liegen... mein Timeout ist schon auf 720 Sekunden hochgesetzt und der Speicher auf 64M zugewiesen...[/url]