SaveAs 또는 Save를 호출할 때 출력 PDF의 stream을 FlateDecode로 압축할지 여부를 제어합니다. 저장 후 압축 엔진은 직렬화된 PDF를 검사해 압축되지 않은 stream을 zlib-deflate 대응물로 바꾸고 xref table을 다시 작성합니다. 이미 압축된 stream은 변경하지 않고 통과시킵니다property Compressed: Boolean; // default True
Compressed는 다음 SaveAs(및 관련 메서드) 호출에 저장 후 stream 압축을 적용할지 제어합니다. True일 때, 즉 기본값일 때 PDFiumPas는 PDFium을 통해 문서를 직렬화한 뒤 압축되지 않은 content / metadata stream을 FlateDecode 압축 대응물로 바꾸고 cross-reference table을 새 오프셋에 맞게 다시 씁니다
False면 output stream을 있는 그대로 씁니다. 결과 파일은 보통 2-10× 더 크지만 text editor로 열었을 때 사람이 읽을 수 있어 content stream을 디버그하거나, 두 PDF 개정을 diff로 비교하거나, 압축되지 않은 입력을 선호하는 PDF syntax 인식 도구에 넘길 때 유용합니다
Compressed를 설정해도 바뀌는 것은 다음 저장 동작뿐이며 in-memory 문서는 영향을 받지 않습니다. 압축된 상태로 로드한 문서를 Compressed := False로 저장하면 output에서 압축이 풀리고, 압축되지 않은 문서를 Compressed := True로 저장하면 output에서 압축됩니다. Compressed := True로 완전히 압축된 문서를 다시 저장해도 파일 크기는 거의 같으며, 엔진이 미리 압축된 stream을 인식해 다시 deflate하지 않기 때문입니다
// 디버깅용으로 압축된 원본 옆에 압축되지 않은 복사본을 저장합니다
begin
Pdf.Active := True;
Pdf.Compressed := True;
Pdf.SaveAs('output.pdf'); // production copy
Pdf.Compressed := False;
Pdf.SaveAs('output_debug.pdf'); // human-readable copy
end;