提问人:José Victor 提问时间:8/20/2023 更新时间:8/20/2023 访问量:62
在jsPDF上使用HTML识别页码时如何应用边距
How apply margin when identify page number using HTML on jsPDF
问:
我正在将 HTML 导出为 PDF,我注意到当它有多个页面时,如果我不使用边距,内容就会被剪切。
我想:
- 通过添加回调函数订阅 jsPDF 的 “addPage” 事件
- 当创建一个页面时(在第一个页面之后,即> 1),然后我会添加一个“margin-top”,这样内容就不会被切断。
图书馆参考:https://github.com/parallax/jsPDF/blob/master/dist/jspdf.es.js#L3562
我的代码如何使用库的示例:
const doc = new jsPDF('p', 'mm', 'a4');
const pdfElement = state.exportContent.get(0);
doc.html(pdfElement, {
autoPaging: 'text',
callback: function (pdf) {
window.open(pdf.output('bloburl'));
},
x: 5,
y: 5,
width: 200, //target width in the PDF document
windowWidth: 900, //window width in CSS pixels
margin: [10, 0, 10, 0], //I don't want this forever and on every page!!!
})
然后我尝试直接添加事件,但没有用:
jsPDF.API.events.push(["addPage", function (addPageData) {
//make something if the page is bigger than one
}]
我尝试使用文件创建回调函数(在window.open之前),并带有以下代码:
var pageCount = doc.internal.getNumberOfPages();
for(i = 1; i < pageCount; i++) {
doc.setPage(i);
doc.setMargin([0, 0, 10, 0]); //problem
}
但是,我遇到了一个问题,因为“setMargin”方法不存在。https://github.com/parallax/jsPDF/blob/master/dist/jspdf.es.js#L15346
如何只在第一页之后添加“margin-top”?(使用 HTML)
我在 Laravel 中使用以下版本:
- “html2canvas”: “^1.0.0-rc.1”,
- “jspdf”: “^2.5.1”,
- “laravel/framework”: “^9.19”,
答: 暂无答案
评论