Should I use the PrintRequestAttributeSet API or the J2Printer methods like setPaperSize to set my printing settings?
Either or both. You can set the values of the number of copies, print job name, paper size, orientation, and margins (printable area) using either API and even intermix calls from the two APIs under JDK 1.4.x or later. J2Printer14 will keep all the values in synch between the two systems, ensuring that setting values under either API will update the values under the other. However, it is probably a less confusing coding style to stay within one system or the other. Also, if you are using JDK 1.4.x or later, you are much better off using the PrintRequestAttributeSet style since it allows you to do many more things.