2014-02-27 4 views
2

jspdf 라이브러리을 사용하면 성공하지 못하고 고민하고 있습니다. html 페이지를 pdf 파일로 내보내려면 다음을 수행하십시오. 여기에도 비슷한 질문 하나 있지만 나쁜 대답이 있습니다. 문제는 UTF-8 문자입니다. 모든 문서를 utf8로 만들었습니다. 이 라이브러리 (parall.ax/products/jspdf)를 š, č, í와 같은 문자를 pdf에 삽입하려면 어떻게해야합니까?jsPDF 라이브러리는 pdf에 utf8 문자를 삽입 할 수 없습니다

다음은이 문제 (http://balkanex.info/test/start.html)를 시도하거나 아래 코드에서 살펴본 후 링크로 이동하는 링크입니다. 나는 로컬 서버를 만들고있어 사용자 서버의 이점을 얻을 수 없다고 말해야한다.

<!doctype> 
<html> 
<head> 
<meta charset="utf-8"> 
    <script type="text/javascript" src="runner.js" charset="utf-8"></script> 
    <script type="text/javascript" src="script.js" charset="utf-8"></script> 
    <script type="text/javascript" src="jspdf/jquery/jquery-1.11.0.min.js"></script> 
    <script type="text/javascript" src="jspdf/jspdf.js"></script> 
    <script type="text/javascript" src="jspdf/libs/Deflate/adler32cs.js"></script> 
    <script type="text/javascript" src="jspdf/libs/FileSaver.js/FileSaver.js"></script> 
    <script type="text/javascript" src="jspdf/libs/Blob.js/BlobBuilder.js"></script> 
    <script type="text/javascript" src="jspdf/jspdf.plugin.addimage.js"></script> 
    <script type="text/javascript" src="jspdf/jspdf.plugin.standard_fonts_metrics.js"> 
    </script> 
    <script type="text/javascript" src="jspdf/jspdf.plugin.split_text_to_size.js"> </script> 
    <script type="text/javascript" src="jspdf/jspdf.plugin.from_html.js"></script> 
</head> 

<body> 
<input type="button" id="btn" value="PROCEED TO THE NEX PAGE" onClick="run();pdf();"> 
</body> 

</html> 

runner.js

function run() { 
    document.write('<div id="id1"><input type="text" id="name" value="Čimoki Šitano"></div><br/>'); 
    document.write('<div id="id3">This is the ordinary txt with č and š and ć</div><br/>'); 
    document.write('<button id="pdf">Export in pdf file</button></div>'); 
} 

script.js

function pdf() { 
$(function() { 
    var doc = new jsPDF(); 
    doc.text(35, 25, "Here are the letters š and č and ć and ž"); 
    var specialElementHandlers = { 
     'body': function (element, renderer) { 
      return true; 
     }}; 
    $('#pdf').click(function() { 
     doc.fromHTML($('#id3').html(), 15, 35, { 
      'width': 170, 
       'elementHandlers': specialElementHandlers 
     }); 
     doc.save('sample.pdf'); 
    }); 
}); 
} 

답변

2

이 라이브러리는 이러한 문자 중 일부를 지원하지 않습니다. 그리고 개발자는 곧 액세스 할 수 있다고 말했다.

그러나 이러한 문자를 사용하려면 문제가있는 문자를 대체 할 이미지를 만들 수 있습니다.

예를 들어 문자 Č의 이미지를 만든 다음 특정 필드에서이 이미지로 문자를 변경할 수 있습니다. 그것은 꽤 일입니다. 따라서 라이브러리를 변경하는 것이 좋습니다.

+0

개발자 중 한 명이 "일어날 확률이 낮습니다"라고 말하지 않았습니다. 오프라인 세대를위한 대체 라이브러리는 무엇입니까? – liftarn

0

jsPDF은 ASCII 범위 밖의 아무것도 지원하지 않습니다. https://github.com/MrRio/jsPDF/issues/12

+0

비록, 내가 생각 해낸 최고의 아이디어는 I로, html2canvas와 문자를 렌더링 이미지로 삽입하는 것입니다 제안 [여기] (http://stackoverflow.com/a/36895120/1093289). –

0

그냥 제안. 독일어 단어의 특수 문자는 Pdf에 이중 점을 그릴 수 있습니다.

코드 :

doc.setFontSize(11);  
doc.text(20, 102, 'Auftragsbestatigung NR. 20140703007121); 
doc.setFontSize(5); 
doc.setTextColor(0, 0, 0); 
doc.text(42.2, 100, '·'); 
doc.text(43.0, 100, '·'); 

실행 :

enter image description here

관련 문제