it's quite simple actually .. lets just examine what DNN does when you click a print button for a module. It just adds some parameters to the URL:
- mid
- dnnprintmode
- SkinSrc
- ContainerSrc
Using these parameters its quite easy to create your own print view (just use navigateurl to build the url)
so for instance, the print url for one of the text/html modules of a default install portal looks like this:
http://localhost/dotnetnuke_2/Home/tabid/36/mid/347/dnnprintmode/true/Default.aspx?SkinSrc=%5bG%5dSkins%2f_default%2fNo+Skin&ContainerSrc=%5bG%5dContainers%2f_default%2fNo+Container
decoded that is:
http://localhost/455/Home/tabid/36/mid/347/dnnprintmode/true/Default.aspx?SkinSrc=[G]Skins/_default/No Skin&ContainerSrc=[G]Containers/_default/No Container
which will show the print view for that module.
If you want to show the printview for the editpage of the same module, you'd just use this url:
http://localhost/dotnetnuke_2/Home/tabid/36/ctl/Edit/mid/347/dnnprintmode/true/Default.aspx?SkinSrc=%5bG%5dSkins%2f_default%2fNo+Skin&ContainerSrc=%5bG%5dContainers%2f_default%2fNo+Container
decoded that is:
http://localhost/dotnetnuke_2/Home/tabid/36/ctl/Edit/mid/347/dnnprintmode/true/Default.aspx?SkinSrc=[G]Skins/_default/No Skin&ContainerSrc=[G]Containers/_default/No Container
It should be clear that the only difference between the 2 examples is the extra "ctl=Edit" querystring variable in the url, causing the module to display the edit view. Of course you can add as many qs params in the url as you like....