JavaScript-将抽认卡创建为PDF
我有一个JSON对象,我需要将其转换为可下载的PDF文件,格式为FlashCard。以下是JSON的一个示例:JavaScript-将抽认卡创建为PDF,javascript,html,json,pdf,Javascript,Html,Json,Pdf,我有一个JSON对象,我需要将其转换为可下载的PDF文件,格式为FlashCard。以下是JSON的一个示例: { questions : [ {"front": "ABC", "back" : "DEF"}, {"front": "HIJ", "back" : "KLM"}, {"front": "NOP", "back" : "QRS"} ] } 抽认卡应位于一个2列3行的表格中。左侧为ABC等,右侧为DEF等 如何从JSON
{
questions : [
{"front": "ABC", "back" : "DEF"},
{"front": "HIJ", "back" : "KLM"},
{"front": "NOP", "back" : "QRS"}
]
}
抽认卡应位于一个2列3行的表格中。左侧为ABC等,右侧为DEF等
如何从JSON对象生成PDF?您可以打开一个新窗口,并将其打印为PDF: (请确保允许弹出窗口,否则它将无法工作。)
分区卡{
边框:1px纯黑;
宽度:12厘米;
}
div.card>div{
显示:内联块;
高度:4厘米;
宽度:6厘米;
}
正面分区{
背景颜色:绿色;
}
副手{
背景色:红色;
}
印刷品
默认情况下,大多数浏览器在打印时都会删除背景色。您可以通过更改设置来保留背景图形: Chrome
Firefox
当我点击代码中的按钮时,我会被带到要打印的卡片页面,但颜色丢失,一些边框消失。有什么方法可以防止这种情况发生吗?@marmadukeandbob我编辑了我的答案。如果这个程序是由任何人运行的,他们都必须这样做吗?有没有办法将其作为默认值启用?此外,一些边界仍然隐藏
let questions = [
{"front": "ABC", "back" : "DEF"},
{"front": "HIJ", "back" : "KLM"},
{"front": "NOP", "back" : "QRS"}
];
function printCards() {
let container = document.createElement("div");
questions.forEach(question => {
let card = document.createElement("div");
card.classList.add("card");
let front = document.createElement("div");
front.classList.add("front");
front.textContent = question.front;
card.appendChild(front);
let back = document.createElement("div");
back.classList.add("back");
back.textContent = question.back;
card.appendChild(back);
container.appendChild(card);
});
let style = document.getElementById('style');
let printWindow = window.open("", "print", "");
printWindow.document.open();
printWindow.document.write(container.outerHTML + style.outerHTML);
printWindow.document.close();
printWindow.print();
}
<style id="style">
div.card {
border: 1px solid black;
width: 12cm;
}
div.card > div {
display: inline-block;
height: 4cm;
width: 6cm;
}
div.front {
background-color: green;
}
div.back {
background-color: red;
}
</style>
<button onclick="printCards();">Print</button>