1. A method of compressing a received document, comprising: receiving a documents containing unknown combinations of a plural data types; determining a required compression amount for the document, compressing portions of the document with a compression method selected to meet a local compression constraint; comparing actual compression with said local compression constraint iteratively compressing portions of the document with progressively more aggressive compression techniques to meet said local compression constraint.