PDF Tabelle mit schrägem Header

9

Ich erstelle PDFs in ColdFusion mit cfdocument. Ich muss einen Tisch mit der Kopfzeile schräg stellen, damit alles auf die Seite passt. Hier ist ein Beispiel für das, was ich erreichen möchte. Keiner der HTML- oder CSS-Beispiele, die ich bisher gefunden habe, hat funktioniert. Jetzt frage ich mich, ob das eine Besonderheit für ColdFusion und / oder PDF-Erstellung ist. Ich weiß, dass dieser Code direkt von einer Antwort auf eine ähnliche Frage kam, aber er erstellt keine Tabelle mit schrägen Spalten in meinem PDF. Es schafft dies.

%Vor%     
Jacqueline Connors 12.04.2017, 23:16
quelle

2 Antworten

2

Ich arbeite daran, PDF-Dokumente mit cfdoucment zu formatieren und habe viel Ärger mit CSS gehabt. so viele Funktionen werden nicht unterstützt, die das Formatieren der PDFs so viel einfacher machen würden: CSS3-Eigenschaften, CSS-Pseudo-Elemente und nicht einmal das !important -Tag können leider verwendet werden.

Es gibt jedoch genug Tricks und Arbeitsumgebungen, mit denen Sie (etwas) Ihre gewünschten Ergebnisse erzielen können. Normalerweise müssen Sie Ihr Markup ein wenig anpassen. So würde ich Ihr Problem lösen:

Erstens: Eine Tabelle mit umrandeten Zellen / Zeilen zu erstellen, ist mit CSS für CF PDF kein Spaß. Eine der CSS-Eigenschaften, die nicht unterstützt wird, ist border-collapse: collapse; . Wenn Sie also Tabellen verwenden, gibt es Leerzeichen zwischen Zellen usw. Sie erhalten so etwas für eine Standardtabelle:

Ich würde wahrscheinlich ein separates Markup mit <div> nur für Ihren PDF-Inhalt erstellen und eine pdf-only -Klasse oder etwas hinzufügen, um es nur in PDFs anzuzeigen und woanders auszublenden.

Bei Ihren Fragen gibt es zwei Probleme, die aufgrund der Beschränkungen von CSS nicht behoben werden können. 1) schräge Linien 2) vertikaler schräger Text.

1) Schräge Linien:

Ich konnte die schrägen Blöcke erstellen, indem ich ein Hintergrundbild (siehe unten) an die Header-Zellen anfügte und sie mit einem anderen CSS-Code verschob, der hoffentlich leicht zu verstehen ist:

%Vor%

Hier ist das vollständige Markup mit dem CSS:

%Vor%

CSS:

%Vor%

Folgendes erhalten Sie: (Dies ist eine tatsächlich generierte PDF mit <cfdocument> )

so dass kümmert sich um die schrägen Header

2) Vertikaler Text

Ich kann mir zwei Lösungen vorstellen, von denen keine ideal ist, aber wir gestalten CF-PDFs, damit wir kreativ werden müssen.

Um genau das zu erhalten, was Sie in Ihrer Frage gepostet haben (rotierter Text) glaube ich, dass der einzige Weg, dies zu erreichen, die Verwendung von Bildern anstelle von Texten ist. Ja, ich weiß, dass es besonders betrügt, wenn deine Tabellen dynamisch sind und die Headertexte sich ständig ändern, wird das nicht funktionieren. Aber wenn sich diese Liste nicht zu sehr ändert, können Sie auch Bilder verwenden, zum Beispiel:

Sie würden dann ein weiteres Element in Ihrer Kopfzeile hinzufügen und dieses Bild als Hintergrund und Mittelpunkt festlegen:

%Vor%

Wenn Bilder als Texte nicht funktionieren, können Sie vielleicht den Text und und einen Zeilenumbruch nach jedem Buchstaben gefolgt von einem Leerzeichen durchlaufen und ihn jedesmal aufsteigend skalieren:

%Vor%

Dadurch wird der Text offensichtlich nicht gedreht, aber es wird einfacher, den Inhalt in den Header einzufügen.

Ich hoffe, das hilft.

    
Sammy 23.04.2017 20:26
quelle
0

Verwenden Sie CF11 oder höher? Wenn ja, verwende bitte <cfhtmltopdf> mit viel besserer css-Unterstützung anstelle der alten <cfdocument> .

Ссылка

    
Henry 19.04.2017 00:02
quelle

Tags und Links