求一些HTML和js控制打印机的一些资料。比如换页,边距,精确定位之类的。。

2012-11-16 17:24:58 +08:00
 codenamea
想要写一个简单的WEB页面用于打印。
但是想要精确定位到打印纸的某些位置。
也可以理解成类似于打快递单的感觉。

求一些相关资料。。。。感谢各位~
4533 次点击
所在节点    问与答
7 条回复
froo
2012-11-19 17:16:16 +08:00
看下这个js打印控件:Lodop http://mtsoftware.v053.gokao.net/
codenamea
2012-11-19 17:24:16 +08:00
@froo 感谢,但是我需要的不是这种重量型的产品。。。。 我记得CSS和JS本身就能做到不少打印有关的控制。
cyr1l
2012-11-19 18:07:11 +08:00
用表格吧。 然后宽度高度写百分比,适应缩放。 比如,
body{
width:100%;
}
main{
width:96%;
}
不需要打印出来的元素添加上 display:none;
codenamea
2012-11-19 18:09:20 +08:00
@cyr1l

这个。。。太简单了吧。用css一样可以做不需要table呀。

我需要的是比如强制打印机换页打印之泪的稍微高级一点的功能以及精确到打印纸某个特殊位置误差不能超过5毫米的精确定位打印之类的。。
wayn3h0
2012-11-19 20:05:50 +08:00
@codenamea 以前研究过,目前用js和html做不到精确控制,只能写控件来实现 flash, java applet可以实现精确控制,ms的sl不推荐,一是安装率不够,二是目前只能输出巨大的文件进行打印~
zythum
2012-11-19 21:22:43 +08:00
粘一下笔记,出处已经忘了

在公制长度单位与屏幕分辨率进行换算时,必须用到一个DPI(Dot Per Inch)指标。
经过我仔细的测试,发现了网页打印中,默认采用的是96dpi
A4纸张的尺寸是210×297mm,按1英寸=25.41mm换算,即8.264×11.688英寸
所以,A4纸96dpi下的分辨率是794×1123,这就是我们在制作网页的时候需要的象素。
但是打印机是无法满幅打印的,总要有页边距,所以我们在制作网页的时候必须减去页边距。
以下是我测试的各种页边距下,A4纸对应的象素尺寸:
打印页边距设定为 0mm 时,网页内最大元素的分辨率:794×1123
<div style="width:794px;height:1123px;border:1px solid #000000;"> </div>
打印页边距设定为 5mm 时,网页内最大元素的分辨率:756×1086
<div style="width:756px;height:1086px;border:1px solid #000000;"> </div>
打印页边距设定为 19.05mm 时,网页内最大元素的分辨率:649×978
<div style="width:649px;height:978px;border:1px solid #000000;"> </div>
codenamea
2012-11-20 01:24:27 +08:00
我银币不多啊。。不过还是猛点了感谢。。。 感谢LS几位。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/52552

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX