1

我有许多小的“模板”样式 TXTextControl 文档,我将它们组合起来构建一个大文档。

模板是在我的应用程序中使用 TXTextControl 创建的,内容使用 TXTextControl InternalFormat 作为字节数组存储在数据库中。

我检索每个模板文档并使用 Selection 类构建一个新文档来加载每个模板的内容,如下所示;

tx.Selection.Load(myContent, BinaryStreamType.InternalFormat);

myContent 是从数据库中读取的字节数组。

大多数模板文档只有一行,但其中有一些选项卡已更改,并且可能居中、右对齐等。

我注意到的是,如果每个小文档都以换行符结尾(即用户在保存之前在文档中输入),则模板文档会正确插入。

如果没有换行,则制表符和对齐方式将丢失。如果“模板文档”多于一行,则仅最后一行的格式会丢失。

更糟糕的是,如果模板文档的最后一个位置有一个 TextField,那么在这个模板文档之后插入到我的新文档中的所有内容都被插入,就好像它是 TextField 中的文本一样,使新文档看起来很糟糕。

是否可以从字节数组中向 TXTextControl InternalFormat 样式文本插入少量内容,并确保其插入与创建时完全相同?

或者,我可以强制我正在使用的字节数组正确终止 - 使用 CR.LF 或其他东西来强制它正确插入。

4

1 回答 1

1

我设法为此找到的唯一“解决方法”是在插入的文档之后附加一个新行。

这仅在直接使用 TXTextControl.TextControl 对象构建文本时有效,而不是对属于 TextControl 对象的选择对象的引用。

这行得通;

TXTextControl.TextControl tx = new TXTextControl.TextControl();
tx.CreateControl();

tx.Selection.Start = -1;
tx.Selection.Text = System.Enviornment.NewLine;

但是,将选择对象传递到进程中并传递它以在其选择对象中构建文档是行不通的。原始控件(及其选择)的格式保持不变,我猜这可能是有道理的。

于 2013-10-07T22:59:43.270 回答