JSPDF-autotable:未定义 jsPDF
JSPDF-autotable : jsPDF is not defined
尝试提供在 xpages 中生成 pdf 的可能性
我的代码:
<?xml version="1.0" encoding="UTF-8"?>
<xp:view xmlns:xp="http://www.ibm.com/xsp/core">
<xp:this.resources>
<xp:script src="generate.js" clientSide="true"></xp:script>
</xp:this.resources>
<script type='text/javascript' src='js/jspdf.min.js'></script>
<script type="text/javascript" src="js/jspdf.plugin.autotable.js"></script>
<button onclick="generate()">Generate PDF</button>
<xp:br></xp:br>
<xp:br></xp:br>
<table id="basic-table" >
<thead>
<tr>
<th>ID</th>
<th>First name</th>
<th>Last name</th>
<th>Email</th>
<th>Country</th>
<th>IP-address</th>
</tr>
</thead>
<tbody>
<tr>
<td align="right">1</td>
<td>Donna</td>
<td>Moore</td>
<td>dmoore0@furl.net</td>
<td>China</td>
<td>211.56.242.221</td>
</tr>
<tr>
<td align="right">2</td>
<td>Janice</td>
<td>Henry</td>
<td>jhenry1@theatlantic.com</td>
<td>Ukraine</td>
<td>38.36.7.199</td>
</tr>
<tr>
<td align="right">3</td>
<td>Ruth</td>
<td>Wells</td>
<td>rwells2@constantcontact.com</td>
<td>Trinidad and Tobago</td>
<td>19.162.133.184</td>
</tr>
<tr>
<td align="right">4</td>
<td>Jason</td>
<td>Ray</td>
<td>jray3@psu.edu</td>
<td>Brazil</td>
<td>10.68.11.42</td>
</tr>
<tr>
<td align="right">5</td>
<td>Jane</td>
<td>Stephens</td>
<td>jstephens4@go.com</td>
<td>United States</td>
<td>47.32.129.71</td>
</tr>
<tr>
<td align="right">6</td>
<td>Adam</td>
<td>Nichols</td>
<td>anichols5@com.com</td>
<td>Canada</td>
<td>18.186.38.37</td>
</tr>
</tbody>
</table>
<xp:br></xp:br>
</xp:view>
我在控制台中收到错误消息:
未捕获的引用错误:未定义 jsPDF
在生成 (generate:3)
在 HTMLButtonElement.onclick (test_pdf2.xsp:20)
生成@generate:3
onclick @ test_pdf2.xsp:20
和 generate.js 的第 3 行 = var doc = new jsPDF('p','pt');
当我查看源代码时,我可以在 js 下看到 2 个库
怎么了?
jsPDF 使用 AMD。这是使用 AMD 的 jspdf.min.js 源代码的片段:
function"==typeof define&&define.amd?define(e)
不幸的是,AMD 加载与 XPage 中的 Dojo 冲突。参见 this answer on how to remove AMD loading。
您需要通过将 jspdf.min.js 中的代码更改为以下代码来更改 AMD 加载部分:
function"==typeof define&&false?define(e)
jspdf.plugin.autotable.js 也使用 AMD。这里你也需要将 define.amd
替换为 false
。
尝试提供在 xpages 中生成 pdf 的可能性 我的代码:
<?xml version="1.0" encoding="UTF-8"?>
<xp:view xmlns:xp="http://www.ibm.com/xsp/core">
<xp:this.resources>
<xp:script src="generate.js" clientSide="true"></xp:script>
</xp:this.resources>
<script type='text/javascript' src='js/jspdf.min.js'></script>
<script type="text/javascript" src="js/jspdf.plugin.autotable.js"></script>
<button onclick="generate()">Generate PDF</button>
<xp:br></xp:br>
<xp:br></xp:br>
<table id="basic-table" >
<thead>
<tr>
<th>ID</th>
<th>First name</th>
<th>Last name</th>
<th>Email</th>
<th>Country</th>
<th>IP-address</th>
</tr>
</thead>
<tbody>
<tr>
<td align="right">1</td>
<td>Donna</td>
<td>Moore</td>
<td>dmoore0@furl.net</td>
<td>China</td>
<td>211.56.242.221</td>
</tr>
<tr>
<td align="right">2</td>
<td>Janice</td>
<td>Henry</td>
<td>jhenry1@theatlantic.com</td>
<td>Ukraine</td>
<td>38.36.7.199</td>
</tr>
<tr>
<td align="right">3</td>
<td>Ruth</td>
<td>Wells</td>
<td>rwells2@constantcontact.com</td>
<td>Trinidad and Tobago</td>
<td>19.162.133.184</td>
</tr>
<tr>
<td align="right">4</td>
<td>Jason</td>
<td>Ray</td>
<td>jray3@psu.edu</td>
<td>Brazil</td>
<td>10.68.11.42</td>
</tr>
<tr>
<td align="right">5</td>
<td>Jane</td>
<td>Stephens</td>
<td>jstephens4@go.com</td>
<td>United States</td>
<td>47.32.129.71</td>
</tr>
<tr>
<td align="right">6</td>
<td>Adam</td>
<td>Nichols</td>
<td>anichols5@com.com</td>
<td>Canada</td>
<td>18.186.38.37</td>
</tr>
</tbody>
</table>
<xp:br></xp:br>
</xp:view>
我在控制台中收到错误消息:
未捕获的引用错误:未定义 jsPDF 在生成 (generate:3) 在 HTMLButtonElement.onclick (test_pdf2.xsp:20) 生成@generate:3 onclick @ test_pdf2.xsp:20
和 generate.js 的第 3 行 = var doc = new jsPDF('p','pt');
当我查看源代码时,我可以在 js 下看到 2 个库
怎么了?
jsPDF 使用 AMD。这是使用 AMD 的 jspdf.min.js 源代码的片段:
function"==typeof define&&define.amd?define(e)
不幸的是,AMD 加载与 XPage 中的 Dojo 冲突。参见 this answer on how to remove AMD loading。
您需要通过将 jspdf.min.js 中的代码更改为以下代码来更改 AMD 加载部分:
function"==typeof define&&false?define(e)
jspdf.plugin.autotable.js 也使用 AMD。这里你也需要将 define.amd
替换为 false
。