Fingerprint enhancement is a critical step in fingerprint identification. Most of the existing enhancement algorithms are based on local ridge direction. The main drawback of these methods lies in the fact that false estimate of local ridge direction will lead to poor enhancement. But the estimate of local ridge directions is unreliable in the areas corrupted by noise where enhancement is most needed. In this paper, we proposed a rule-based method to do fingerprint enhancement. We introduced human knowledge about fingerprints into the enhancement process in the form of rules and simulate what an expert will do to enhance a fingerprint image. In our method, the skeleton image is used to give ridge connection information for the enhancement of the binary image. Experiments show our algorithm is fast and has excellent performance.