2012-03-28 97 views
0

我是Javascript和HTML新手,我在PhoneGap中構建應用程序,PDF轉換器是我的項目的一部分。爲此,我已經提到this鏈接,當我安裝設備上的這個程序,並運行它,我得到一個異常ActivityNotFound和logcat的錯誤消息:通過javascript將html轉換爲pdf

03-28 17:41:39.406: E/Cordova(1781): Error loading url data:application/pdf;base64,JVBERi0xLjMKMyAwI.... and so on 

HTML代碼如下:

<!doctype> 
<html> 
<head> 
    <title>jsPDF</title> 
    <style type="text/css"> 
     * { padding: 0; margin: 0; } 
     body { 
      padding: 30px; 
      font-family: Arial, Helvetica, sans-serif; 
     } 
     h1 { 
      margin-bottom: 1em; 
      border-bottom: 1px solid #ccc; 
     } 

     h2 { 
      margin-bottom: 1em; 
      border-bottom: 1px solid #ccc; 
     } 

     pre { 
      border: 1px dotted #ccc; 
      background: #f7f7f7; 
      padding: 10px; 
      margin-bottom: 1em; 
     } 

     h1 { 
      margin-bottom: 0.7em; 
     } 

     h2 { 
      margin-top: 1em; 
     } 
    </style> 
    <script type="text/javascript" src="libs/base64.js"></script> 
    <script type="text/javascript" src="libs/sprintf.js"></script> 
    <script type="text/javascript" src="libs/jspdf.js"></script> 
</head> 

<body> 

<h1>jsPDF Demos</h1> 

<p>Examples for using jsPDF with Data URIs below. Go <a href="http://jspdf.googlecode.com/">back to project homepage</a>.</p> 

<h2>Simple Two-page Text Document</h2> 
<pre>var doc = new jsPDF(); 
doc.text(20, 20, 'Hello world!'); 
doc.text(20, 30, 'This is client-side Javascript, pumping out a PDF.'); 
doc.addPage(); 
doc.text(20, 20, 'Do you like that?'); 

// Output as Data URI 
doc.output('datauri');</pre> 
<a href="javascript:demo1()">Run Code</a> 





<script type="text/javascript"> 

function demo1() { 
    var doc = new jsPDF(); 
    doc.text(20, 20, 'Hello world!'); 
    doc.text(20, 30, 'This is client-side Javascript, pumping out a PDF.'); 
    doc.addPage(); 
    doc.text(20, 20, 'Do you like that?'); 

    // Output as Data URI 
    doc.output('datauri'); 
} 


</script> 


<script type="text/javascript"> 
// Google Analytics 

var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www."); 
document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E")); 
</script> 
<script type="text/javascript"> 
try { 
var pageTracker = _gat._getTracker("UA-2746979-4"); 
pageTracker._trackPageview(); 
} catch(err) {}</script> 
</body> 
</html> 

所以ActivityNotFound例外是因爲我沒有在我的設備上的PDF閱讀器,或者我必須在我的代碼中寫更多東西嗎? 在此先感謝。

+1

*「因此,ActivityNotFound異常是因爲我沒有在我的設備中使用pdf閱讀器,或者我可以爲我的代碼寫更多的東西。」*爲什麼不安裝一個並找出? – 2012-03-28 13:16:44

+0

我已經通過在我的設備中安裝pdf閱讀器進行檢查,但仍未打開。在日誌貓我發現應用程序正在調用隱式意圖android.intent.action.VIEW這意味着應用程序正在打開瀏覽器,並根據我的知識,我知道在android中我們不能打開瀏覽器中的本地文件,所以如何打開生成的PDF文件... – prateek 2012-03-28 13:31:53

回答

0

這是因爲你沒有活動可以處理MIME類型的應用程序/ pdf - 換句話說你是正確的,你需要一個PDF閱讀器。

+0

我hv通過在我的設備中安裝pdf閱讀器來檢查它,但我仍然得到相同的錯誤 – prateek 2012-03-28 13:45:45

+0

好吧 - 如果在哪個瀏覽器中,此代碼是否可以在桌面上運行? - 所有瀏覽器都不支持數據網址,這可能是手機默認瀏覽器的問題。 – 2012-03-28 15:28:48

+0

是這個代碼在桌面上工作,但只在鉻上它不工作在Mozilla和Internet Explorer上。所以現在該怎麼做才能在手機默認瀏覽器中運行...? – prateek 2012-03-29 05:08:36