def METHOD_NAME(self, actual_file: str, expected_file: str) -> Tuple[bool, str]:
    """
    Compare two PDF files
    The following are ignored in the comparison:
    - blank lines
    - lines starting or ending with '%'
    - lines containing the name /Length
    - anything following the first '/' in line containing a Do operator
    - anything following the xref entry
    """
    with open(actual_file, 'rb') as f:
        actual = f.readlines()
    with open(expected_file, 'rb') as f:
        expected = f.readlines()
    actual_no = 0
    last_match = -1
    for line_no, line in enumerate(expected):
        if len(line) == 0 or line.isspace() or line.startswith(b'%') or line.endswith(b'%\n') or b'/Length' in line:
            pass
        elif line.startswith(b'xref'):
            return True, ''
        else:
            if b' Do ' in line or b' Do\n' in line:
                line = line[:line.find(b'/')]
            try:
                while not actual[actual_no].startswith(line):
                    actual_no += 1
                last_match = actual_no
                actual_no += 1
            except IndexError: # pragma: no cover
                # Only get executed for failing test
                print(line_no, line, last_match)
                return (False, f'Failed to match line {line_no + 1} in expected  file {expected_file} : {line} \n'
                               f'Last match in line {last_match + 1} of {actual_file}')
    return True, ''