ฉันกำลังทำงานกับตาราง HTML และพิมพ์ตารางนั้นไปยังเครื่องพิมพ์ที่ใช้html-to-paper
ใน vue.js สิ่งที่ฉันกำลังทำอยู่คือการคลิกเพิ่มการสร้างแถวใหม่จากนั้นเมื่อคลิกการพิมพ์ฉันกำลังพยายามพิมพ์ตาราง แต่ไม่ได้ถ่าย ข้อมูลใด ๆ แสดงเซลล์ว่างเท่านั้น
รหัสแอป
<template>
<div id="app">
<button type="button" @click="btnOnClick">Add</button>
<div id="printMe">
<table class="table table-striped table-hover table-bordered mainTable" id="Table">
<thead>
<tr>
<th class="itemName">Item Name</th>
<th>Quantity</th>
<th>Selling Price</th>
<th>Amount</th>
</tr>
</thead>
<tbody>
<tr v-for="(tableData, k) in tableDatas" :key="k">
<td>
<input class="form-control" readonly v-model="tableData.itemname" />
</td>
<td>
<input class="form-control text-right" type="text" min="0" step=".01" v-model="tableData.quantity" v-on:keyup="calculateQty(tableData)" />
</td>
<td>
<input class="form-control text-right" type="text" min="0" step=".01" v-model="tableData.sellingprice" v-on:keyup="calculateSPrice(tableData)" />
</td>
<td>
<input readonly class="form-control text-right" type="text" min="0" step=".01" v-model="tableData.amount" />
</td>
</tr>
</tbody>
</table>
</div>
<button @click="print">Print</button>
</div>
</template>
<script>
export default {
data() {
return {
tableDatas: []
}
},
methods: {
btnOnClick(v) {
this.tableDatas.push({
itemname: "item",
quantity: 1,
sellingprice: 55,
amount: 55
});
},
print() {
this.$htmlToPaper('printMe');
}
}
};
</script>
<style>
</style>
main.js
import Vue from "vue";
import App from "./App.vue";
import VueHtmlToPaper from "vue-html-to-paper";
Vue.config.productionTip = false;
Vue.use(VueHtmlToPaper);
new Vue({
render: h => h(App)
}).$mount("#app");
นี่คือรหัสการทำงานใน codesandbox
แก้ไขตามความโปรดปราน
ฉันต้องทำด้วย 'html ต่อกระดาษ' ปัญหาคือฉันไม่สามารถให้สไตล์กับองค์ประกอบของฉันสำหรับการพิมพ์โดยใช้ @media print
- คำตอบ
ux.engineer
นั้นใช้ได้ แต่ก่อให้เกิดปัญหาเบราว์เซอร์ crome และ firefox กำลังบล็อกมันเนื่องจากการรักษาความปลอดภัยออก
โปรดตรวจสอบรหัสแซนด์บ็อกซ์ตัวอย่างเช่นที่นี่คือรหัสเต็มของฉันฉันพยายามให้สไตล์ แต่ไม่เกิดขึ้น
html-to-print
ใช้ปลั๊กอิน window.open ดังนั้นเมื่อฉันคลิกที่พิมพ์มันไม่ได้นำรูปแบบไปยังหน้าใหม่- นั่นคือที่ที่ฉันติดอยู่เพราะทำไมมันถึงไม่ใช้สไตล์สื่อฉันจะลบล้างสไตล์ของฉันใน window.open ได้อย่างไร
ฉันใช้ print-nbแต่มันไม่ทำงานบนเบราว์เซอร์เนื่องจากเหตุผลด้านความปลอดภัย