A 3D printing method implemented by swaths for use in a 3D printer, the 3D printer comprising a wide nozzle configured to spray a row of droplets via a plurality of spray heads at once and a printing platform, the 3D printing method comprising the steps of: a0) reading a graphic file, wherein the graphic file records one of a plurality of printing layers of a 3D model, each of the printing layers is comprised of at least one swath and one final swath according to a print volume of the printing platform; a) obtaining a default value of a swath-width; b) adjusting the default value of the swath-width based on a shift value to generate an adjusted swath-width; c) controlling the wide nozzle to print one of the at least one swath on the printing platform from a printing starting point of the swath upon the printing platform according to the adjusted swath-width; d) adjusting the relative position of the wide nozzle and the printing platform to position the wide nozzle at a printing starting point of a next swath upon the printing platform after the step c); e) determining if the next swath is the final swath of the printing layer; f) repeating executing the steps a) to e) if the next swath is not the final swath of the printing layer; g) compensating a remained swath-width of the final swath according to the shift value per previously printed swath to generate a compensated remained swath-width if the next swath is the final swath of the printing layer, wherein the remained swath-width is shorter than the default value of the swath-width; h) controlling the wide nozzle to print the final swath on the printing platform from a printing starting point of the final swath upon the printing platform according to the compensated remained swath-width; i) adjusting a height gap between the wide nozzle and the printing platform and reading the graphic file of a next printing layer of the 3D model after the step h); and j) adjusting the shift value to generate an adjusted shift value after the step i), and re-executing steps from the step a) to the step h) according to the adjusted shifting value to print the next printing layer, wherein the content of the adjusted shift value is different from the content of the shift value. a0) reading a graphic file, wherein the graphic file records one of a plurality of printing layers of a 3D model, each of the printing layers is comprised of at least one swath and one final swath according to a print volume of the printing platform; a) obtaining a default value of a swath-width; b) adjusting the default value of the swath-width based on a shift value to generate an adjusted swath-width; c) controlling the wide nozzle to print one of the at least one swath on the printing platform from a printing starting point of the swath upon the printing platform according to the adjusted swath-width; d) adjusting the relative position of the wide nozzle and the printing platform to position the wide nozzle at a printing starting point of a next swath upon the printing platform after the step c); e) determining if the next swath is the final swath of the printing layer; f) repeating executing the steps a) to e) if the next swath is not the final swath of the printing layer; g) compensating a remained swath-width of the final swath according to the shift value per previously printed swath to generate a compensated remained swath-width if the next swath is the final swath of the printing layer, wherein the remained swath-width is shorter than the default value of the swath-width; h) controlling the wide nozzle to print the final swath on the printing platform from a printing starting point of the final swath upon the printing platform according to the compensated remained swath-width; i) adjusting a height gap between the wide nozzle and the printing platform and reading the graphic file of a next printing layer of the 3D model after the step h); and j) adjusting the shift value to generate an adjusted shift value after the step i), and re-executing steps from the step a) to the step h) according to the adjusted shifting value to print the next printing layer, wherein the content of the adjusted shift value is different from the content of the shift value.