Кто-то задавал вопрос недавно на форуме по зуму контента, но я не нашел этот вопрос. Вот одно из решений. Общий смысл заключается в вставке html-элементов в svg, используя foreignObject. А в SVG есть viewBox, управляя которым мы можем увеличить как фрагмент, так и весь html.
Как использовать foreignObject -
https://gist.github.com/mbostock/1424037
viewBox -
http://tutorials.jenkov.com/svg/svg-...-view-box.html
HTML в canvas -
https://developer.mozilla.org/en-US/..._into_a_canvas