1 回答
TA贡献1829条经验 获得超6个赞
首先,您忽略了最后一行中的错误。pdf.OutputFileAndClose返回一个错误,所以你应该检查它:
err := pdf.OutputFileAndClose("test.pdf")
if err != nil {
log.Fatal(err)
}
除此之外,你的第一个例子对我有用。生成的输出如下所示:
这是我使用的代码,您会发现它与您的非常相似:
package main
import (
"log"
"github.com/jung-kurt/gofpdf"
)
func main() {
pdf := gofpdf.New("P", "mm", "A4", "")
pdf.AddFont("Helvetica", "", "helvetica_1251.json")
pdf.AddPage()
pdf.SetFont("Helvetica", "", 16)
tr := pdf.UnicodeTranslatorFromDescriptor("cp1251")
pdf.Cell(15, 50, tr("русский текст"))
err := pdf.OutputFileAndClose("test.pdf")
if err != nil {
log.Println(err)
}
}
对于上面的代码,重要的是要确保helvetica_1251.z,helvetica_1251.json和cp1251.map(来自$GOPATH/src/github.com/jung-kurt/gofpdf/font,或由makefont工具生成)都在当前目录中。如果您可以确认这对您有用,您可以继续将它们移动到字体目录中并相应地更改代码。我最好的猜测是,您可能会默默地忽略有关这些文件之一的错误警告。
PS 我运行的是 Mac OS X。如果您在另一个系统上,请确保您安装了支持西里尔字符的 Helvetica 版本。
更新
对于将来遇到此问题的其他人,我想在此处添加最终解决方案。从下面的评论:
感谢 jung-kurt 我找到了解决方案。您可以通过添加 pdf.SetCompression(true) 来避免 Windows 上的此错误 – Timur Shahmuratov
- 1 回答
- 0 关注
- 252 浏览
添加回答
举报