javascript - jsPDF 保存文件的方法不起作用

标签 javascript jquery node.js jspdf

我已经花了四天时间试图解决一个问题,这个问题一开始看起来就像是一个 child 子的游戏:我正在尝试使用 jsPDF 库保存文件。不打印它,这已经完成了。

这是我的 HTML:

<!DOCTYPE html>
<html manifest="offline.appcache">
<head>
<meta charset="UTF-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" />
<title>New project</title>

<!-- Allow fullscreen mode on iOS devices. (These are Apple specific meta tags.) -->
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0, user-scalable=no, minimal-ui" />
<meta name="apple-mobile-web-app-capable" content="yes" />
<meta name="apple-mobile-web-app-status-bar-style" content="black" />
<link rel="apple-touch-icon" sizes="256x256" href="icon-256.png" />
<meta name="HandheldFriendly" content="true" />

<!-- Chrome for Android web app tags -->
<meta name="mobile-web-app-capable" content="yes" />
<link rel="shortcut icon" sizes="256x256" href="icon-256.png" />

<script src="script/jquery-2.1.0.min.js"></script>

<script type="text/javascript" src="script/jspdf.js"></script>
<script type="text/javascript" src="script/libs/base64.js"></script>
<script type="text/javascript" src="script/libs/sprintf.js"></script>

 <script type="text/javascript" src="script/jspdf.js"></script>
 <script type="text/javascript" src="script/jspdf.plugin.standard_fonts_metrics.js"></script> 
 <script type="text/javascript" src="script/jspdf.plugin.split_text_to_size.js"></script>               
 <script type="text/javascript" src="script/jspdf.plugin.from_html.js"></script>
 <script type="text/javascript" src="script/FileSaver.js"></script>

 <!-- The CSS -->   
 <style type="text/css">
    p
    {
    font-size: 18px;

    }
    #container{
    width: 800px;
    height: 500px;
    background-color: red;
    }
 </style>   

<!-- The javascript -->     
<script>
function print()
{
var doc = new jsPDF();
doc.text(20, 20, 'Hello world.');
doc.output('datauri');
}

function save()
{
var doc = new jsPDF();
doc.text(20, 20, 'Hello world.');
doc.save('nombre_example.pdf');
}

</script>
</head> 

<body> 

<input type="button" value="Print" height="50px" width="50px" Onclick="print()">
<input type="button" value="Save" height="50px" width="50px" Onclick="save()">
<div id="container">
    <p>
    HOLA <br>
    HOLA <br>HOLA <br>HOLA <br>HOLA <br>HOLA <br>HOLA <br>HOLA <br>HOLA <br>HOLA <br>HOLA <br>HOLA     <br>HOLA <br>HOLA <br>HOLA <br>HOLA <br>HOLA <br>HOLA <br>HOLA <br>
    </p>
</div>

 </body> 
 </html>

然后,当我单击“保存”按钮时,我可以在 javacript 控制台上读取:

Uncaught TypeError: Object #<Object> has no method 'save' index.html:58

我附加到项目的 JavaScript 文件列表是:

  1. FileSaver.js
  2. jquery-2.1.0.min.js
  3. jspdf.js
  4. jspdf.plugin.addimage.js
  5. jspdf.plugin.autoprint.js
  6. jspdf.plugin.cell.js
  7. jspdf.plugin.from_html.js
  8. jspdf.plugin.javascript.js
  9. jspdf.plugin.png_support.js
  10. jspdf.plugin.sillysvgrenderer.js
  11. jspdf.plugin.split_text_to_size.js
  12. jspdf.plugin.standard_fonts_metrics.js
  13. jspdf.plugin.total_pages.js

和库:

  1. base64.js
  2. sprintf.js

所以,在显示所有这些信息后,我的问题是:为什么我不能使保存按钮正常工作?

有什么想法吗?

最佳答案

尝试仅添加这两个脚本文件并查看

<script type="text/javascript" src="script/jspdf.js"></script>
<script type="text/javascript" src="script/FileSaver.js"></script>

此外,为什么要添加 jspdf.js 文件两次......

关于javascript - jsPDF 保存文件的方法不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22468738/

相关文章:

javascript - 纯 Javascript - 单击按钮/输入键时将文本输入的值添加到 <li>

jquery - 动态生成控件

jquery - 使用 jquery 或 ajax 显示/隐藏内容

node.js - 更新 Mongoose 架构后,新输入的字段不会插入已创建的集合中

如果数组为空,JavaScript reduce 返回 null

javascript - 将单页 Angular 应用程序模板集成到 Sails.js 中

javascript - Bootstrap 表单中日期和时间字段的 jQuery 验证

javascript - 在 php 中刷新时,变量在上一页的查询字符串中丢失

javascript - 展平数组并丢弃嵌套值

javascript - 我正在尝试使用 balloon.js 显示气球