滚动HTML5画布视口进行打印
Scrolling HTML5 Canvas viewport for printing
我正在HTML5画布上绘制一系列矩形和文本。但这幅油画最终会被印刷出来。矩形是根据纸张(画布)的高度绘制的
唯一不会扭曲文本的画布宽度是300dpi
或2400x3300
画布。这在印刷品上效果很好,但在屏幕上明显是巨大的。
我希望用户在左侧有一个缩小的画布版本,它适合父容器的100%
高度,并带有用于溢出的滚动条。
我尝试过div
溢出:auto。。这确实有效,但没有缩放(仍在滚动一个巨大的版本)。因此,基本上我想缩放浏览器窗口的图像,但从大画布上执行所有drawing/printing
。
对于这个场景,您可以在画布中使用CSS规则。
在线演示此处
保持像素大小,但将以下规则添加到画布元素本身(假设画布的id为canvas
):
canvas.style.width = 'auto';
canvas.style.height = '100%';
或者通过CSS和HTML:将CSS规则应用于元素
.printCanvas {
width:auto;
height:100%;
}
然后在HTML:中
<canvas id="canvas" class="printCanvas" width="2400" height="3300"></canvas>
这应该允许浏览器在打印时使用画布的实际内容,即使画布是按比例缩小的(就像使用图像一样)。
在本例中,画布将适合父对象的高度,前提是父对象已定义高度。您可以使用overflow:auto
来获取滚动条。
如果您想在父级中显示50%的画布,只需为画布元素设置height:200%
,依此类推
请注意,如果画布缩放过大,您可能会在屏幕上丢失一些细节,但这些细节应该显示在打印上。这可能是由于当一个像素被绘制为小于屏幕上的实际像素时,就会出现亚像素化。
相关文章:
- 将视口底部滚动到元素底部
- 使用JavaScript根据窗口/视口的高度动态调整图像大小
- 使用条件语句,使 jquery fadeIn/fadeOut 仅在视口 >= 480px 时才有效
- 宽度为100%的CSS元素位于视口之外
- CSS3:当页面向下滚动到第一个视口时,是否可以在元素上触发转换
- 如何设置浏览器视口大小
- Javascript em根据窗口/视口尺寸调整大小,不影响文档样式的text/css
- 检测视口并重定向到不同的主页
- 如何在按住鼠标按钮且光标在视口外时检测鼠标离开
- iOS iPad平板电脑渲染视口不正确
- 移动设备上的视口问题
- 视口大小更改时自动刷新页面
- 在移动设备上获取视口大小
- 在 ReactJS 中获取视口/窗口高度
- 使jquery延迟加载插件在视口内工作
- Div 设置为视口高度,即使调整屏幕大小也是如此
- jQuery调整大小和视口检查点
- 将html元素渲染到浏览器视口
- 用于管理视口布局的Javascript库
- 滚动HTML5画布视口进行打印