PDF aus QTextEdit heraus erstellen - Formatierungsprobleme
PDF aus QTextEdit heraus erstellen - Formatierungsprobleme
Hallo allerseits,
ich habe ein QTextEdit und füge in dieses diversen Text mit Hilfe der insertHtml() Methode ein.
Da ich nun Html-Code verwenden kann habe ich meinen Text formatiert wie folgt:
<h1>Überschrift</h1><br><b>Setting:</b> Value<br>
Das klappt auch soweit...
mit m_pTextEdit->document()->print() drucke ich dann das Dokument auf PDF aus... auch kein Thema.
Aber wie bekomme ich es hin, das ich evtl.
ein DIV erstelle welches ich rechts im Dokument floaten lasse?
Danke schonmal für die Tips
ich habe ein QTextEdit und füge in dieses diversen Text mit Hilfe der insertHtml() Methode ein.
Da ich nun Html-Code verwenden kann habe ich meinen Text formatiert wie folgt:
<h1>Überschrift</h1><br><b>Setting:</b> Value<br>
Das klappt auch soweit...
mit m_pTextEdit->document()->print() drucke ich dann das Dokument auf PDF aus... auch kein Thema.
Aber wie bekomme ich es hin, das ich evtl.
ein DIV erstelle welches ich rechts im Dokument floaten lasse?
Danke schonmal für die Tips
-
- Beiträge: 605
- Registriert: 28. Juni 2007 15:01
- Kontaktdaten:
Code: Alles auswählen
<div style="float:right;">Ein DIV</div>
Außerdem gibts noch eine Übersicht was von Qt unterstützt wird:
http://doc.trolltech.com/4.4/richtext-html-subset.html
http://doc.trolltech.com/4.4/richtext-html-subset.html
danke für die Antworten...
hatte schon die Unterstützten HTML Tags gefunden...
hatte es auch schon so ausprobiert
<div float='right'>Text</div>
aber da dies nicht klappte wunderte ich mich doch arg
Jetzt so im Nachhinein betrachtet merk ich auch das dies garkein gültiger Html-Code ist *pfeif*
Ich werde es noch einmal mit der oben gegebenen Zeile probieren...
danke schonmal
hatte schon die Unterstützten HTML Tags gefunden...
hatte es auch schon so ausprobiert
<div float='right'>Text</div>
aber da dies nicht klappte wunderte ich mich doch arg
Jetzt so im Nachhinein betrachtet merk ich auch das dies garkein gültiger Html-Code ist *pfeif*
Ich werde es noch einmal mit der oben gegebenen Zeile probieren...
danke schonmal
-
- Beiträge: 605
- Registriert: 28. Juni 2007 15:01
- Kontaktdaten:
sorry - aber QWebView steht mir leider nicht zur Verfügung (QT 4.3.4).
Leider ist ein Umstieg derzeit nicht möglich, da ich mit Librarys von externen Entwicklern arbeite, welche auf dieser Version von QT arbeiten.
Ich dachte QTextDocument unterstützt das Html-Subset... und der QTextEdit dient nur zur Darstellung des ganzen.
Ne Anzeige auf der Oberfläche benötige ich nicht - es soll nur ein Protokoll im PDF-Format erzeugt werden, welches spezifische Informationen enthält.
Dieses würde ich natürlich gerne "formatiert" haben - daher hatte ich versucht über die Html-Tags sozusagen das ganze in Tabellen und/oder Divs zu realisieren....
Ich bekomme es nur hin, Text untereinander zu schreiben... den kann ich dann auch färben, fett machen usw. ... aber die rechte Hälfte der Seite bleibt dabei ungenutzt....
Leider ist ein Umstieg derzeit nicht möglich, da ich mit Librarys von externen Entwicklern arbeite, welche auf dieser Version von QT arbeiten.
Ich dachte QTextDocument unterstützt das Html-Subset... und der QTextEdit dient nur zur Darstellung des ganzen.
Ne Anzeige auf der Oberfläche benötige ich nicht - es soll nur ein Protokoll im PDF-Format erzeugt werden, welches spezifische Informationen enthält.
Dieses würde ich natürlich gerne "formatiert" haben - daher hatte ich versucht über die Html-Tags sozusagen das ganze in Tabellen und/oder Divs zu realisieren....
Ich bekomme es nur hin, Text untereinander zu schreiben... den kann ich dann auch färben, fett machen usw. ... aber die rechte Hälfte der Seite bleibt dabei ungenutzt....
So ich habe mir nochmal eine kleine Testumgebung geschaffen um nachvollziehen zu können warum dieses nicht klappen will.
Einfach ein Widget mit einem QTextEdit Feld - und Einem Pushbutton zum speichern.
Ich gebe Html-Code in mein TextEdit-Feld ein - drücke den Speichern Button und folgender Code wird ausgeführt:
Ich erstelle mir neben dem Pdf-Dokument welches im per QPrinter drucke noch eine Html-Datei welche mir den Html-Code aufzeigen soll - welcher nun dabei Herauskommt.
Wenn ich nun folgenden Html-Code im TextEdit eingebe:
Erhalte ich eine Html-Datei mit folgendem Inhalt:
Sowohl bold und div tags werden komplett verschluckt und umgeformt... und genau daran hapert es.
Wie bekomme ich es sinnvoll hin, ein vernünftig formatiertes PDF-Dokument zu erzeugen?
Einfach ein Widget mit einem QTextEdit Feld - und Einem Pushbutton zum speichern.
Ich gebe Html-Code in mein TextEdit-Feld ein - drücke den Speichern Button und folgender Code wird ausgeführt:
Code: Alles auswählen
QString text;
text = ui.textEdit->toPlainText();
doc = new QTextDocument();
doc->setHtml(text);
doc->print(&printer);
QFile files("test.html");
if (!files.open(QIODevice::WriteOnly | QIODevice::Text))
return;
QTextStream out(&files);
out << doc->toHtml() << "\n";
files.close();
Wenn ich nun folgenden Html-Code im TextEdit eingebe:
Code: Alles auswählen
<div style="float:left;">
<b>Überschrift 1</b><br/>
Hallo Welt<br/>
Hallo Welt<br/>
</div>
<div style="float:right;">
<b>Überschrift 2</b><br/>
Hallo Welt<br/>
Hallo Welt<br/>
</div>
Code: Alles auswählen
<html><head><meta name="qrichtext" content="1" /><style type="text/css">
p, li { white-space: pre-wrap; }
</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;">
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">Überschrift 1</span><br />Hallo Welt<br />Hallo Welt<br /></p>
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">Überschrift 2</span><br />Hallo Welt<br />Hallo Welt<br /></p></body></html>
Wie bekomme ich es sinnvoll hin, ein vernünftig formatiertes PDF-Dokument zu erzeugen?