Microsoft Word .docx dosyalarını işlemek için Apache POI kullanıyorum - örneğin, Microsoft Word'de orijinal olarak oluşturulmuş bir belgeyi açın, değiştirin, yeni bir belgeye kaydedin.Apache POI kullanarak Word .docx dosyalarında RSID öznitelikleri doğru şekilde nasıl oluşturulur?
Sık sık bir RSID veya rsidR olarak bilinen, Apache POI tarafından oluşturulan yeni paragraflar bir Revizyon kaydet kimliği eksik olduğunu fark. Bu, Word tarafından, bir oturumda bir oturumda yapılan değişiklikleri kaydetmek için kullanılır. Bu isteğe bağlıdır - kullanıcılar isterlerse Microsoft Word'de kapatabilirler - ancak gerçekte hemen hemen herkesin sahip olduğu neredeyse her belge RSID'lerin doludur. Bunun hakkında daha fazla bilgi için this excellent explanation of RSIDs'u okuyun. Bir Microsoft Word belgesinde
,word/document.xml
böyle paragraflar içerir:
<w:p>
<w:r>
<w:t>Paragraph of text here.</w:t>
</w:r>
</w:p>
Bunu anladım: POI tarafından oluşturulan aynı paragraf word/document.xml
bu gibi görünecektir Ancak
<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>
Aşağıdaki gibi bir kod kullanarak her paragrafa bir RSID eklemek için İÇN'yi zorlayabilirim:
Ancak, RSID'leri nasıl oluşturmalıyım bilmiyorum.
POI'nin bir yolu var mı, yoksa RSID'leri oluşturup saklamıyor mu? Değilse, ürettiğim bir RSID'nin belgede bulunan biriyle çakışmadığından emin olmak için herhangi bir yol var mı?
Yayından le size atıfta bulundu: "Onlar tamamen rastgele ve sadece şeylerin nerede eşleştiğini görmek için kullanılır. Dolayısıyla, RSID'leri olan başka bir belgeyle birleşmedikçe çok fazla kullanılmazlar. "Böylece, uygun rastgele sayıları oluşturabilirsiniz. Çatışmalara göre, bunların bir listesi özellik bölümlerinden birinde saklanır. Bunları eklemek sadece? Bazı karşılaştırmalı/farklı durumları iyileştirir. – JasonPlutext