DataTablesから日本語のPDFを出力する

LINEで送る
Pocket

検索やソートができるテーブルを簡単に作ってくれるjQueryプラグインの「DataTables」。

導入方法も簡単で、使いたいオプションをポチポチ押して最後に出てくるコードをコピペするだけ。しかも公式サイトがシャレオツ。

そのDateTablesのオプションでPDF出力してくれる機能がありますが、デフォルトだと日本語が文字化けしてしまいます。

それを日本語化する手順を紹介します!

 

1.先人たちのあしあとをたどる


こんな話は誰しも経験があるはずで、早速検索するとやはりみなさん困っておられる模様。

しかし、「pdfmake」を日本語化する手順は載っていてもDateTablesから出力するPDFを日本語化する情報がない!

DateTablesも結局pdfmakeを使っているので絶対できるはず!とがんばる。

 

2.手順


①リスペクトすべき先人のGitHubから源真ゴシックが使えるようになるvfs_fonts.jsをとってきてオリジナルのものと置き換えます。

②javascriptでもscriptタグでもいいので以下コードを書きます。

$(function(){
  pdfMake.fonts = {
    GenShin: {
      normal: 'GenShinGothic-Normal-Sub.ttf',
      bold: 'GenShinGothic-Normal-Sub.ttf',
      italics: 'GenShinGothic-Normal-Sub.ttf',
      bolditalics: 'GenShinGothic-Normal-Sub.ttf'
    }
  }

  $('#myTable').DataTable({
    dom: 'Bfrtip',
    buttons: [
      {
        extend: 'pdfHtml5',
        text: 'Save current page',
        customize: function ( doc ) {
          doc.defaultStyle.font= 'GenShin';
        }
      }
    ],
  });
});

ポイントはbuttons内のcustomizeです。

cunstomizeに書けばDataTablesからpdfmakeに渡せるようです。

 

LINEで送る
Pocket

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

*