How to use both the properties of Qtextdocument
-
@VRonin I tried to do this.
QTextCursor document1; document1.document()->setHtml(hex); QString data = ui->teData->toPlainText(); document1.document()->setPlainText(data);
but i got the above error when i ran with the debug mode . and the error was thrown from document1.document()->setHtml(hex); this line of code .
-
i use both .
You cannot use both
setPlainText()
andsetHtml()
because as I said they each completely replace the whole content of theQTextDocument
.You can use @VRonin's
QTextCursor
interface to insert individual chunks of either text or HTML at specified places within a document.QTextCursor
is a "pointer" to a location in the document; you can move it around the document with various calls and then insert at those points.how i can use the textcursor to print the data in the PDF File.
Don't know what you mean by "print" here.
In QTextDocument i can use the print option but in textcursor what can i use.
That is just converting the whole
QTextDocument
to PDF.It remains the case that you cannot "put PDF into a
QTextDocument
". You can only insert plain text or HTML. -
@ManiRon said in How to use both the properties of Qtextdocument:
@VRonin I tried to do this.
QTextCursor document1; document1.document()->setHtml(hex); QString data = ui->teData->toPlainText(); document1.document()->setPlainText(data);
but i got the above error when i ran with the debug mode . and the error was thrown from document1.document()->setHtml(hex); this line of code .
-
hex
is doubtless some illegal HTML (not HTML at all). -
You persist in trying to use
document()->setHtml(...)
followed bydocument()->setPlainText(data)
. If you do not believe me that you cannot use both (the second will simply replace the first), why don't you read the docs or try a small test for yourself so that you know why it won't work?
-
-
@ManiRon said in How to use both the properties of Qtextdocument:
@VRonin i tried the same way as yours (QTextCursor cursor(textDocument);) but it says
mainwindow.cpp:107: error: 'textDocument' was not declared in this scope
QTextCursor cursor(textDocument);
^The error message tells you exactly what is wrong with your code, nothing to add by showing screenshots. You cannot expect to copy @VRonin's suggestion verbatim without any attempt to understand what it is doing and what you need to do to complete it. Why don't you have a look in the docs at
QTextCursor
's constructors? He wants you to understand what is wrong and deal with it, for your own long-term benefit. -
@ManiRon said in How to use both the properties of Qtextdocument:
@JonB header has top left corner one image and top right corner one image and a title at the middle of the two images, and after that i want insert my texts. This much things i want to do . Is there any way ? :(
Assuming this has nothing to do with PDF (sometimes you talk about the PDF header or "inserting PDF", I'm never sure), this sounds like you want to insert an image into your document? Have a read of http://doc.qt.io/qt-5/richtext-cursor.html and http://doc.qt.io/qt-5/qtextcursor.html#insertImage-2 ? I really think you need to do some reading of this sort of stuff to get an idea of what you can do with
QTextDocument
&QTextCursor
. -
@ManiRon
Not viaQTextDocument
. You'd have to look at manipulating the PDF output, which is a different matter.Something like https://forum.qt.io/topic/74643/qtextdocument-to-pdf-with-watermarks-and-header-footer-filesize-too-large might give you some ideas. I do not guarantee whether that is good/the right approach, but it might be.
-
@ManiRon
If you don't want to do this via thepaint()
suggested in the link I posted above, you could try with eitherQTextCursor::insertImage()
or you could try writing the whole thing in HTML and seeing ifQTextCursor::insertHtml()
accepts it or not, I don't know.