首页 > 解决方案 > 为什么科尔多瓦不保存jspdf?

问题描述

该代码只能通过从浏览器启动它来工作,而在手机中该按钮不会生成 pdf ......我声明我最近一直在使用 Cordova,也许我无法很好地设置插件.. 任何信息,甚至微不足道,可能有用。购物车表是由使用另一个 hatml 页面上的 dom 的 javascript 代码生成的,我认为几乎可以肯定缺少一些东西来使应用程序将文件存储在设备上,但我不知道要插入什么 .. 还有哪个插件在参考可能..提前感谢大家

<strike>
 <HTML>
    <HEAD>
       <LINK REL="stylesheet" TYPE="text/css" href="style.css"> 
               
     
       <script src="https://cdnjs.cloudflare.com/ajax/libs/jspdf/1.3.2/jspdf.min.js"></script>
      <script src="js/carrello.js"></script>
       
    </HEAD>
    
    <BODY>
        <div>
          <h2>Il tuo Ordine</h2>
                 
         <script language=javascript >
  
            carrello = eval(localStorage.carrello);
            document.write("<div id=elenco>");
            tabella(); 
            document.write("</div>");
            totali();
            
         </script>
       </div>
    <br>
    <br>
       <a class="pTab" href=prodotti.html style="text-decoration: none;">Torna ad ordinare</a>
       <br>
       <br> 
       <a class="pTab" href=javascript:svuota() style="text-decoration: none;">Svuota ordine</a>
     <br>
     <br>
     <br>
        <button onclick="scaricaPdf()">crea PDF</button>
    <br>
    <br>
   
      <a href="index.html" style="text-decoration: none;">
        <div class="mybutton1">HOME</div>
    </a>
    </BODY>
      <script> 
       
function scaricaPdf() {
       var doc = new jsPDF();

       var spesaTotale= document.getElementById("totale").innerHTML;
       var x=20; //variabile per i margini
       var y=35; //variabile per le righe
       doc.setFontSize(15);
       doc.text(20,20,'Questo è il tuo ordine:');
       doc.setFontSize(10);
       doc.text(20,30,'Codice'+'  Descrizione Prodotto' +'  Prezzo'+'  Quantità'+'   Totale'); 
       for(var i=0; i<carrello.length; i++){
            y=y+5;
            var codiceProdotto=carrello[i].codice;
            doc.text(x,y,' '+codiceProdotto);
            var descrizioneProdotto = carrello[i].descr;
            doc.text(33,y,''+descrizioneProdotto);
            var prezzoProdotto = carrello[i].prezzo;
            doc.text(68,y,''+prezzoProdotto);
            var quantitaProdotto =carrello[i].qnt;
            doc.text(83,y,''+quantitaProdotto);
            var totProdEuro=carrello[i].prezzo * carrello[i].qnt;
            doc.text(100,y,''+totProdEuro);
         }
       
       
       doc.text(20,200, 'Totale        '+spesaTotale);
       doc.save('Ordine.pdf');
}

       </script>
      
      <script src="cordova.js"></script>
      <script src="js/index.js"></script>
    </HTML>
    

</strike>

标签: javascriptcordova

解决方案


至少据我所知,您不能使用 JSPDF 在手机上保存文件。根据我的经验,我会尝试在线查看 Cordova 文档。例如:https ://cordova.apache.org/docs/en/latest/reference/cordova-plugin-file/#write-to-a-file-

如果您想使用 File 插件,请确保先安装它并阅读文档!https://cordova.apache.org/docs/en/latest/reference/cordova-plugin-file/index.html#installation

似乎也有 Cordova 生成器插件,但我没有任何经验https://www.npmjs.com/package/cordova-pdf-generator

无论哪种方式,我都建议您在没有 jspdf 的情况下重构您的代码。


推荐阅读