在线样例

请启用 JavaScript 后使用在线样例。

您的浏览器版本过旧,请升级至 Chrome、Edge、Firefox 或 Safari 最新版后再访问在线样例。

左侧浏览样例目录,右侧查看版式预览与示例代码;点击运行即可通过 web-print-pdf 驱动本地客户端完成静默打印或 PDF 预览。使用前请先 安装并启动客户端

客户端

若打印或预览效果与预期不符,请务必先从官网下载并安装最新版 Web打印专家客户端后再试(旧版本可能导致版式偏差)。

版式说明

版式预览与打印输出完全遵循 HTML/CSS 标准样式,没有隐藏的渲染技巧:样式写成什么样,页面就长成什么样。

08 - 药房用药多页标签

单份 HTML 内排列多张用药标签,每张固定 50mm×30mm 并用 CSS page-break-after 分页,一次预览/打印输出多页 PDF(本例 3 张)。须写 html, body { margin: 0; padding: 0; },且每张标签 height 与 pdfOptions.height 一致。实际打印时 printOptions.paperFormat 须填当前打印机物理纸名(getPrinterPapers 查询)。

示例代码

const rxLabelWidth = '50mm';
const rxLabelHeight = '30mm';

const rxItems = [
  { patient: '林晓月', gender: '女', age: '42岁', drug: '维生素B1片', spec: '5mg×100片/瓶 × 42片', usage: '口服 每次2片 每日3次', note: '' },
  { patient: '林晓月', gender: '女', age: '42岁', drug: '甲钴胺片', spec: '0.5mg×20片/盒 × 30片', usage: '口服 每次1片 每日3次', note: '' },
  { patient: '林晓月', gender: '女', age: '42岁', drug: '仙灵骨葆胶囊', spec: '0.4g×30粒/盒 × 60粒', usage: '口服 每次2粒 每日2次', note: '' }
];

const rxLabelsHtml = `<!DOCTYPE html>
<html lang="zh-CN">
<head>
  <meta charset="UTF-8">
  <style>
    /* 去掉浏览器默认边距,否则小尺寸纸张容易多出一页空白 */
    html, body { margin: 0; padding: 0; }
    .rx-label {
      /* 单张标签物理尺寸,须与 pdfOptions.width / height 一致 */
      width: ${rxLabelWidth};
      height: ${rxLabelHeight};
      box-sizing: border-box;
      padding: 1.2mm 2mm;
      font-family: "Microsoft YaHei", SimHei, sans-serif;
      font-size: 7.5pt;
      line-height: 1.32;
      /* 打印/PDF 分页:每张标签后换一页(仅分页介质生效,屏幕浏览无效) */
      page-break-after: always;  /* 旧属性,兼容性好 */
      break-after: page;         /* 新标准,page 为关键字,表示「此元素后强制分页」 */
      overflow: hidden;          /* 内容超出固定页高时裁切,避免撑出额外页 */
    }
    /* 最后一张不再分页,避免 PDF 末尾多一页空白 */
    .rx-label:last-child {
      page-break-after: auto;
      break-after: auto;
    }
    .rx-head { font-weight: bold; font-size: 8.5pt; margin-bottom: 0.6mm; }
    .rx-drug { margin-bottom: 0.4mm; }
    .rx-line { font-size: 7pt; }
  </style>
</head>
<body>
${rxItems.map(item => `  <div class="rx-label">
    <div class="rx-head">${item.patient} ${item.gender} ${item.age}</div>
    <div class="rx-drug">${item.drug}</div>
    <div class="rx-line">规格: ${item.spec}</div>
    <div class="rx-line">用法: ${item.usage}</div>
    <div class="rx-line">备注: ${item.note}</div>
  </div>`).join('\n')}
</body>
</html>`;
// …

运行结果

  • 样例优先加载本站内置 web-print-pdf,与 npm 包 API 一致;失败时回退 CDN。
  • 客户端内置「运行示例」页(vueApp/.../examples/index.vue)提供更多可编辑 demo,与本页样例互补。
  • 工具类样例(连接检测、打印机列表等)仅返回 JSON,不触发打印。
免费下载客户端 查看 npm 包