Если вы посмотрите на исходный код jspdf.debug.js , html.js
имеет опции для смещений x и y.
opt: {
filename: 'file.pdf',
margin: [0, 0, 0, 0],
enableLinks: true,
x: 0,
y: 0,
html2canvas: {},
jsPDF: {}
}
Таким образом, вы можете установить координаты x и y следующим образом:
pdf.html(document.getElementById('html'), {
x: 36,
y: 36,
callback: function () {
// pdf.save('test.pdf');
window.open(pdf.output('bloburl')); // to debug
}
});
К сожалению, я не могу сделать то же самое, изменив margin: [0, 0, 0, 0]
. Похоже, они все еще работают над этой проблемой . Таким образом, краткий ответ НЕ ДАЕТ .
Обходной путь - рассчитать масштаб html2canvas по марже:
let pdf = new jsPDF('p', 'pt', 'a4');
let left = 36; // narrow margin - 12.7 mm
let srcwidth = document.getElementById('html').style.width;
let scale = (595.28 - left * 2) / Math.ceil(srcwidth.replace('px','')); // a4 pageSize 595.28
pdf.html(document.getElementById('html'), {
html2canvas: {
scale: scale // default is window.devicePixelRatio,
},
x: left,
y: 36,
callback: function () {
window.open(pdf.output('bloburl'));
}
});