|
Hello
Is it possible to save richtextbox-text so, that the page is in landscape format ?
Rtf-file contains parameters of page settings and I have tried to modify those parameters, but with no success.
I have not been able to set those parameters at all. Is it so that richtextbox does not allow to set Richtextbox.rtf - value ?
I have tried to modify rtf-code by setting the "\landscape" or "\lndscpsxn" parameters into rtf-code by:
MyRtb.rtf = "{\rtf1\...
or
MyRtb.selectedrtf = "{\rtf1\...
Those lines don't change MyRTb.rtf value. What's wrong ?
|
|
|
|
|
you're using windows form richtextbox?
|
|
|
|
|
Yes, Windows form RichTextBox.
|
|
|
|
|
|
You managed to spell "RTF" wrong.
Unrequited desire is character building. OriginalGriff
I'm sitting here giving you a standing ovation - Len Goodman
|
|
|
|
|
What if the end user does not have Microsoft Word ?
Is there a way to set the rtf-code without using Microsoft Word ?
Can it be done trough RichTextBox-object ?
|
|
|
|
|
I'm sorry I don't understand. You say you want to save a RTF file and set its page settings to landscape, and you have some links to resolve that. Obviously any user that wants to read the file will need some program that accepts RTF, either MS Word or similar.
Unrequited desire is character building. OriginalGriff
I'm sitting here giving you a standing ovation - Len Goodman
|
|
|
|
|
Yes. The user, who opens the file must have Word or similar program to read the rtf-file.
But, the user (end user), who creates the rtf-file with my application does not necessarily have MS Word.
|
|
|
|
|
In that case your code needs to ensure that the file is fully compliant with the RTF specification.
Unrequited desire is character building. OriginalGriff
I'm sitting here giving you a standing ovation - Len Goodman
|
|
|
|
|
Could You explain what you mean?
|
|
|
|
|
What more can I say? You are saving a file as RTF so you need to ensure that its content follows the RTF format specification. If you still don't understand then I suggest taking a look here[^].
Unrequited desire is character building. OriginalGriff
I'm sitting here giving you a standing ovation - Len Goodman
|
|
|
|
|
Yes you are right, the file must follow rtf-format specification.
As I mentioned earlier, I have tried to make the file to follow rtf format by following way:
Rtf-file contains parameters of page settings and I have tried to modify those parameters, but with no success. I have not been able to set those parameters at all. Is it so that richtextbox does not allow to set Richtextbox.rtf - value ?
I have tried to modify rtf-code by setting the "\landscape" or "\lndscpsxn" parameters into rtf-code by:
MyRtb.rtf = "{\rtf1\...
or
MyRtb.selectedrtf = "{\rtf1\...
Those lines don't change MyRTb.rtf value.
|
|
|
|
|
Sorry but this makes no sense. Explain clearly what your program is trying to do, show the actual lines of code (surrounded by <pre> tags so it's readable) and what results you get.
Unrequited desire is character building. OriginalGriff
I'm sitting here giving you a standing ovation - Len Goodman
|
|
|
|
|
OK
There is RichTextBox (MyRtb), which content is saved as rtf-file.
Rtf-file contains page formatting data, which I have tried to modify so that the page orientation is Landscape.
I have tried to set Document Formatting Property "\landscape" and
Section Text Property "\lndscpsxn".
Those properties are documented in rtf specification.
Code lines, which I used for setting those properties:
<pre lang="vb">Myrtb.Rtf = "{\rtf1\landscape}"</pre>
<pre lang="vb">Myrtb.Rtf = "{\rtf1\lndscpsxn}"</pre>
Well, it might be that those parameters are not in the right place in rtf-code.
But anyway, it seems that those lines do not affect rtf code at all.
And the main question is: Is it possible at all (in code) to modify rtf-file so that the page orientation is in Landscape mode ?
|
|
|
|
|
Myrtb.Rtf = "{\rtf1\landscape}
Myrtb.Rtf = "{\rtf1\lndscpsxn}
If that is all the code you have I don't see how it can affect anything. Where do you modify the contents of your RTF file before saving it?
Unrequited desire is character building. OriginalGriff
I'm sitting here giving you a standing ovation - Len Goodman
|
|
|
|
|
sText is String, which contains text and linefeeds
<pre lang="vb">Myrtb.SelectionColor = Color.Black</pre>
<pre lang="vb">Myrtb.SelectionFont = New Font("Microsoft Sans Serif", 14, FontStyle.Bold, GraphicsUnit.Point)</pre>
<pre lang="vb">Myrtb.SelectedText = sText </pre>
<pre lang="vb">Myrtb.Rtf = "{\rtf1\landscape}</pre>
<pre lang="vb">Myrtb.Rtf = "{\rtf1\lndscpsxn}</pre>
<pre lang="vb">Myrtb.SaveFile(Me.SaveFileDialog.FileName, RichTextBoxStreamType.RichText)</pre>
|
|
|
|
|
Please format your code properly, it only needs one set of tags around it and should appear thus:
Myrtb.SelectionColor = Color.Black
Myrtb.SelectionFont = New Font("Microsoft Sans Serif", 14, FontStyle.Bold, GraphicsUnit.Point)
You also probably need to uncheck the box titled "Treat my content as plain text, not as HTML ".
Unrequited desire is character building. OriginalGriff
I'm sitting here giving you a standing ovation - Len Goodman
|
|
|
|
|
See here[^] for some suggestions as to formatting; it suggests your \landscape command comes before your text.
Unrequited desire is character building. OriginalGriff
I'm sitting here giving you a standing ovation - Len Goodman
|
|
|
|
|
Ok, thank you.
The only solution offered for this problem in the web is this MS Word solution, and it is quite "rough" programming.
So I wonder if it's possible at all (in code) to set/modify rtf-code part of the rtf-file.
|
|
|
|
|
AFAIK every Windows version includes a copy of WordPad, which natively uses the RTF format. It also is the application associated with the RTF extension until you install something that replaces that association (such as MS Word).
I use RTF a lot, I have classes to generate RTF documents, then open them in WordPad for the user to inspect, modify if necessary, print, etc.
RTF is a complex language, its manual is hundreds of pages. Generating a valid document is quite doable, altering an existing one can be a real challenge.
|
|
|
|
|
The RTF specification is extensive, and programs that accept and/or generate RTF documents pick and choose what subset of commands they use.
I performed a little test using Wordpad 6.0 (on Vista), creating, printing, storing and inspecting a simple RTF file both in portrait and in landscape. My observations include:
- margin information was not stored in the document itself.
- paper orientation was not stored in the document itself.
- both are settings for Wordpad, not for the document; when you open Wordpad, you get what you had last time in Wordpad.
As Wordpad seems to consider these app settings rather than document settings, I expect it will ignore the relevant commands if they were present in the file (I haven't tested this).
FYI: Wordpad can show much more complex RTF documents than it allows the user to create; as an example, it can show tables, graphs, and images; things it doesn't offer the means for to insert in an empty document.
|
|
|
|
|
Thanks for clarifying WordPad behaviour.
So, the WordPad does not care about document page setting.
But, if the user opens document for example with MS Word, then these settings coul be used.
I managed to set the rtf-code by following way. I dont know whether it's clever way or not, but MS Word understood it and opened document in landscape.
The created and saved rtf-file is reopened, page settings are inserted into rtf-code, and finally file is saved again.
Me.rtbPrint.SaveFile(Me.SaveFileDialog.FileName, RichTextBoxStreamType.RichText)
Dim FILE_NAME As String = Me.SaveFileDialog.FileName
Dim objReader As New System.IO.StreamReader(FILE_NAME)
Dim sString = objReader.ReadToEnd
objReader.Close()
sString = sString.Insert(6, "\paperw15840\paperh12240\margl720\margr144\margt720\margb288\lndscpsxn")
Dim objWriter As New System.IO.StreamWriter(FILE_NAME)
objWriter.Write(sString)
objWriter.Close()
Hope, that the code is seen properly.
|
|
|
|
|
I can't comment in any detail on Word as I avoid it as much as I can; I do know Word creates pretty complex output files (whether RTF or HTML), and behaves differently from one version to the next.
FWIW: there are other RTF-compatible programs, such as WordPad++. They might offer the functionality you require without having the complexities and cost of Word.
|
|
|
|
|
I'm trying to create a Ms.Word-like program, but save the document in Microsoft Sql Server.
I got a problem in this XtraRichEdit component, at first the program works nicely, but after i added tollbox named create Home Bars at the top right of RichEditControl, everytime i save the document into database, error occured "Exception has been thrown by the target of an invocation". But the most strange is, when i reopen the program and edit the saved document, everything was saved. I just don't understand why this error occurred when save is completely successful.
If this is bug, would you mind to tell me how to code that Home Bars toolbar manually?
|
|
|
|
|
The exception that's being thrown might have an inner-exception, and there might be something interesting in the stack-trace. If the saving is successful, then it's probably thrown after the saving. Are you creating any objects after you saved the documents?
Bastard Programmer from Hell
|
|
|
|