PDF aus QTextEdit heraus erstellen - Formatierungsprobleme

Alles rund um die Programmierung mit Qt
Antworten
tribari
Beiträge: 63
Registriert: 23. Juli 2008 13:31
Wohnort: Braunschweig

PDF aus QTextEdit heraus erstellen - Formatierungsprobleme

Beitrag von tribari »

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
CaptnChaos
Beiträge: 605
Registriert: 28. Juni 2007 15:01
Kontaktdaten:

Beitrag von CaptnChaos »

Code: Alles auswählen

<div style="float:right;">Ein DIV</div>
Das ist doch HTML spezifisch und hat nix mit Qt zu tun oder?
upsala
Beiträge: 3946
Registriert: 5. Februar 2006 20:52
Wohnort: Landshut
Kontaktdaten:

Beitrag von upsala »

Außerdem gibts noch eine Übersicht was von Qt unterstützt wird:
http://doc.trolltech.com/4.4/richtext-html-subset.html
tribari
Beiträge: 63
Registriert: 23. Juli 2008 13:31
Wohnort: Braunschweig

Beitrag von tribari »

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 ;)
tribari
Beiträge: 63
Registriert: 23. Juli 2008 13:31
Wohnort: Braunschweig

Beitrag von tribari »

es geht leider immer noch nicht :(

Der Text wird nachwievor links auf dem PDF-Dokument angezeigt...

Noch jemand eine Idee wodran es liegen könnte?
CaptnChaos
Beiträge: 605
Registriert: 28. Juni 2007 15:01
Kontaktdaten:

Beitrag von CaptnChaos »

QTextEdit scheint das nicht zu unterstützen. Je nachdem was du vorhast nimm QWebView. Da wirst du dann keine Probleme haben.
tribari
Beiträge: 63
Registriert: 23. Juli 2008 13:31
Wohnort: Braunschweig

Beitrag von tribari »

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....
Mani99
Beiträge: 244
Registriert: 15. April 2009 10:46
Wohnort: München

Beitrag von Mani99 »

Poste doch mal deinen kompletten html code, event. kann man da was richten!
tribari
Beiträge: 63
Registriert: 23. Juli 2008 13:31
Wohnort: Braunschweig

Beitrag von tribari »

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:

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();
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:

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>
Erhalte ich eine Html-Datei mit folgendem Inhalt:

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>
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?
Antworten