Private pd As PrintDocument() should NOT have parens - implies you are creating an array of Print Documents vs. one. The code has omitted the "Printing" namespace. Unless you update your project properties to include this namespace by default. Since project properties aren't something I can showhere I'm going to add the namespace. Additionally the sample uses Handles, which means we need to declare the print document 'With Events". Thus the declaration should read:
Private WithEvents pd As Printing.PrintDocument