使用jsPDF创建单选按钮

时间:2019-04-10 15:52:58

标签: javascript jspdf

我正在使用 jsPdf 在客户端生成pdf,文档确实使我感到困惑。 我想在pdf上插入一个单选按钮。 在官方文档中,有AcroFormRadioButton类,该类列出了此类的构造函数和Function成员,但我无法使用上的构造函数来创建新对象。 Documentation。 我找到了可以创建新单选按钮的代码,但我不明白:

      var doc =  new jsPDF('p', 'pt', [ 595.28,  841.89])
      doc.setFontSize(10);
      doc.text(87.03635, 24.691223, 'Original');
      var radioGroup = new RadioButton();
      radioGroup.V = "/Test";
      radioGroup.Subtype = "Form";
      doc.addField(radioGroup);
      var radioButton1 = radioGroup.createOption("Test");
      radioButton1.Rect = [87.0363, 24.691223, 20, 20];
      radioButton1.AS = "/Test";
      radioGroup.setAppearance(AcroForm.Appearance.RadioButton.Circle);
      doc.save('Test.pdf');

在官方文档中,我找不到RadioButton()构造函数和用于创建单选按钮的方法,我查看了jsPDF的源代码,但存在同样的问题。

我应该在哪里查看jsPdf的文档/源代码,以了解此代码。

1 个答案:

答案 0 :(得分:0)

该演示站点非常有用-http://raw.githack.com/MrRio/jsPDF/master/

在下拉菜单中,选择AcroForms,它会为每个表单元素进行快速而肮脏的设置。

这是简短的版本:

/* global jsPDF */
var doc = new jsPDF();
var {
  RadioButton,
  Appearance
} = jsPDF.AcroForm;


doc.text("RadioGroup:", 50, 165);
var radioGroup = new RadioButton();
radioGroup.value = "Test";
radioGroup.Subtype = "Form";

doc.addField(radioGroup);

var radioButton1 = radioGroup.createOption("Test");
radioButton1.Rect = [50, 170, 30, 10];
radioButton1.AS = "/Test";

var radioButton2 = radioGroup.createOption("Test2");
radioButton2.Rect = [50, 180, 30, 10];

var radioButton3 = radioGroup.createOption("Test3");
radioButton3.Rect = [50, 190, 20, 10];

radioGroup.setAppearance(Appearance.RadioButton.Cross);

我需要稍微改变构造函数的导入和使用:

// import
const jsPDF = require('jspdf');
const doc = jsPDF('p', 'pt'); 

// then using the radio button constructor
var radioGroup = new doc.AcroFormRadioButton();

// and using 'appearance'
radioGroup.setAppearance(doc.AcroFormAppearance.RadioButton.Cross);

希望有帮助。