Używam Apache POI do manipulowania plikami .docx Microsoft Word - tzn. Otwórz dokument, który był pierwotnie stworzony w Microsoft Word, zmodyfikuj go, zapisz w nowym dokumencie.Jak prawidłowo generować atrybuty RSID w plikach Worda .docx przy użyciu Apache POI?
Zauważyłem, że nowe akapity utworzone przez Apache POI brakuje Revision Zapisz identyfikator, często znany jako RSID lub rsidR. To jest używane przez program Word do identyfikowania zmian wprowadzonych do dokumentu w jednej sesji, np. Między zapisami. Jest to opcjonalne - użytkownicy mogliby go wyłączyć w Microsoft Word, gdyby chcieli - ale w rzeczywistości prawie wszyscy go mają, więc prawie każdy dokument jest pełen RSIDów. Przeczytaj this excellent explanation of RSIDs, aby uzyskać więcej informacji na ten temat.
w dokumencie programu Microsoft Word word/document.xml
zawiera paragrafy tak:
<w:p w:rsidR="007809A1" w:rsidRDefault="007809A1" w:rsidP="00191825">
<w:r>
<w:t>Paragraph of text here.</w:t>
</w:r>
</w:p>
Jednak ten sam akapit stworzony przez UM będzie wyglądać w word/document.xml
:
<w:p>
<w:r>
<w:t>Paragraph of text here.</w:t>
</w:r>
</w:p>
Mam zorientowali się, że Mogę wymusić dodawanie RSID do każdego akapitu przy użyciu kodu podobnego do tego:
byte[] rsid = ???;
XWPFParagraph paragraph = document.createParagraph();
paragraph.getCTP().setRsidR(rsid);
paragraph.getCTP().setRsidRDefault(rsid);
Jednak nie wiem, jak powinienem generować RSID.
Czy punkty POI mają sposób generowania i/lub śledzenia RSID? Jeśli nie, czy mogę w jakiś sposób upewnić się, że wygenerowany przeze mnie identyfikator RSID nie jest sprzeczny z tym, który już znajduje się w dokumencie?
Od artysty o których wspomniałeś: "Są całkowicie losowe i są używane tylko do sprawdzenia, gdzie rzeczy pasują. Więc nie są one przydatne, chyba że łączysz się z innym dokumentem, który ma również RSID. "Możesz więc wygenerować odpowiednie liczby losowe. Jeśli chodzi o konflikty, ich lista jest przechowywana w jednej z części właściwości. Poprawiają tylko pewne przypadki porównania/różnic .. – JasonPlutext