したがって、私はXML経由で入力を受け入れるいくつかのプレーンテキストフォーマット(リッチテキストフォーマットも試しました)コントロールを備えたMicrosoft Word 2007ドキュメントを持っています。Microsoft Word文書コントロールがキャリッジリターンを受け付けない
キャリッジリターンの場合、キャリッジリターンが必要なときに文字列に "\ r \ n"を含むXMLが渡されていましたが、ドキュメントは無視され、同じ行にラッピングされます。私はまた、\ r \ nをSystem.Environment.NewLineでC#マッパーに置き換えようと試みましたが、それはちょうど\ r \ nとにかく入れましたが、まだ動作しませんでした。
また、コントロール自体に、コントロールのプロパティで「キャリッジリターン(複数のParagrpahs)を許可する」と設定していることにも注意してください。
これはこれは私が実際にリストをマップlistMapperのC#であることをlistMapper
<Field id="32" name="32" fieldType="SimpleText">
<DataSelector path="/Data/DB/DebtProduct">
<InputField fieldType=""
path="/Data/DB/Client/strClientFirm"
link="" type=""/>
<InputField fieldType=""
path="strClientRefDebt"
link="" type=""/>
</DataSelector>
<DataMapper formatString="{0} Account Number: {1}"
name="SimpleListMapper" type="">
<MapperData></MapperData>
</DataMapper>
</Field>
注意(私は試してみてsystem.environment.newlineを追加ところに気づく)
namespace DocEngine.Core.DataMappers
{
public class CSimpleListMapper:CBaseDataMapper
{
public override void Fill(DocEngine.Core.Interfaces.Document.IControl control, CDataSelector dataSelector)
{
if (control != null && dataSelector != null)
{
ISimpleTextControl textControl = (ISimpleTextControl)control;
IContent content = textControl.CreateContent();
CInputFieldCollection fileds = dataSelector.Read(Context);
StringBuilder builder = new StringBuilder();
if (fileds != null)
{
foreach (List<string> lst in fileds)
{
if (CanMap(lst) == false) continue;
if (builder.Length > 0 && lst[0].Length > 0)
builder.Append(Environment.NewLine);
if (string.IsNullOrEmpty(FormatString))
builder.Append(lst[0]);
else
builder.Append(string.Format(FormatString, lst.ToArray()));
}
content.Value = builder.ToString();
textControl.Content = content;
applyRules(control, null);
}
}
}
}
}
ためのXMLです
私の改行文字を無視して終了するには、MS Word 2007(docx)をどのように手に入れることができますか?