在 jspdf.debug.js 中如何更改默认的 PDF 页面宽度和字体大小?

56

我需要在 jspdf.debug.js 中更改默认的 pdf 页面宽度和字体大小。

在 jspdf.debug.js 中如何更改默认值?

4个回答

106
除了使用默认格式之外,您可以按照指定的单位指定任何大小。
例如:
// Document of 210mm wide and 297mm high
new jsPDF('p', 'mm', [297, 210]);
// Document of 297mm wide and 210mm high
new jsPDF('l', 'mm', [297, 210]);
// Document of 5 inch width and 3 inch high
new jsPDF('l', 'in', [3, 5]);

构造函数的第三个参数可以接受一个维度数组。然而,它们不对应于宽度和高度,而是长边和短边(或者反过来)。

你的第一个参数 (landscapeportrait) 决定了哪个是宽度,哪个是高度。

在 GitHub 上的源代码中,你可以看到支持的单位(相对于pt的比例),也可以看到默认的页面格式(以pt为单位的尺寸)


如果我只想更改一页的长度,这是否可能? - user3861247
我不是100%确定这是不可能的(也许有一个插件可以实现),但是浏览源代码使它看起来非常清楚,它不是默认实现的。 - Aidiakapi
你能看看这个问题吗? - user3861247
1
可以的。请查看我的答案:https://stackoverflow.com/questions/41848540/jspdf-change-page-format/46504177#46504177 - zameb
整洁,但在早期,“addPage”还没有接受参数:旧版新版 - Aidiakapi
请参考以下链接,看看是否与您的解决方案相关:https://dev59.com/VWAg5IYBdhLWcg3w1uDy - hesolar

40

文档页面

为设置页面类型,请将值传递给构造函数

jsPDF(orientation, unit, format)创建新的jsPDF文档对象。

实例参数:

orientation其中之一:"portrait"或"landscape"(或快捷方式"p"(默认),"l")

unit当指定坐标时要使用的测量单位。其中之一:"pt"(点),"mm"(默认),"cm","in"

format其中之一:'a3','a4'(默认),'a5','信纸','法律'

为设置字体大小

setFontSize(size)

设置即将出现的文本元素的字体大小。

参数:

{Number} size 字体大小,以点为单位。


17

我的情况是要打印横向(横版)的摘要部分 - 所以:

}).then((canvas) => {
  const img = canvas.toDataURL('image/jpg');
  new jsPDF({
        orientation: 'l', // landscape
        unit: 'pt', // points, pixels won't work properly
        format: [canvas.width, canvas.height] // set needed dimensions for any element
  });
  pdf.addImage(img, 'JPEG', 0, 0, canvas.width, canvas.height);
  pdf.save('your-filename.pdf');
});

带有单位 'pt' 的提示让我更接近了。 - Eli
@Kurkov,您先生是一个彻头彻尾的天才! - Tool
定向是帮助我的关键。即使我们以相反的顺序在数组中声明宽度和高度,如果方向仍然是纵向,它总是将较大的参数作为高度。 - Shashank Bhatt

6

对于任何尝试在React中实现此操作的人,有些细微差别。

// Document of 8.5 inch width and 11 inch high
new jsPDF('p', 'in', [612, 792]);

或者
// Document of 8.5 inch width and 11 inch high
new jsPDF({
        orientation: 'p', 
        unit: 'in', 
        format: [612, 792]
});

当我尝试使用@Aidiakapi的解决方案时,页面非常小。要获取不同尺寸,请将英寸大小乘以72以获得所需的尺寸。例如,我想要8.5,因此8.5 * 72 = 612。 这适用于jspdf@1.5.3。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接