@gaurav.budhiraja Thank you for additional information. As I can see you are inserting updating and then deleting PAGE field ti get page number of the bookmark. This might have side effects since PAGE field has its content and can affect document layout. Much easier to use LayoutCollector to get page number where bookmark is placed:
Document doc = new Document(@"C:\Temp\in.docx");
LayoutCollector collector = new LayoutCollector(doc);
foreach (Bookmark bk in doc.Range.Bookmarks)
{
Console.WriteLine("{0} - start {1}; end {2}",
bk.Name,
collector.GetStartPageIndex(bk.BookmarkStart),
collector.GetEndPageIndex(bk.BookmarkEnd));
}
Also, I have checked your Discrepency.docx
document and see the folllowing:
DISCREPANCY: BookmarkName: PNT_Main_029_1; BookmarkText: .; Truth: 1; Service: 2
Checked in MS Word and PNT_Main_029_1
bookmark is on the second page, just like Aspose.Words returns.
the same applies to the following:
DISCREPANCY: BookmarkName: PNT_Main_064_2; BookmarkText: . ; Truth: 2; Service: 3
DISCREPANCY: BookmarkName: PNT_Main_065_2; BookmarkText: Aliquam ; Truth: 2; Service: 3
DISCREPANCY: BookmarkName: PNT_Main_066_2; BookmarkText: venenatis; Truth: 2; Service: 3
DISCREPANCY: BookmarkName: PNT_Main_067_2; BookmarkText: , ; Truth: 2; Service: 3
DISCREPANCY: BookmarkName: PNT_Main_068_2; BookmarkText: vel ; Truth: 2; Service: 3
DISCREPANCY: BookmarkName: PNT_Main_069_2; BookmarkText: , ; Truth: 2; Service: 3
DISCREPANCY: BookmarkName: PNT_Main_070_2; BookmarkText: , ; Truth: 2; Service: 3
DISCREPANCY: BookmarkName: PNT_Main_071_2; BookmarkText: Class ; Truth: 2; Service: 3
DISCREPANCY: BookmarkName: PNT_Main_072_2; BookmarkText: . ; Truth: 2; Service: 3
DISCREPANCY: BookmarkName: PNT_Main_073_2; BookmarkText: imperdiet ; Truth: 2; Service: 3
DISCREPANCY: BookmarkName: PNT_Main_074_2; BookmarkText: at ; Truth: 2; Service: 3
bookmarks from PNT_Main_064_2
to PNT_Main_074_2
are on the third page.
Here is output produced by the code I have provided:
PNT_Main_001_1 - start 1; end 1
PNT_Main_002_1 - start 1; end 1
PNT_Main_003_1 - start 1; end 1
PNT_Main_004_1 - start 1; end 1
PNT_Main_005_1 - start 1; end 1
PNT_Main_006_1 - start 1; end 1
PNT_Main_007_1 - start 1; end 1
PNT_Main_008_1 - start 1; end 1
PNT_Main_009_1 - start 1; end 1
PNT_Main_010_1 - start 1; end 1
PNT_Main_011_1 - start 1; end 1
PNT_Main_012_1 - start 1; end 1
PNT_Main_013_1 - start 1; end 1
PNT_Main_014_1 - start 1; end 1
PNT_Main_015_1 - start 1; end 1
PNT_Main_016_1 - start 1; end 1
PNT_Main_017_1 - start 1; end 1
PNT_Main_018_1 - start 1; end 1
PNT_Main_019_1 - start 1; end 1
PNT_Main_020_1 - start 1; end 1
PNT_Main_021_1 - start 1; end 1
PNT_Main_022_1 - start 1; end 1
PNT_Main_023_1 - start 1; end 1
PNT_Main_024_1 - start 1; end 1
PNT_Main_025_1 - start 1; end 1
PNT_Main_026_1 - start 1; end 1
PNT_Main_027_1 - start 1; end 1
PNT_Main_028_1 - start 1; end 1
PNT_Main_029_1 - start 2; end 2
PNT_Main_030_2 - start 2; end 2
PNT_Main_031_2 - start 2; end 2
PNT_Main_032_2 - start 2; end 2
PNT_Main_033_2 - start 2; end 2
PNT_Main_034_2 - start 2; end 2
PNT_Main_035_2 - start 2; end 2
PNT_Main_036_2 - start 2; end 2
PNT_Main_037_2 - start 2; end 2
PNT_Main_038_2 - start 2; end 2
PNT_Main_039_2 - start 2; end 2
PNT_Main_040_2 - start 2; end 2
PNT_Main_041_2 - start 2; end 2
PNT_Main_042_2 - start 2; end 2
PNT_Main_043_2 - start 2; end 2
PNT_Main_044_2 - start 2; end 2
PNT_Main_045_2 - start 2; end 2
PNT_Main_046_2 - start 2; end 2
PNT_Main_047_2 - start 2; end 2
PNT_Main_048_2 - start 2; end 2
PNT_Main_049_2 - start 2; end 2
PNT_Main_050_2 - start 2; end 2
PNT_Main_051_2 - start 2; end 2
PNT_Main_052_2 - start 2; end 2
PNT_Main_053_2 - start 2; end 2
PNT_Main_054_2 - start 2; end 2
PNT_Main_055_2 - start 2; end 2
PNT_Main_056_2 - start 2; end 2
PNT_Main_057_2 - start 2; end 2
PNT_Main_058_2 - start 2; end 2
PNT_Main_059_2 - start 2; end 2
PNT_Main_060_2 - start 2; end 2
PNT_Main_061_2 - start 2; end 2
PNT_Main_062_2 - start 2; end 2
PNT_Main_063_2 - start 2; end 2
PNT_Main_064_2 - start 3; end 3
PNT_Main_065_2 - start 3; end 3
PNT_Main_066_2 - start 3; end 3
PNT_Main_067_2 - start 3; end 3
PNT_Main_068_2 - start 3; end 3
PNT_Main_069_2 - start 3; end 3
PNT_Main_070_2 - start 3; end 3
PNT_Main_071_2 - start 3; end 3
PNT_Main_072_2 - start 3; end 3
PNT_Main_073_2 - start 3; end 3
PNT_Main_074_2 - start 3; end 3
PNT_Main_075_3 - start 3; end 3
PNT_Main_076_3 - start 3; end 3
PNT_Main_077_3 - start 3; end 3
PNT_Main_078_3 - start 3; end 3
PNT_Main_079_3 - start 3; end 3
PNT_Main_080_3 - start 3; end 3
PNT_Main_081_3 - start 3; end 3
PNT_Main_082_3 - start 3; end 3
PNT_Main_083_3 - start 3; end 3
PNT_Main_084_3 - start 3; end 3
PNT_Main_085_3 - start 3; end 3
PNT_Main_086_3 - start 3; end 3
PNT_Main_087_3 - start 3; end 3
PNT_Main_088_3 - start 3; end 3
PNT_Main_089_3 - start 3; end 3
PNT_Main_090_3 - start 3; end 3
PNT_Main_091_3 - start 3; end 3
PNT_Main_092_3 - start 3; end 3
PNT_Main_093_3 - start 3; end 3
PNT_Main_094_3 - start 3; end 3
PNT_Main_095_3 - start 3; end 3
PNT_Main_096_3 - start 3; end 3
PNT_Main_097_3 - start 3; end 3
PNT_Main_098_3 - start 3; end 3
PNT_Main_099_3 - start 3; end 3
PNT_Main_100_3 - start 3; end 3
As I can see there are no discrepancy in the detected page numbers between Aspose.Words and MS Word 2019 on my side.