`
smiky
  • 浏览: 257713 次
  • 性别: Icon_minigender_1
  • 来自: 天门
社区版块
存档分类
最新评论

网页打印时元素产生偏移

 
阅读更多

误人子弟了,偏移产生的根本原因应该在于打印页的body的宽高与要打印的纸的尺寸不一样(如A4)而造成的打印预览页面重新布局造成的,以A4为例,将body的宽设成8.3in或597.6pt那么无论是left或right的绝对定位都不会产生偏移。

先写到这,进行步测试后再上结论

 

从下面的两张图可以看出,打印页面上的元素与打印预览上的元素产生的偏移。

可以看出,产生偏移的元素都是绝对定位的,并且指定了left.

 

解决办法:

将left改成right就可以了。

改成right有后遗证,计算left相对而言比较简单,不需要依赖它的父元素,计算right要用父元素的宽度来减去子元素的left+width,在页面不存在resize的情况下一切OK,当存大resize时问题就来了.

页为例,它注册了window的resize事件,在resize时会对填充区域进行resize,而没有管填充区域的父元素,父元素是随着表格的大小自动调整宽高的,在这种情况下就会出现一个问题,父元素的宽高还没有调整好,子元素的right计算己经开始了,也就是说取了个错误的宽度,此时算出的right就会有问题。而left是始终相对于父元素最左端的,不管它宽度变不变都不会有影响.

页:


 

打印预览:


 

 

 引一段话(来自:http://bbs.51js.com/thread-90676-1-1.html):

经过长时间测试,以A4为例,得出打印的结论:
A、打印预览的结果就是打印在纸张上的结果; 【注:对于IE浏览器,打印预览其实是一个网页,是res协议的网页资源。改网页按照特殊的方法弹出,C++,delphi等语言调用webbrowser可以实现弹出这种类型网页,VB似乎不可以实现;该页面地址为 res://ieframe.dll/preview.dlg,里面有大量hmtl和js,本人差不多搞清楚里面的机制,是IE浏览器实现的分页。不过速度比较慢,50页以上就很慢了,大家可以试试;这是IE打印模板页,可以自己定制,很多打印控件就是用这个实现的分页;】
B、所有的html按照节点或者文字流顺序被切割成不同的页面进入打印预览。【至于打印预览的数据是如何生成的,那不得而知了】

C:对于一个html容器node,设置容器node的overflow:hidden,容器内某div的position属性为absolute,假定left属性值保证能在视图内,则打印预览的时候,top属性值是相对于切割之后的分页面的,而不是整个容器的;这样一来若top数值过大,则可能不在分页内部,该div被隐藏,无法被打印出来;

D:对于一个html容器node,设置容器node的overflow:auto,容器内某div的position属性为absolute,假定left属性值保证能在视图内,则打印预览的时候,该div能被打印出来,但位置有所偏移;

E: D部分所讲的div打印位置偏移数值与上下页边距有关,还与div所在页数有关系;至于上下页边距如何取,则看IE浏览器里的数值,一般存储在注册表里; div所在页数,一般根据top的数值来定。

F:打印位置是否准确,还与一个因素有关系,那就是页面的宽度值,页面不同宽度,也会导致div偏移不同;

G:综上所述浮动元素打印
                   偏移值d=function(上边距,下边距,top,width)

本人经过多次测试,发现有具体的规律,只是因为变量太多,太复杂,没有找出来。若有人得出这个具体的浮动元素打印偏移规律公式,那可真是太好了。

我们拭目以待!

 

  • 大小: 186.3 KB
  • 大小: 175.6 KB
分享到:
评论

相关推荐

    web套打中纸张偏移的具体解析

    在Web套打过程中,纸张偏移是一个常见的技术问题,主要表现为连续打印时,纸张上的内容逐渐偏离预设的打印位置。这个问题涉及到多个因素,包括纸张尺寸设置、打印机性能以及软件处理策略等。 首先,纸张偏移的一个...

    js获取元素的偏移量offset简单方法(必看)

    这意味着如果父级参照物有边框,它会被算在偏移量内,因此在计算元素位置时不需要额外加上边框的宽度。 ### 实际应用示例 文章中通过实际的HTML结构示例,展示了如何使用JavaScript的`offsetParent`、`offsetTop` ...

    报表工具FineReport偏移打印方法

    所针对的情景:如,某服务器(在山东)有报表的项目,PC1机(在江苏)连接着它所在区域的某打印机1和PC2(在浙江)也连接着它所在区域的某个打印机2,当他们访问服务器上的同一张报表进行打印时,可能由于打印机的...

    js实现网页上dom元素拖动 并实时显示坐标效果.rar

    4. **计算偏移量**:在`mousemove`事件处理函数中,我们需要计算鼠标当前位置相对于起始位置的偏移量,然后更新DOM元素的`left`和`top`样式属性,以实现元素的移动。 5. **实时坐标显示**:为了在拖动过程中显示...

    pppp_lisp偏移_批量偏移cad_

    然而,需要注意的是,批量操作可能会覆盖原有的对象,因此在使用前最好先备份工作,或者确保偏移设置得当,以免意外修改了不必要的图形元素。 总之,“pppp_lisp偏移_批量偏移cad_”提供的工具是一个强大的辅助设计...

    逆时偏移代码,逆时偏移原理,matlab

    逆时偏移(Reverse Time Migration, RTM)是地震成像技术中的一种重要方法,它在石油勘探领域中被广泛使用,以提高地下构造的分辨率和成像精度。本压缩包包含了一些关于逆时偏移的程序代码和相关研究论文,涵盖了从...

    逆时偏移matlab代码

    逆时偏移是一种地震偏移技术,它可以分为叠后逆时偏移和叠前逆时偏移两类。叠后逆时偏移利用爆炸反射面成像原理,处理的是水平叠加剖面。计算过程是从时间剖面的最后一个时间采样点开始,逆时外推直到时间零点,...

    javascript获取元素偏移量的方法有哪些

    通过四个属性可以获得元素的偏移量: 1、offsetHeight: 元素在垂直方向上占用的空间的大小,(像素)。包括元素的高度,(可见的)水平滚动条的高度,上边框高度和下边框高度。 2、offsetWidth:元素在水平方向上占用...

    rtm_matlab_RTMmatlab_rtm偏移_RTM_逆时偏移_RTM逆时偏移

    4. **波动方程求解**:使用有限差分法、谱元素法或有限元法等数值方法求解波动方程,模拟地震波在地下模型中的传播。 5. **逆时偏移计算**:将记录的地震波形与模拟的反向传播波形进行互相关计算,找到最佳匹配点,...

    百度地图偏移,高德地图偏移的解决方法

    在GIS(Geographic Information System,地理信息系统)领域中,地图偏移是一个常见的问题,对于基于GPS的定位服务来说尤其重要。高德地图和百度地图作为两大主要的地图服务提供商,对于地图偏移的问题也有着不同的...

    偏移转换器 偏移转换器

    当我们在网络上发现有关“最新偏移转换器”的信息时,通常指的是该工具软件的最新版,它往往包含最前沿的特性改进和性能提升。此外,“无毒”与“无后门”的标签,则是对软件安全性的明示,意味着用户可以信任该软件...

    Web前端开发技术-元素偏移量offset应用.pptx

    Web前端开发技术中,元素偏移量`offset`是一个重要的概念,主要用于获取元素在页面上的精确位置和尺寸信息。`offset`属性主要包括`offsetLeft`、`offsetTop`、`offsetWidth`和`offsetHeight`四个主要部分。 1. `...

    qt 的简单的打印预览

    在Qt框架中,打印预览是一项重要的功能,它允许用户在实际打印之前查看文档或网页的打印效果。本文将深入探讨如何使用Qt实现一个简单的打印预览系统,主要基于描述中的"qt 的简单的打印预览"例子。 首先,我们要...

    HTML5&CSS3网页制作:元素的定位属性.pptx

    请注意,只有当 `position` 属性设置为 `relative`, `absolute` 或 `fixed` 时,边偏移属性才会生效,且默认值为 `auto`,表示元素按照常规流进行布局。 以下是一个简单的例子,展示了如何使用这些定位属性: ```...

    C# 偏移裁剪算法

    1. **顶点连接**:新多边形的顶点可能会因为偏移而产生新的连接点,需要检查并合并这些点,确保多边形的连通性。 2. **处理自我相交**:如果偏移距离过大,多边形可能会自我相交。需要使用特定的算法(如Ear ...

    F-K.rar_F-K偏移成像_FK频率波数_fk偏移成像_成像波_频率 波数

    在进行FK偏移成像的实际操作时,应考虑到地震数据的采集、预处理、偏移成像、后处理等步骤,每一个环节都对最终的成像质量有直接影响。了解并掌握这些流程,才能确保成像结果的精确度。例如,在数据预处理阶段,去除...

    RTm叠前逆时偏移代码和论文_逆时偏移_RTM_RTM逆时偏移_RTM叠前_叠前偏移_

    RTm叠前逆时偏移代码是实现这一技术的具体程序,可能包含各种数值算法和优化策略,例如有限差分法、射线追踪法或谱元素法来模拟地震波传播。这些代码对于理解和改进RTM算法至关重要。 论文则可能深入探讨RTM的技术...

    RTM_rtm偏移_RTM_逆时偏移_RTM逆时偏移_正演模拟

    RTM的基本原理是通过模拟地震波在地下的传播过程,将接收器接收到的地震记录反向传播回源位置,与假设的地下模型产生的地震波进行对比,从而得到更准确的地下结构图像。这一过程涉及到地震波的正演模拟和逆演处理两...

Global site tag (gtag.js) - Google Analytics