我要打印的页面是由上面的一个表单和另外一个放在ifraem的页面组成,在这个页面里看的话,上面的表单比下面的页面还要宽一点,但在打印预览的时候,把打印方向设置为横向,上面的页面可以全包括进去,下面的页面会被截断。
现在要想办法解决这个问题,在打印的页面设置里面解决不了,因为一定要用A4的纸。  

解决方案 »

  1.   


    我理解你的问题是不是因为上面表单参与打印而影响了打印效果
    要控制框架打印的方法有很多可以用css控制打印是否显示,
    <style>@media print{.hidePrint{display:none}}</style>   <span class=hidePrint>打印时隐藏</span>也可以控制那一个框架进行打印
    top.frameMain.focus()
    top.frameMain.print()
      

  2.   

    谢谢楼上的回答,但我现在问题不在这个地方,并不是上面的表单参与打印影响了效果,而是iframe里面的页面本来打印就打不全。
    看来我还得把问题再说详细点。
    这个要打印的页面是重新生成的,打印的东西包括两个表单,最开始两个都是写死在页面里面的,现在有一个表单跟据用户的不同而不同,所以用了iframe动态加载。但这个动载加载的页面打印的时候不全,因为这个页面太大。
    我现在想出的法子是第一个,把这个页面缩放,但具体我不知道怎么做。
    第二个,不用iframe动态加载这个页面,先把这个页面的HTML读到内存中,然后想办法把他写到一个div中,让他的大小能刚好适应打印纸的大小。
    这两种方法都只是我的想法,具体都不知道怎么做。最后还有一点疑问,就是我在页面上看的时候,上面的那个表单比下面的要宽,为什么打印的时候上面的可以包括,下面的却包括不进去?
    上面的宽度用的是百分比,下面的宽度用的是像素,跟这个有没有关系?
    希望大家能看到我这个对问题的补充,给我答案。
      

  3.   


    你在iframe的onload的动态的计算一下子面的高度
    然后
    把高度再给iframe的style属性我记得以前我这么做过,但是好久的,要代码就没有了
      

  4.   

    用js函数实现就行,打印的内容都可以添加进去
    funtion doPrint()
    {
      var str,centent;
      centent=doxument.geElimentById('printeCentent'),innerHtml;
      str+="<html>";
      str+=...
      '''
      str+="centent";
      ...
      str+=</html>
      
      document.write(str);
      document.close();
    }
      

  5.   

    顶一下吧,还是觉得你挺厉害的哦,你能告诉我怎么做打印吗?我现在在做这方面的毕业设计,我的DataGrid老师要求可以打印,要有打印预览,但是我不会--