        before=PdfReader(f/'source.pdf');w=PdfWriter(clone_from=before);image=w.pages[0].images[0];pil=image.image.copy();pil.thumbnail((600,450));image.replace(pil,quality=55);w.pages[0].compress_content_streams();w.write(f/'compressed.pdf');after=PdfReader(f/'compressed.pdf');raw='\n'.join(p.extract_text() for p in before.pages);new='\n'.join(p.extract_text() for p in after.pages);ck('原生PDF体积实际下降',(f/'compressed.pdf').stat().st_size<(f/'source.pdf').stat().st_size);ck('页数和可复制文字保持',len(before.pages)==len(after.pages) and raw==new);ck('模型关键事实与原文一致',output.get('fact')=='Total: 17 crates.' and output['fact'] in new);result={'before_bytes':(f/'source.pdf').stat().st_size,'after_bytes':(f/'compressed.pdf').stat().st_size,'text_equal':raw==new,'fact':output.get('fact'),'image_compression':'lossy JPEG/downsample, not visually lossless'};add_native(f/'compressed.pdf');art+=render_pdf(f/'source.pdf',f,'before-compression',False)
