Entwickler-Ecke

IO, XML und Registry - Text in RTF Datei ersetzen und Zeilenumbruch einfügen


Fujitsufan - Di 26.02.19 15:25
Titel: Text in RTF Datei ersetzen und Zeilenumbruch einfügen
Hallo,

ich bin gerade dran eine Textstelle in einem RTF File zu ersetzen.
Der String in dem der ersetzende Text steht soll einen Zeilenumbruch im RTF File erzeugen.
Da füge ich "\r\n" ein, was dann allerdings im RTF File einen Zeilenumbruch erzeugt.

C#-Quelltext
1:
strData = data.Value.Replace("$r$""\r\n");                    


C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
if (File.Exists(strTemplateFile))
{
    using (StreamReader sr = new StreamReader(strTemplateFile, System.Text.Encoding.Default))
    {
        // Read the stream to a string, and write the string to the console.
        String line = sr.ReadToEnd();

        foreach (KeyValuePair<stringstring> data in strDescription)
        {
            string strKey = string.Format("[${0}$]", data.Key);
            strKey = strKey.ToUpper();

            if (line.Contains(strKey))
            {
                strData = data.Value.Replace("$r$""\r\n");
                line = line.Replace(strKey, strData);
            }
            else
            {
                if (strError != "")
                    strError += CAN_DocGenerator.Global.kCRNL1;
                strError += data.Key;
                iReturn = 3//Eine oder mehrere Felder konnten nicht beschrieben werden
            }
        }

        File.Create(strTempFile).Close();
        File.WriteAllText(strTempFile, line, System.Text.Encoding.Default);

        if (strDestExt == "pdf")
        {
            //PDF Datei aus Vorlage erzeugen
            string pdf = "";
            pdfTool.CreatePDFfromRTFviaSautin(strTempFile, ref pdf, ref strLogMsg, errorReport);
            File.Delete(strTempFile);
        }
    }

    GC.Collect();
    return iReturn;
}

Geht das überhaupt was ich vorhabe?

MfG.

Fujitsufan

Moderiert von user profile iconChristian S.: Code- durch C#-Tags ersetzt
Moderiert von user profile iconChristian S.: Topic aus WinForms verschoben am Di 26.02.2019 um 17:00


Ralf Jansen - Di 26.02.19 17:10

Du solltest aus der Formatbeschreibung von rtf rausfinden wie dort ein Zeilenumbruch dargestellt wird.
Google meint es sollte (in den meisten Fällen) ein "\line" sein.