2013-09-17 3 views
-1

Я добавляю закладки в документ Word, используя открытый XML SDK, и я также устанавливаю идентификатор закладки и имя программно, открыв документ в Word, я снова открою документ как WordprocessingDocument, и я обнаружил, что идентификатор закладки был изменилось на значения, такие как 0,1,2 ..., я хочу знать, почему Word изменяет идентификаторы закладок, я все еще могу использовать это имя, чтобы найти закладку вместо id, так как я использую то же значение для id и имени, но для меня это выглядит странно.Почему идентификатор закладки изменился после открытия документа в Word?

Вот код, который я использую:

BookmarkStart bookmarkStart1 = CreateBookmarkStart(entity.Id.ToString(), entity.Id); 
     BookmarkEnd bookmarkEnd1 = CreateBookmarkEnd(entity.Id); 
     Paragraph paragraph1 = CreateParagraph(); 
     body.Append(bookmarkStart1); 
     body.Append(paragraph1); 
     body.Append(bookmarkEnd1); 


private static BookmarkStart CreateBookmarkStart(String name, long id) 
    { 
     return new BookmarkStart 
     { 
      Name = name, 
      Id = id.ToString() 
     }; 
    } 

private static BookmarkEnd CreateBookmarkEnd(long id) 
    { 
     return new BookmarkEnd() { Id = id.ToString() }; 
    } 

идентификаторы, используемые ценности, как: 245103, 39045 ...

+0

Кажется, что есть проблема с вашим кодом, но мы не можем вам помочь, если мы не знаем, что ваш код. – gunr2171

ответ

1

Как вы уже заметили, вы можете (и должны) полагаться на имя закладки, а не идентификатор. Такие вещи, как имя поля REF, а не идентификатор.

Идентификатор, кажется, существует только для того, чтобы соединить начальные и конечные точки закладки.

Смежные вопросы