def get_explict_dest(pdf, dest_list):
    """
    Find explict destination page number and rectangle.

    :param pdf: pdfplumber.pdf.PDF object
    :param dest_list: A explict destination list, e.g. [page, /XYZ, left, top, zoom]
    :return: A list of destination contains page number and rectangle coordinates
    """
    dest_page_num = None
    # find page number from page id
    dest_page_id = dest_list[0].objid
    for page in pdf.pages:
        if dest_page_id == page.page_obj.pageid:
            dest_page_num = page.page_number

    # explict destination support a lot possibilities to describe like [page, /XYZ, left, top, zoom], or [page, /Fit]
    # according to TABLE 8.2 Destination syntax of PDF Reference 1.7
    if dest_list[1].name == 'XYZ':
        dest_rect_x = dest_list[2]
        dest_rect_y = dest_list[3]
    else:
        dest_rect_x = 0
        dest_rect_y = dest_list[0].resolve()['MediaBox'][3]  # page top

    return [dest_page_num, dest_rect_x, dest_rect_y]