JsPDF, как получить переменную JavaScript - PullRequest
0 голосов
/ 11 ноября 2018

Вот что я хотел бы сделать:

  • Я хотел бы напечатать значение, полученное в результате операции над некоторым полем в форме.

Я успешно использовал jsPDF, но не могу отправить в pdf значение переменной 'CPS', как показано в следующей ошибке кода:

The error is:
Uncaught Error: Type of text must be string or Array. "undefined" is not recognized.
    at Object.H.text (jspdf.min.js:1)
    at demo (forweb.html:11)
    at HTMLInputElement.onclick (forweb.html:46)

Я не могу найти решение везде.

Вот мой код:

<!DOCTYPE HTML> 
<html> 
<script type="text/javascript" src="jspdf.js"></script>
<script type="text/javascript" src="jspdf.min.js"></script>
<script type="text/javascript">

function demo() {

var pdf = new jsPDF()
    var uno_ = document.getElementById("uno").innerHTML;
        pdf.text(10,10),uno_;
    var due_ = document.getElementById("due").innerHTML;
        pdf.text(10,20),chest;
    var chest = document.getElementById("CPS").innerHTML;
        pdf.text(10,30),chest;
                }
function calcola() {    a_uno = document.getElementById("uno").value;
                        a_due = document.getElementById("due").value;
                            var answer =parseFloat(a_uno)+ 
parseFloat(a_due);
                            var CPS = document.getElementById('CPS');
                            CPS.value=answer;
                            }           
</script>

<head> 
<title>print result </title> 
</head> 
<form name="myForm"> 
one
            <select id="uno"  onchange="calcola(this.value)">
            <option value="0"SELECTED>-</option>
            <option value="1">1</option>
            <option value="2">2</option>
            </select></span>
due 
            <select id="due"   onchange="calcola(this.value)">
            <option value="0"SELECTED>-</option>
            <option value="1">1</option>
            <option value="2">2</option>
            </select></span>

<input type="button" name="reset_form" value="Resetta Valori" 
 onclick="this.form.reset(); CPS.value = 0;">           
            CPS = <input type="button" name="CPS" id="CPS"/>

</form>
<input type="button" name="stampa" value="STAMPA" onclick="demo()">
</body> 
</html>

Заранее спасибо за помощь - Иван

1 Ответ

0 голосов
/ 11 ноября 2018

Ваша демонстрационная функция имеет ошибки при вызове текстовой функции JSPDF. Для текстовой функции требуется 3 аргумента, и поскольку после установки позиции вы закрыли скобки, значение переменной никогда не отправлялось.

function demo() {
  var pdf = new jsPDF()
  var uno_ = document.getElementById("uno").value;
  pdf.text(10,10,uno_);
  var due_ = document.getElementById("due").value;
  pdf.text(10,20,due_);
  var chest = document.getElementById("CPS").value;
  pdf.text(10,30,chest);
  pdf.save('my.pdf');
}

Здесь я изменил innerHTML на value, чтобы показать выбранное значение в теге select. Это может исправить ошибку, которую вы получаете. Я также добавил функцию сохранения, чтобы вы могли просмотреть результат

...