public PRIndirectReference GetPageOrigRef(int pageNum) {
--pageNum;
if (pageNum < 0 || pageNum >= Size)
return null;
if (refsn != null)
return (PRIndirectReference)refsn[pageNum];
else {
int n = refsp[pageNum];
if (n == 0) {
PRIndirectReference refi = GetSinglePage(pageNum);
if (reader.lastXrefPartial == -1)
lastPageRead = -1;
else
lastPageRead = pageNum;
reader.lastXrefPartial = -1;
refsp[pageNum] = refi.Number;
if (keepPages)
lastPageRead = -1;
return refi;
}
else {
if (lastPageRead != pageNum)
lastPageRead = -1;
if (keepPages)
lastPageRead = -1;
return new PRIndirectReference(reader, n);
}
}
}