fixed: 校对后批注导致得百分号
This commit is contained in:
parent
b97e7d15ee
commit
d37882d6dd
@ -20,7 +20,7 @@ namespace UtilLib
|
||||
public string Name { get; set; }
|
||||
public int DocumentId { get; set; }
|
||||
|
||||
public ProofreadItem(CorrectItem content,string originSentence,int documentId)
|
||||
public ProofreadItem(CorrectItem content, string originSentence, int documentId)
|
||||
{
|
||||
this.content = content;
|
||||
this.DocumentId = documentId;
|
||||
@ -76,7 +76,7 @@ namespace UtilLib
|
||||
private void OnMarkSelected(object sender, Microsoft.Office.Tools.Word.SelectionEventArgs e)
|
||||
{
|
||||
//throw new System.NotImplementedException();
|
||||
Bridge.bridge.SelectMarkById(content.Id,DocumentId);
|
||||
Bridge.bridge.SelectMarkById(content.Id, DocumentId);
|
||||
}
|
||||
|
||||
public void Select()
|
||||
@ -134,6 +134,38 @@ namespace UtilLib
|
||||
Logger.Log(e);
|
||||
}
|
||||
}
|
||||
private void PrepareCommentProcess(Bookmark mark)
|
||||
{
|
||||
var doc = Globals.ThisAddIn.Application.ActiveDocument;
|
||||
var fullRange = doc.Range();
|
||||
|
||||
var range = mark.Range;
|
||||
var checkRange = doc.Range(
|
||||
Math.Max(range.Start - 2, fullRange.Start),
|
||||
Math.Min(range.End + 2, fullRange.End)
|
||||
);
|
||||
var comments = checkRange.Comments;
|
||||
Logger.Log("判断是否有批注");
|
||||
// 判断当前书签选区内容是否有评论
|
||||
if (comments != null && comments.Count > 0)
|
||||
{
|
||||
Logger.Log("有批注");
|
||||
foreach (Microsoft.Office.Interop.Word.Comment item in comments)
|
||||
{
|
||||
// 判断当前评论和书签选区是否一致
|
||||
if (item.Scope.Start == range.Start && item.Scope.End == range.End)
|
||||
{
|
||||
Logger.Log("删除批注:" + item.Range.Text);
|
||||
// 删除评论
|
||||
item.Delete();
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
Logger.Log("没有批注");
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 处理校对项
|
||||
@ -148,6 +180,7 @@ namespace UtilLib
|
||||
// 采纳
|
||||
if (status == AcceptStatus.Accept)
|
||||
{
|
||||
PrepareCommentProcess(mark);
|
||||
if (content.Tag == "r" || content.Tag == "i")
|
||||
{
|
||||
mark.Text = content.Text;
|
||||
@ -191,10 +224,14 @@ namespace UtilLib
|
||||
var paragraphEnd = mark.Paragraphs.Last.Range.End;
|
||||
var end = mark.End + 2 > paragraphEnd ? paragraphEnd : mark.End + 2;
|
||||
var rng = Globals.ThisAddIn.ActiveDocument.Range(mark.End, end);
|
||||
Logger.Log($"开始处理百分号问题:位置({mark.End},{end}) => 内容:{rng.Text}");
|
||||
|
||||
// 判断书签范围内是否有批注
|
||||
|
||||
if (rng.Text?.IndexOf("%") != -1 && rng.Comments != null && rng.Comments.Count > 0)
|
||||
if (rng.Text?.IndexOf("%") != -1)
|
||||
{
|
||||
Logger.Log($"处理百分号问题:有批注");
|
||||
if (rng.Comments != null && rng.Comments.Count > 0)
|
||||
{
|
||||
for (var i = 1; i < rng.Comments.Count; i++)
|
||||
{
|
||||
@ -202,6 +239,11 @@ namespace UtilLib
|
||||
comment.Scope.Text = comment.Scope.Text.Replace("%", "");
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
rng.Text = rng.Text.Replace("%", "");
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user