我有一个单词文档,里面有各种各样的疯狂(关于格式,而不是内容)。
消除疯狂的唯一方法是 Ctrl + A , Ctrl + C 和 Ctrl + V 到记事本文件。但仅使用原始文本,很难理解文档,因此我希望在word文档中保留粗体格式(和文本大小为可选)。
无论如何,我可以使用C#以粗体格式复制word文档中的文本吗?
答案 0 :(得分:0)
将所有内容复制到文档末尾,通过将原始文本与新文本进行比较来应用粗体字体,并删除原始文本。
private static void KeepOnlyBoldFormatting(Word.Document document)
{
var undoRecord = document.Application.UndoRecord;
try
{
document.Application.ScreenUpdating = false;
undoRecord.StartCustomRecord("KeepOnlyBoldFormatting");
var originalRange = document.Range();
var originalEnd = originalRange.End - 1; //Skip last character (paragraph marker that cannot be removed)
originalRange.InsertAfter(originalRange.Text.Substring(0, originalRange.Text.Length - 1));
//Make sure the ranges refer to the right things
originalRange.Start = 0;
originalRange.End = originalEnd;
var newRange = document.Range(originalEnd, originalEnd + originalEnd);
for (int i = 1; i <= originalRange.Characters.Count; i++)
{
var origChar = originalRange.Characters[i];
var newChar = newRange.Characters[i];
if (origChar.Bold == -1)
newChar.Bold = -1;
}
originalRange.Delete();
}
catch (Exception ex)
{
Console.WriteLine(ex);
}
finally
{
document.Application.ScreenUpdating = true;
undoRecord.EndCustomRecord();
}
}