You don't need a transit visa for Frankfurt, or Zurich or even London since your onward flight is to Canada and the layover would be less than 24 hours.
So I guess that covers all the possible routes from India to Canada with European layovers
Additional Info: A friend who flew to the US via Brit Airways had a 9 hour layover and was issued an on the spot transit visa which allowed her to get out and meet a few friends in London.
Bon Voyage!