效果
文章来源:https://www.toymoban.com/news/detail-681925.html
预期效果
文章来源地址https://www.toymoban.com/news/detail-681925.html
//避免分页被截断
async outPutPdfFn (id, title) {
const _t = this;
const A4_WIDTH = 592.28;
const A4_HEIGHT = 841.89;
// dom的id。
let target = document.getElementById('pdf');
let pageHeight = target.scrollWidth / A4_WIDTH * A4_HEIGHT;
// 获取分割dom,此处为class类名为item的dom
let lableListID = document.getElementsByClassName('item');
// 进行分割操作,当dom内容已超出a4的高度,则将该dom前插入一个空dom,把他挤下去,分割
for (let i = 0; i < lableListID.length; i++) {
const currentItem = lableListID[i];
let elToTop = document.getElementById('title').offsetTop + currentItem.offsetTop
if (elToTop + currentItem.offsetHeight > pageHeight && elToTop < pageHeight) {
let divParent = currentItem.parentNode; // 获取该div的父节点
let newNode = document.createElement('div');
newNode.className = 'emptyDiv';
newNode.style.height = 8 + 'px';
newNode.style.width = '100%';
divParent.insertBefore(newNode, currentItem);
}
}
await _t.$nextTick();
_t.getPdf({
id,
title,
backgroundColor: '#fff'
}).then(base64 => {
uni.postMessage({
data: {
pb: base64,
name: title
}
})
_t.navigateBack();
})
},
到了这里,关于vue页面转pdf后分页时文字被横向割裂的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!