唯美为你 發表於 2025-5-12 13:44:00

vue vxe-print 打印设置边距、页头页尾高度样式

<p>vue vxe-print 打印设置边距、页头页尾高度样式</p>
<p>官网:https://vxeui.com<br>
github:https://github.com/x-extends/vxe-pc-ui<br>
gitee:https://gitee.com/x-extends/vxe-pc-ui</p>
<h2 id="设置边距">设置边距</h2>
<p>通过设置 page-style.margin 设置打印的页面边距,设置为0 就可以去掉边距</p>
<p><img src="https://img2024.cnblogs.com/blog/3563285/202505/3563285-20250512134245054-1473277238.png"></p>
<p><img src="https://img2024.cnblogs.com/blog/3563285/202505/3563285-20250512134404611-1926218158.png"></p>
<pre><code class="language-html">&lt;template&gt;
&lt;div&gt;
    &lt;vxe-print ref="printRef" :page-style="pageStyle"&gt;
      &lt;vxe-print-page-break&gt;
      &lt;div&gt;第一页&lt;/div&gt;
      &lt;div&gt;内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容&lt;/div&gt;
      &lt;/vxe-print-page-break&gt;
      &lt;vxe-print-page-break&gt;
      &lt;div&gt;第二页&lt;/div&gt;
      &lt;div&gt;内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容&lt;/div&gt;
      &lt;/vxe-print-page-break&gt;
    &lt;/vxe-print&gt;
    &lt;vxe-button @click="printEvent1"&gt;直接打印&lt;/vxe-button&gt;
    &lt;vxe-button @click="printEvent2"&gt;调用方法打印&lt;/vxe-button&gt;
&lt;/div&gt;
&lt;/template&gt;

&lt;script setup&gt;
import { ref } from 'vue'
import { VxeUI } from 'vxe-pc-ui'

const printRef = ref()

const pageStyle = ref({
margin: 0
})

const printEvent1 = () =&gt; {
const $print = printRef.value
if ($print) {
    $print.print()
}
}

const printEvent2 = () =&gt; {
VxeUI.print({
    pageStyle: {
      margin: 0
    },
    pageBreaks: [
      {
      bodyHtml: `
      &lt;div&gt;第一页&lt;/div&gt;
      &lt;div&gt;内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容&lt;/div&gt;
      `
      },
      {
      bodyHtml: `
      &lt;div&gt;第二页&lt;/div&gt;
      &lt;div&gt;内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容&lt;/div&gt;
      `
      }
    ]
})
}
&lt;/script&gt;
</code></pre>
<h2 id="页头页尾高度">页头页尾高度</h2>
<p><img src="https://img2024.cnblogs.com/blog/3563285/202505/3563285-20250512134257029-1393154082.png"></p>
<p><img src="https://img2024.cnblogs.com/blog/3563285/202505/3563285-20250512134304809-1599209715.png"></p>
<pre><code class="language-html">&lt;template&gt;
&lt;div&gt;
    &lt;vxe-print ref="printRef" title="打印标题" :page-style="pageStyle" show-page-number&gt;
      &lt;vxe-print-page-break&gt;
      &lt;div&gt;第一页&lt;/div&gt;
      &lt;div&gt;内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容&lt;/div&gt;
      &lt;/vxe-print-page-break&gt;
      &lt;vxe-print-page-break&gt;
      &lt;div&gt;第二页&lt;/div&gt;
      &lt;div&gt;内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容&lt;/div&gt;
      &lt;/vxe-print-page-break&gt;
    &lt;/vxe-print&gt;
    &lt;vxe-button @click="printEvent1"&gt;直接打印&lt;/vxe-button&gt;
    &lt;vxe-button @click="printEvent2"&gt;调用方法打印&lt;/vxe-button&gt;
&lt;/div&gt;
&lt;/template&gt;

&lt;script setup&gt;
import { ref } from 'vue'
import { VxeUI } from 'vxe-pc-ui'

const printRef = ref()
const pageStyle = ref({
marginLeft: 16,
marginRight: 16,
header: {
    height: 40
},
footer: {
    height: 30
}
})

const printEvent1 = () =&gt; {
const $print = printRef.value
if ($print) {
    $print.print()
}
}

const printEvent2 = () =&gt; {
VxeUI.print({
    title: '打印标题',
    pageStyle: {
      marginLeft: 16,
      marginRight: 16,
      header: {
      height: 40
      },
      footer: {
      height: 30
      }
    },
    showPageNumber: true,
    pageBreaks: [
      {
      bodyHtml: `
      &lt;div&gt;第一页&lt;/div&gt;
      &lt;div&gt;内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容&lt;/div&gt;
      `
      },
      {
      bodyHtml: `
      &lt;div&gt;第二页&lt;/div&gt;
      &lt;div&gt;内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容&lt;/div&gt;
      `
      }
    ]
})
}
&lt;/script&gt;
</code></pre>
<p>https://gitee.com/x-extends/vxe-pc-ui</p><br><br>
来源:https://www.cnblogs.com/qaz666/p/18872484
頁: [1]
查看完整版本: vue vxe-print 打印设置边距、页头页尾高度样式