4591


gofpdfを用いてドキュメント中に日本語を含むPDFを出力しようとしましたが、日本語部分だけ文字化けします。

試しに次のコードを実行してPDFを出力してみました。元ネタはhttps://godoc.org/code.google.com/p/gofpdf
のコードです。

[code]

    package main
    
    import (
        "code.google.com/p/gofpdf"
        "os"
    )
    
    func main() {
        pdf := gofpdf.New("P", "mm", "A4", "../font")
        pdf.AddPage()
        pdf.SetFont("Arial", "B", 16)
        pdf.Cell(40, 10, "GoでPDF!")
        pdf.Output(os.Stdout)
    }
    
[/code]

生成したPDFをAdobe Readerで表示させたものが次の画像です。

![生成されたpdf](https://i.stack.imgur.com/RE86E.png)

環境は次の通りです。

  * Mac OS X 10.9.5
  * Go 1.3


CC BY-SA 3.0
2015-01-15T03:57:09.267
4586
2015-01-17T01:53:31.443
2015-01-17T01:53:31.443
33
845
question
go pdf gofpdf
gofpdfでPDF中に日本語を表示させる方法


すぐに試せる環境が手元にないため、確証がない回答となります。申し訳ありません。

`Arial` は英文フォントのため、日本語が出力できていないのではないかと考えられます。  
和文フォントを指定してみてください。


CC BY-SA 3.0
2015-01-15T04:07:54.323
4588
2015-01-15T04:07:54.323
3160
4586
answer


h2so5 さんのおっしゃる通り、gofpdf はまだ UTF-8 文字列に対応していません。

ご質問の主旨からは外れますが、以下は新規のフォントを登録する手順です。

[code]

    $ cd $GOPATH/src/code.google.com/p/gofpdf/makefont
    $ go build makefont.go
    $ ./makefont --dst=../font --embed --enc=../font/[encoding map file] [ttf font file path]
    
[/code]

※ `\--enc` オプションに指定する encoding map に、UTF-8 用のものがまだ用意されていません

上記を実行すると、デフォルトのフォントパスである `gofpdf/font` ディレクトリにフォント情報(*.json, *.ttf など)が置かれます。


CC BY-SA 3.0
2015-01-15T05:20:06.797
4591
2015-01-15T05:25:18.280
2015-01-15T05:25:18.280
4586
answer