javascript可以获取或设置打印机信息

Can javascript get or set printer info?

本文关键字:设置 打印机 信息 获取 javascript      更新时间:2023-09-26

通过Javascript(或jquery)是否可以执行以下操作之一。。。

  1. 查找浏览器打印对话框的当前页面大小和方向

  1. 为浏览器的打印对话框设置(或至少建议)页面大小和方向

我有各种大小和尺寸的图像,我想提供一个可打印的表格,最大限度地利用所选的页面大小。也就是说,我想缩放或旋转图像,使其尽可能多地占据页面。

或者有没有一种方法可以在CSS中处理这个问题?

这超出了JS的范围,因为打印对话框是特定于操作系统的。

然而,最接近配置的是CSS中的媒体查询或<link>标签的media属性。与其建议页面大小和/或方向,不如调整页面以使其在打印时看起来合适。这也可能意味着屏幕上的CSS在打印时完全不同。只要确保你的HTML是为了适应这种情况而创建的。

或者更好的是,提供一个完全不同的页面,使用完全不同的CSS进行打印。这样,你就不必对单个页面进行过度设计,就可以在多个媒体上看起来很好看(最终会变成意大利面条)。

我不知道是否有任何方法可以针对打印介质中的特定页面大小,但当用户以纵向打印时,可以使横向图像旋转90度。这适用于Firefox(尚未测试其他版本):

<!DOCTYPE html>
<html>
  <head>
    <style>
      @media print {
        body {
          margin: 0;
        }
      }
      @media print and (orientation:portrait) {
        .landscapeImage {
          -moz-transform-origin: 200px 200px; /* set both values to half of image height */
          -ms-transform-origin: 200px 200px; /* set both values to half of image height */
          -webkit-transform-origin: 200px 200px; /* set both values to half of image height */
          transform-origin: 200px 200px; /* set both values to half of image height */
          -moz-transform: rotate(90deg);
          -ms-transform: rotate(90deg);
          -webkit-transform: rotate(90deg);
          transform: rotate(90deg);
        }
      }
      .landscapeImage { /* faux image */
        height: 400px;
        width: 600px;
        display: inline-block; /* not part of solution */
        box-sizing: border-box; /* not part of solution */
        border: 4px solid black; /* not part of solution */
      }
    </style>
  </head>
  <body>
    <div class="landscapeImage">
      Pretend this is an image
    </div>
  </body>
</html>

多页打印作业可能要复杂得多。