Как правильно сгенерировать атрибуты RSID в файлах Word .docx с помощью Apache POI?

Я использовал Apache POI для управления Microsoft Word. docx - т.е. откройте документ, который изначально был создан в Microsoft Word, измените его, сохраните в новом документе.

Я заметил, что в новых абзацах, созданных Apache POI, отсутствует идентификатор сохранения редакции , часто известный как RSID или rsidR . Это используется Word для идентификации изменений, внесенных в документ за один сеанс, например, между сохранениями. Это необязательно - пользователи могут выключить его в Microsoft Word, если захотят, - но на самом деле он есть почти у всех, поэтому почти каждый документ полон RSID. Прочтите это отличное объяснение RSID , чтобы узнать больше об этом.

В документе Microsoft Word word / document.xml содержит такие абзацы:


  
    Paragraph of text here.
  

Однако тот же абзац создан по POI будет выглядеть так в word / document.xml :


  
    Paragraph of text here.
  

I ' Я понял, что могу заставить POI добавлять RSID к каждому абзацу, используя такой код:

    byte[] rsid = ???;
    XWPFParagraph paragraph = document.createParagraph();
    paragraph.getCTP().setRsidR(rsid);
    paragraph.getCTP().setRsidRDefault(rsid);

Однако я не знаю, как мне следует генерировать RSID.

Есть ли у POI способ или генерировать и / или отслеживать RSID? Если нет, могу ли я гарантировать, что генерируемый мной RSID не конфликтует с тем, который уже указан в документе?

6
задан gutch 11 February 2011 в 06:04
поделиться