        ck('模型目录覆盖八页',output.get('titles')==[f'Chapter {i}' for i in range(1,9)]);r=PdfReader(f/'source.pdf');pairs=[(8,1),(2,7),(6,3),(4,5)];w=PdfWriter();wide=landscape(A4)
        for a,b in pairs:
            page=PageObject.create_blank_page(width=wide[0],height=wide[1]);page.merge_transformed_page(r.pages[a-1],Transformation().translate(tx=0,ty=0));page.merge_transformed_page(r.pages[b-1],Transformation().translate(tx=wide[0]/2,ty=0));w.add_page(page)
        w.write(f/'booklet-a4.pdf');back=PdfReader(f/'booklet-a4.pdf');actual=[tuple(int(x) for x in re.findall(r'PAGE\s+(\d+)',p.extract_text())) for p in back.pages];ck('四个实际PDF面页对正确',actual==pairs);ck('原八页在拼版中各出现一次',Counter(x for pair in actual for x in pair)==Counter(range(1,9)));reading=[actual[0][1],actual[1][0],actual[2][1],actual[3][0],actual[3][1],actual[2][0],actual[1][1],actual[0][0]];ck('折叠模拟还原1至8',reading==list(range(1,9)));result={'sheet_sides':actual,'fold_reading_order':reading,'physical_print_verified':False};add_native(f/'booklet-a4.pdf')
