Unsolved How to use both the properties of Qtextdocument
-
I want to use both setPlainText() and sethtml() property of QTextDocument. But i tried use both but it replaces the later. setHtml() is used for printing the header for my pdf and setplaintext() is used to print the text in the pdf file. is there any way that i can use both and create a PDF. Both the header and the text should be in a single PDF . Its like creating a report.
-
@ManiRon
No, you cannot use both.setPlainText()
andsethtml()
both set the whole of theQTextDocument
text. The only difference is whether you pass in plain text or HTML. -
You can using the
QTextCursor
interface:QTextCursor cursor(textDocument); cursor.insertHtml(/*...*/); cursor.insertText(/*...*/);
-
This post is deleted! -
@JonB i use both . Because i use HTML to place my header image and title and the text to display the data.
-
@VRonin how i can use the textcursor to print the data in the PDF File. In QTextDocument i can use the print option but in textcursor what can i use.
-
@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?
-
-
@JonB oh ok got it . but now my problem is i want to add an header to my pdf file and text also . is there any way
-
@JonB hex is a QString variable. In which i store the html code read from a file.
-
@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 ? :(
-
@ManiRon Take a look at my code above. Look at what I pass in the constructor of QTextCursor and look what methods I'm calling. now look at your code and notice the differences
-
@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);
^ -
@JonB I agree with u sir. But i am in a situation that i require to use both . Thats why keep on asking about it. Dont Mistake. . It shows like this.
-
@ManiRon The title of your post is "How to use both the properties of Qtextdocument" I assumed you have a QTextdocument to work on. maybe
ui->teData->document()
? -
-
@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. -
@JonB Yes sir i am getting that i cannot use both at the same time and i tried with a sample code too.
-
@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
.