builder.Write(string) throws an exception

when i move to a paragraph thats in a SDT and i do

builder.Write("Lorem ipsum dolor sit amet, \n\npretium. Suspendisse dictum imperdiet ultricies. Duis sagittis, dui non fermentum pellentesque, justo ex finibus enim, nec congue nunc quam vel nibh. Etiam sit amet vehicula sapien. Proin scelerisque at odio in tincidunt. Mauris vel tellus ut nunc feugiat mattis. Integer scelerisque mattis aliquet. Duis malesuada ipsum sapien, vitae dignissim justo maximus quis. Sed eu tellus ut purus ultrices efficitur. Vivamus facilisis tortor eu mollis congue. Suspendisse in egestas enim. Vestibulum ligula risus, interdum ut ligula quis, egestas vestibulum odio. \nVestibulum dictum, turpis vel auctor finibus, risus lacus ullamcorper ante, sed tincidunt ipsum massa vitae risus. Aenean commodo feugiat lacus vel eleifend. Pellentesque vel egestas quam. Nam euismod sapien nunc, eget vulputate purus rhoncus sed. Mauris odio enim, blandit eu sem eget, fermentum consequat ante. Nullam hendrerit tortor nulla, in ullamcorper diam tempor ut. Vivamus nec mollis turpis. \nAliquam condimentum ipsum sit amet ...");

it throws this exception


And if im paused on the exception and I look back at the paragraph I moved to, I see one Run with

Also, the text is in a variable and I do builder.Write(text.Replace(“\r”, ControlChar.Cr).Replace(“\n”, ControlChar.Lf));

@dmerkle1 Could you please attach your input document here for testing? We will check the issue and provide you more information.

It is an empty document made with

@dmerkle1 Could you please provide full code example that will allow us to reproduce the problem on our side (in textual form if possible)? We will check it and provide you more information.

var text = "Lorem ipsum dolor sit amet, 

pretium. Suspendisse dictum imperdiet ultricies. Duis sagittis, dui non fermentum pellentesque, justo ex finibus enim, nec congue nunc quam vel nibh. Etiam sit amet vehicula sapien. Proin scelerisque at odio in tincidunt. Mauris vel tellus ut nunc feugiat mattis. Integer scelerisque mattis aliquet. Duis malesuada ipsum sapien, vitae dignissim justo maximus quis. Sed eu tellus ut purus ultrices efficitur. Vivamus facilisis tortor eu mollis congue. Suspendisse in egestas enim. Vestibulum ligula risus, interdum ut ligula quis, egestas vestibulum odio. 
Vestibulum dictum, turpis vel auctor finibus, risus lacus ullamcorper ante, sed tincidunt ipsum massa vitae risus. Aenean commodo feugiat lacus vel eleifend. Pellentesque vel egestas quam. Nam euismod sapien nunc, eget vulputate purus rhoncus sed. Mauris odio enim, blandit eu sem eget, fermentum consequat ante. Nullam hendrerit tortor nulla, in ullamcorper diam tempor ut. Vivamus nec mollis turpis. 
Aliquam condimentum ipsum sit amet nulla tempus, vitae mollis nibh luctus. Nunc dictum, neque ac blandit dignissim, leo ex mattis quam, id rhoncus arcu enim non nisi. Curabitur ullamcorper libero id ante malesuada, nec luctus purus aliquam. Praesent dignissim malesuada ligula vestibulum tincidunt. Cras nunc orci, laoreet a fringilla et, facilisis id nisl. Pellentesque vitae sollicitudin enim, sit amet ornare mauris. Donec eu nisl elit. Nunc sagittis efficitur elit ac vulputate."
var doc = new Document();
var builder = new DocumentBuilder(doc);
StructuredDocumentTag textSdt2 = new StructuredDocumentTag(doc, SdtType.RichText, MarkupLevel.Block);
var paraText2 = new Paragraph(doc);
textSdt2.AppendChild(paraText2);
builder.MoveTo(paraText2);
builder.Write(text.Replace("\n", ControlChar.Lf).Replace("\r", ControlChar.Cr));
doc.LastSection.Body.AppendChild(textSdt);

But the text in the text variable has \n in there, but seems like this editor is translating them.

@dmerkle1 Thank you for additional information. The problem occurs because you are moving DocumentBuilder’s cursor into SDT that hangs in the air, i.e. it is not added into the document tree. Please modify your code like this:

var text = "Lorem ipsum dolor sit amet,\r\n pretium.";
Document doc = new Document();
var builder = new DocumentBuilder(doc);
StructuredDocumentTag textSdt = new StructuredDocumentTag(doc, SdtType.RichText, MarkupLevel.Block);
// Add SDT into the document.
doc.LastSection.Body.AppendChild(textSdt);
var paraText2 = new Paragraph(doc);
textSdt.AppendChild(paraText2);
builder.MoveTo(paraText2);
builder.Write(text.Replace("\n", ControlChar.Lf).Replace("\r", ControlChar.Cr));
doc.Save(@"C:\temp\out.docx");

Thanks for the code. When I do that, then the full text is not added into the sdt.
See here

@dmerkle1
We have opened the following new ticket(s) in our internal issue tracking system and will deliver their fixes according to the terms mentioned in Free Support Policies.

Issue ID(s): WORDSNET-27645

You can obtain Paid Support Services if you need support on a priority basis, along with the direct access to our Paid Support management team.

The issues you have found earlier (filed as WORDSNET-27645) have been fixed in this Aspose.Words for .NET 25.1 update also available on NuGet.