Order it from your local bank before you leave.
Check what their fee is first. My bank would have hosed us if I wasn't paying attention.
BTW I found out the hard way, your CC company will likely charge you exchange fees for every transaction.
Check with your CC company. Capital One has numerous cards that don't charge fees.
Pay as much as you can on a no-fee credit card, even if it means getting a new one just for the trip. Use ATMs and/or check with the Canadian banks in the area you will be in and get their exchange rates. All exchange facilities will charge a fee. Definitely use the cash back option in stores if available.