2016-07-13 12 views
2

クライアント側でJavaScriptを使用してPDFファイルを生成したいと考えています。まず、jsPdf APIを使ってみました。しかし、中国語のようなUnicode文字では機能しません。ユニコード対応のJavaScript pdf生成ライブラリ

jspdfを拡張して、UnicodeまたはUnicodeをサポートする他のライブラリをサポートするオプションはありますか。

Pdfmake APIはUnicodeをサポートしていると言いますが、試してもうまくいきませんでした。デモの例では、Unicode文字を配置しています。

私は、PDFを生成するように作成したのNode.jsでpdfkitを使用してみましたが、PDFはPDFに正しく

var PDFDocument = require("pdfkit"); 
var fs = require('fs'); 

var doc = new PDFDocument; 

doc.pipe(fs.createWriteStream('output.pdf')); 

doc.fontSize(15); 
doc.text('Generate PDF! 漢字漢字漢字漢字'); 

doc.end(); 

作成取得されていません!

W [[ "臥[" 臥 "[臥" はまた、私はpdfMake

var fontDescriptors = { 
    Roboto: { 
     normal: 'examples/fonts/Roboto-Regular.ttf', 
     bold: 'examples/fonts/Roboto-Medium.ttf', 
     italics: 'examples/fonts/Roboto-Italic.ttf', 
     bolditalics: 'examples/fonts/Roboto-Italic.ttf' 
    } 
    }; 

    var printer = new pdfMakePrinter(fontDescriptors); 
+0

'Unicodeまたは方法がありますもちろんUnicode'をサポートしている他のライブラリをサポートするjspdfを高めるための任意のオプションがあります。あなたがその変更でそれに貢献することができるようにopensourceされています – llamerr

+0

あなたはこれに関する問題をプロジェクトのどちらかでチェックしようとしましたか? – llamerr

+0

私は新しいライブラリを作成しようとはしませんでしたが、問題を解決するためのライブラリが既に存在するかどうかを調べることを試みました@llamerr – Sumeet

答えて

2

で複数のフォントを追加することができますあなたはそれを言及したので、O Iは、Node.jsのとPDFKitを使用してソリューションを説明しますが、内部でPDFKitを使用するpdfmakeにも適用されます。

ほとんどの場合、これらのライブラリで使用されるデフォルトのフォントでは中国語が使用できません。サポートする必要がある言語に対応したフォントを追加して使用する必要があります。たとえば、pdfmakeと入力すると、デフォルトのフォントとしてRobotoが使用されます。実際には漢字は受け入れられません。

あなたのコードの例を使用して、我々は、コードの1つだけ追加のラインを持つインスタンスのMicrosoft YaHeiフォント(msyh.ttf)を使用して、中国人のためのサポートを追加することができますが:

var PDFDocument = require("pdfkit"); 
var fs = require('fs'); 

var doc = new PDFDocument; 

doc.pipe(fs.createWriteStream('output.pdf')); 

doc.font('fonts/msyh.ttf'); 
doc.fontSize(15); 
doc.text('Generate PDF! 漢字漢字漢字漢字'); 

doc.end(); 

出力は次のようになります。

https://github.com/MrRio/jsPDF#contributing -

PDF Output

+0

ヒンディー語で試したところ、 。すべてのフォントをサポートする方法や、複数のフォントをサポートする方法はありますか? @HiDeo – Sumeet

+0

組み込みフォントはWinANSIエンコーディングのみをサポートしているので、実際にフォントを追加する必要があります。トリックは、複数のフォントやフォントのサブセットを追加することができます。ほとんどのフォントは100,000を超えるスクリプトとUTF-8のシンボルセットのサブセットのみをカバーするので、必要なものを正確に特定し、必要に応じて1つまたは複数のフォントを見つける必要があります。 – HiDeo

+0

私は中国語/ドイツ語/フランス語/英語/アラビア語/ラテン語をサポートしたいと思っていますか?@HiDeo – Sumeet

関連する問題