public int GetDestinationPage()
{
if (!IsInternal()) return 0;
// here destination is something like
// [132 0 R, /XYZ, 29.3898, 731.864502, null]
PdfIndirectReference refi = destination.GetAsIndirectObject(0);
PRIndirectReference pr = (PRIndirectReference) refi;
PdfReader r = pr.Reader;
for (int i = 1; i <= r.NumberOfPages; i++) {
PRIndirectReference pp = r.GetPageOrigRef(i);
if (pp.Generation == pr.Generation && pp.Number == pr.Number) return i;
}
throw new ArgumentException(MessageLocalization.GetComposedMessage("page.not.found"));
}