[{"data":1,"prerenderedAt":1447},["ShallowReactive",2],{"blog-pt-ipaex-gothic-gpdf":3},{"id":4,"title":5,"author":6,"body":9,"date":1411,"description":1412,"draft":1413,"extension":1414,"howTo":1415,"image":1437,"meta":1438,"navigation":86,"path":1439,"seo":1440,"stem":1441,"tags":1442,"updated":1437,"__hash__":1446},"blogPt/pt/blog/009.ipaex-gothic-gpdf.md","Como usar IPAex Gothic no gpdf?",{"name":7,"url":8},"gpdf team","https://gpdf.dev",{"type":10,"value":11,"toc":1400},"minimark",[12,17,35,39,55,59,728,750,754,757,820,823,829,833,836,839,848,880,886,1176,1179,1183,1192,1220,1227,1230,1234,1319,1322,1326,1360,1364,1367,1384,1396],[13,14,16],"h2",{"id":15},"a-pergunta-em-outras-palavras","A pergunta, em outras palavras",[18,19,20,21,28,29,34],"p",{},"Você quer usar a IPAex Gothic — a fonte Gothic proporcional que a ",[22,23,27],"a",{"href":24,"rel":25},"https://moji.or.jp/ipafont/",[26],"nofollow","Information-technology Promotion Agency"," (IPA) do Japão mantém — em um documento ",[22,30,33],{"href":31,"rel":32},"https://github.com/gpdf-dev/gpdf",[26],"gpdf",". Motivos típicos: envios de PDF para o e-Tax, papelada para órgãos governamentais, ou um guia de estilo interno que vive com IPAex desde o início dos anos 2010. Três coisas costumam atrapalhar: qual arquivo pegar, como lidar com a ausência de Bold e o que a IPA Font License realmente te pede.",[13,36,38],{"id":37},"tldr","TL;DR",[18,40,41,42,46,47,50,51,54],{},"Registre ",[43,44,45],"code",{},"ipaexg.ttf"," com ",[43,48,49],{},"gpdf.WithFont(\"IPAexGothic\", bytes)",". Defina como padrão. O negrito precisa ser sintetizado com ",[43,52,53],{},"template.Bold()"," ou pareado com IPAex Mincho, já que IPAex só publica Regular. Mantenha o texto da licença junto do binário.",[13,56,58],{"id":57},"o-exemplo-completo","O exemplo completo",[60,61,66],"pre",{"className":62,"code":63,"language":64,"meta":65,"style":65},"language-go shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","package main\n\nimport (\n    \"log\"\n    \"os\"\n\n    \"github.com/gpdf-dev/gpdf\"\n    \"github.com/gpdf-dev/gpdf/document\"\n    \"github.com/gpdf-dev/gpdf/template\"\n)\n\nfunc main() {\n    font, err := os.ReadFile(\"ipaexg.ttf\")\n    if err != nil {\n        log.Fatal(err)\n    }\n\n    doc := gpdf.NewDocument(\n        gpdf.WithPageSize(gpdf.A4),\n        gpdf.WithMargins(document.UniformEdges(document.Mm(25))),\n        gpdf.WithFont(\"IPAexGothic\", font),\n        gpdf.WithDefaultFont(\"IPAexGothic\", 10.5),\n    )\n\n    page := doc.AddPage()\n    page.AutoRow(func(r *template.RowBuilder) {\n        r.Col(12, func(c *template.ColBuilder) {\n            c.Text(\"請求書\", template.FontSize(24), template.Bold())\n            c.Text(\"令和8年4月17日発行\")\n            c.Text(\"金額: ¥100,000 (税込)\")\n        })\n    })\n\n    data, err := doc.Generate()\n    if err != nil {\n        log.Fatal(err)\n    }\n    if err := os.WriteFile(\"invoice.pdf\", data, 0o644); err != nil {\n        log.Fatal(err)\n    }\n}\n","go","",[43,67,68,81,88,98,110,120,125,135,145,155,161,166,182,220,236,254,260,265,284,307,345,371,396,402,407,426,460,497,545,565,585,591,597,602,623,636,651,656,702,717,722],{"__ignoreMap":65},[69,70,73,77],"span",{"class":71,"line":72},"line",1,[69,74,76],{"class":75},"sMK4o","package",[69,78,80],{"class":79},"sBMFI"," main\n",[69,82,84],{"class":71,"line":83},2,[69,85,87],{"emptyLinePlaceholder":86},true,"\n",[69,89,91,95],{"class":71,"line":90},3,[69,92,94],{"class":93},"s7zQu","import",[69,96,97],{"class":75}," (\n",[69,99,101,104,107],{"class":71,"line":100},4,[69,102,103],{"class":75},"    \"",[69,105,106],{"class":79},"log",[69,108,109],{"class":75},"\"\n",[69,111,113,115,118],{"class":71,"line":112},5,[69,114,103],{"class":75},[69,116,117],{"class":79},"os",[69,119,109],{"class":75},[69,121,123],{"class":71,"line":122},6,[69,124,87],{"emptyLinePlaceholder":86},[69,126,128,130,133],{"class":71,"line":127},7,[69,129,103],{"class":75},[69,131,132],{"class":79},"github.com/gpdf-dev/gpdf",[69,134,109],{"class":75},[69,136,138,140,143],{"class":71,"line":137},8,[69,139,103],{"class":75},[69,141,142],{"class":79},"github.com/gpdf-dev/gpdf/document",[69,144,109],{"class":75},[69,146,148,150,153],{"class":71,"line":147},9,[69,149,103],{"class":75},[69,151,152],{"class":79},"github.com/gpdf-dev/gpdf/template",[69,154,109],{"class":75},[69,156,158],{"class":71,"line":157},10,[69,159,160],{"class":75},")\n",[69,162,164],{"class":71,"line":163},11,[69,165,87],{"emptyLinePlaceholder":86},[69,167,169,172,176,179],{"class":71,"line":168},12,[69,170,171],{"class":75},"func",[69,173,175],{"class":174},"s2Zo4"," main",[69,177,178],{"class":75},"()",[69,180,181],{"class":75}," {\n",[69,183,185,189,192,195,198,201,204,207,210,213,216,218],{"class":71,"line":184},13,[69,186,188],{"class":187},"sTEyZ","    font",[69,190,191],{"class":75},",",[69,193,194],{"class":187}," err ",[69,196,197],{"class":75},":=",[69,199,200],{"class":187}," os",[69,202,203],{"class":75},".",[69,205,206],{"class":174},"ReadFile",[69,208,209],{"class":75},"(",[69,211,212],{"class":75},"\"",[69,214,45],{"class":215},"sfazB",[69,217,212],{"class":75},[69,219,160],{"class":75},[69,221,223,226,228,231,234],{"class":71,"line":222},14,[69,224,225],{"class":93},"    if",[69,227,194],{"class":187},[69,229,230],{"class":75},"!=",[69,232,233],{"class":75}," nil",[69,235,181],{"class":75},[69,237,239,242,244,247,249,252],{"class":71,"line":238},15,[69,240,241],{"class":187},"        log",[69,243,203],{"class":75},[69,245,246],{"class":174},"Fatal",[69,248,209],{"class":75},[69,250,251],{"class":187},"err",[69,253,160],{"class":75},[69,255,257],{"class":71,"line":256},16,[69,258,259],{"class":75},"    }\n",[69,261,263],{"class":71,"line":262},17,[69,264,87],{"emptyLinePlaceholder":86},[69,266,268,271,273,276,278,281],{"class":71,"line":267},18,[69,269,270],{"class":187},"    doc ",[69,272,197],{"class":75},[69,274,275],{"class":187}," gpdf",[69,277,203],{"class":75},[69,279,280],{"class":174},"NewDocument",[69,282,283],{"class":75},"(\n",[69,285,287,290,292,295,297,299,301,304],{"class":71,"line":286},19,[69,288,289],{"class":187},"        gpdf",[69,291,203],{"class":75},[69,293,294],{"class":174},"WithPageSize",[69,296,209],{"class":75},[69,298,33],{"class":187},[69,300,203],{"class":75},[69,302,303],{"class":187},"A4",[69,305,306],{"class":75},"),\n",[69,308,310,312,314,317,319,322,324,327,329,331,333,336,338,342],{"class":71,"line":309},20,[69,311,289],{"class":187},[69,313,203],{"class":75},[69,315,316],{"class":174},"WithMargins",[69,318,209],{"class":75},[69,320,321],{"class":187},"document",[69,323,203],{"class":75},[69,325,326],{"class":174},"UniformEdges",[69,328,209],{"class":75},[69,330,321],{"class":187},[69,332,203],{"class":75},[69,334,335],{"class":174},"Mm",[69,337,209],{"class":75},[69,339,341],{"class":340},"sbssI","25",[69,343,344],{"class":75},"))),\n",[69,346,348,350,352,355,357,359,362,364,366,369],{"class":71,"line":347},21,[69,349,289],{"class":187},[69,351,203],{"class":75},[69,353,354],{"class":174},"WithFont",[69,356,209],{"class":75},[69,358,212],{"class":75},[69,360,361],{"class":215},"IPAexGothic",[69,363,212],{"class":75},[69,365,191],{"class":75},[69,367,368],{"class":187}," font",[69,370,306],{"class":75},[69,372,374,376,378,381,383,385,387,389,391,394],{"class":71,"line":373},22,[69,375,289],{"class":187},[69,377,203],{"class":75},[69,379,380],{"class":174},"WithDefaultFont",[69,382,209],{"class":75},[69,384,212],{"class":75},[69,386,361],{"class":215},[69,388,212],{"class":75},[69,390,191],{"class":75},[69,392,393],{"class":340}," 10.5",[69,395,306],{"class":75},[69,397,399],{"class":71,"line":398},23,[69,400,401],{"class":75},"    )\n",[69,403,405],{"class":71,"line":404},24,[69,406,87],{"emptyLinePlaceholder":86},[69,408,410,413,415,418,420,423],{"class":71,"line":409},25,[69,411,412],{"class":187},"    page ",[69,414,197],{"class":75},[69,416,417],{"class":187}," doc",[69,419,203],{"class":75},[69,421,422],{"class":174},"AddPage",[69,424,425],{"class":75},"()\n",[69,427,429,432,434,437,440,444,447,450,452,455,458],{"class":71,"line":428},26,[69,430,431],{"class":187},"    page",[69,433,203],{"class":75},[69,435,436],{"class":174},"AutoRow",[69,438,439],{"class":75},"(func(",[69,441,443],{"class":442},"sHdIc","r",[69,445,446],{"class":75}," *",[69,448,449],{"class":79},"template",[69,451,203],{"class":75},[69,453,454],{"class":79},"RowBuilder",[69,456,457],{"class":75},")",[69,459,181],{"class":75},[69,461,463,466,468,471,473,476,478,481,484,486,488,490,493,495],{"class":71,"line":462},27,[69,464,465],{"class":187},"        r",[69,467,203],{"class":75},[69,469,470],{"class":174},"Col",[69,472,209],{"class":75},[69,474,475],{"class":340},"12",[69,477,191],{"class":75},[69,479,480],{"class":75}," func(",[69,482,483],{"class":442},"c",[69,485,446],{"class":75},[69,487,449],{"class":79},[69,489,203],{"class":75},[69,491,492],{"class":79},"ColBuilder",[69,494,457],{"class":75},[69,496,181],{"class":75},[69,498,500,503,505,508,510,512,515,517,519,522,524,527,529,532,535,537,539,542],{"class":71,"line":499},28,[69,501,502],{"class":187},"            c",[69,504,203],{"class":75},[69,506,507],{"class":174},"Text",[69,509,209],{"class":75},[69,511,212],{"class":75},[69,513,514],{"class":215},"請求書",[69,516,212],{"class":75},[69,518,191],{"class":75},[69,520,521],{"class":187}," template",[69,523,203],{"class":75},[69,525,526],{"class":174},"FontSize",[69,528,209],{"class":75},[69,530,531],{"class":340},"24",[69,533,534],{"class":75},"),",[69,536,521],{"class":187},[69,538,203],{"class":75},[69,540,541],{"class":174},"Bold",[69,543,544],{"class":75},"())\n",[69,546,548,550,552,554,556,558,561,563],{"class":71,"line":547},29,[69,549,502],{"class":187},[69,551,203],{"class":75},[69,553,507],{"class":174},[69,555,209],{"class":75},[69,557,212],{"class":75},[69,559,560],{"class":215},"令和8年4月17日発行",[69,562,212],{"class":75},[69,564,160],{"class":75},[69,566,568,570,572,574,576,578,581,583],{"class":71,"line":567},30,[69,569,502],{"class":187},[69,571,203],{"class":75},[69,573,507],{"class":174},[69,575,209],{"class":75},[69,577,212],{"class":75},[69,579,580],{"class":215},"金額: ¥100,000 (税込)",[69,582,212],{"class":75},[69,584,160],{"class":75},[69,586,588],{"class":71,"line":587},31,[69,589,590],{"class":75},"        })\n",[69,592,594],{"class":71,"line":593},32,[69,595,596],{"class":75},"    })\n",[69,598,600],{"class":71,"line":599},33,[69,601,87],{"emptyLinePlaceholder":86},[69,603,605,608,610,612,614,616,618,621],{"class":71,"line":604},34,[69,606,607],{"class":187},"    data",[69,609,191],{"class":75},[69,611,194],{"class":187},[69,613,197],{"class":75},[69,615,417],{"class":187},[69,617,203],{"class":75},[69,619,620],{"class":174},"Generate",[69,622,425],{"class":75},[69,624,626,628,630,632,634],{"class":71,"line":625},35,[69,627,225],{"class":93},[69,629,194],{"class":187},[69,631,230],{"class":75},[69,633,233],{"class":75},[69,635,181],{"class":75},[69,637,639,641,643,645,647,649],{"class":71,"line":638},36,[69,640,241],{"class":187},[69,642,203],{"class":75},[69,644,246],{"class":174},[69,646,209],{"class":75},[69,648,251],{"class":187},[69,650,160],{"class":75},[69,652,654],{"class":71,"line":653},37,[69,655,259],{"class":75},[69,657,659,661,663,665,667,669,672,674,676,679,681,683,686,688,691,694,696,698,700],{"class":71,"line":658},38,[69,660,225],{"class":93},[69,662,194],{"class":187},[69,664,197],{"class":75},[69,666,200],{"class":187},[69,668,203],{"class":75},[69,670,671],{"class":174},"WriteFile",[69,673,209],{"class":75},[69,675,212],{"class":75},[69,677,678],{"class":215},"invoice.pdf",[69,680,212],{"class":75},[69,682,191],{"class":75},[69,684,685],{"class":187}," data",[69,687,191],{"class":75},[69,689,690],{"class":340}," 0o644",[69,692,693],{"class":75},");",[69,695,194],{"class":187},[69,697,230],{"class":75},[69,699,233],{"class":75},[69,701,181],{"class":75},[69,703,705,707,709,711,713,715],{"class":71,"line":704},39,[69,706,241],{"class":187},[69,708,203],{"class":75},[69,710,246],{"class":174},[69,712,209],{"class":75},[69,714,251],{"class":187},[69,716,160],{"class":75},[69,718,720],{"class":71,"line":719},40,[69,721,259],{"class":75},[69,723,725],{"class":71,"line":724},41,[69,726,727],{"class":75},"}\n",[18,729,730,731,734,735,739,740,742,743,746,747,203],{},"Baixe ",[43,732,733],{},"IPAex00401.zip"," em ",[22,736,738],{"href":24,"rel":737},[26],"moji.or.jp/ipafont",", extraia ",[43,741,45],{},", coloque ao lado de ",[43,744,745],{},"main.go"," e rode ",[43,748,749],{},"go run main.go",[13,751,753],{"id":752},"qual-arquivo-ipa-é-o-certo","Qual arquivo IPA é o certo",[18,755,756],{},"Ao abrir o zip, você tem três TTFs mais uma licença. As pessoas confundem constantemente:",[758,759,760,773],"table",{},[761,762,763],"thead",{},[764,765,766,770],"tr",{},[767,768,769],"th",{},"Arquivo",[767,771,772],{},"O que é",[774,775,776,790,803],"tbody",{},[764,777,778,783],{},[779,780,781],"td",{},[43,782,45],{},[779,784,785,789],{},[786,787,788],"strong",{},"IPAex Gothic"," — sans-serif, latino proporcional. Para a maioria dos documentos.",[764,791,792,797],{},[779,793,794],{},[43,795,796],{},"ipaexm.ttf",[779,798,799,802],{},[786,800,801],{},"IPAex Mincho"," — serif, latino proporcional. Corpo de textos longos ou pareada com a Gothic para ênfase.",[764,804,805,810],{},[779,806,807],{},[43,808,809],{},"ipag.ttf",[779,811,812,815,816,819],{},[786,813,814],{},"IPA Gothic"," (sem \"ex\") — sans-serif, ",[786,817,818],{},"latino monoespaçado",". Raramente é o que você quer hoje.",[18,821,822],{},"O \"ex\" em IPAex significa \"extended proportional\". As fontes IPA originais colocavam os caracteres latinos em grades CJK de largura fixa, fazendo o texto misto J/E parecer esticado. IPAex corrige isso tornando os caracteres latinos proporcionais enquanto mantém os CJK na grade normal. Para qualquer documento com palavras em inglês, URLs ou números — ou seja, basicamente todo documento de negócio no Japão — você quer IPAex.",[18,824,825,826,828],{},"Se você herdou um projeto que usa ",[43,827,809],{}," porque o engenheiro que escolheu a fonte fez isso antes de IPAex existir (IPA Gothic original: 2003, IPAex: 2010), a troca é um swap de arquivo. Mesmo nome de família, tudo igual.",[13,830,832],{"id":831},"sem-arquivo-bold-e-agora","Sem arquivo Bold — e agora?",[18,834,835],{},"IPAex publica exatamente um peso por família: Regular. É incomum comparado aos nove pesos da Noto Sans JP, e é o principal motivo pelo qual as pessoas olham para IPAex e decidem que não dá para usar.",[18,837,838],{},"Duas formas de lidar no gpdf:",[18,840,841,844,845,847],{},[786,842,843],{},"Negrito sintetizado."," ",[43,846,53],{}," aplica um traço sobre os glifos Regular. Tipograficamente é uma trapaça — pesos bold reais têm contornos redesenhados com traços mais grossos, não Regular traçado duas vezes. Mas para títulos de fatura e rótulos de tabela a 10 pt ou mais, o bold sintetizado é indistinguível para a maioria dos leitores:",[60,849,851],{"className":62,"code":850,"language":64,"meta":65,"style":65},"c.Text(\"合計金額\", template.Bold())\n",[43,852,853],{"__ignoreMap":65},[69,854,855,857,859,861,863,865,868,870,872,874,876,878],{"class":71,"line":72},[69,856,483],{"class":187},[69,858,203],{"class":75},[69,860,507],{"class":174},[69,862,209],{"class":75},[69,864,212],{"class":75},[69,866,867],{"class":215},"合計金額",[69,869,212],{"class":75},[69,871,191],{"class":75},[69,873,521],{"class":187},[69,875,203],{"class":75},[69,877,541],{"class":174},[69,879,544],{"class":75},[18,881,882,885],{},[786,883,884],{},"Pareamento com IPAex Mincho."," O recurso clássico da tipografia japonesa para ênfase não é negritar — é alternar serif/sans. Registre as duas famílias:",[60,887,889],{"className":62,"code":888,"language":64,"meta":65,"style":65},"gothic, _ := os.ReadFile(\"ipaexg.ttf\")\nmincho, _ := os.ReadFile(\"ipaexm.ttf\")\n\ndoc := gpdf.NewDocument(\n    gpdf.WithFont(\"IPAexGothic\", gothic),\n    gpdf.WithFont(\"IPAexMincho\", mincho),\n    gpdf.WithDefaultFont(\"IPAexGothic\", 10.5),\n)\n\npage.AutoRow(func(r *template.RowBuilder) {\n    r.Col(12, func(c *template.ColBuilder) {\n        c.Text(\"請求書\", template.FontFamily(\"IPAexMincho\"), template.FontSize(24))\n        c.Text(\"ご請求内容は下記の通りです。\")\n    })\n})\n",[43,890,891,919,946,950,965,989,1013,1035,1039,1043,1068,1099,1148,1167,1171],{"__ignoreMap":65},[69,892,893,896,898,901,903,905,907,909,911,913,915,917],{"class":71,"line":72},[69,894,895],{"class":187},"gothic",[69,897,191],{"class":75},[69,899,900],{"class":187}," _ ",[69,902,197],{"class":75},[69,904,200],{"class":187},[69,906,203],{"class":75},[69,908,206],{"class":174},[69,910,209],{"class":75},[69,912,212],{"class":75},[69,914,45],{"class":215},[69,916,212],{"class":75},[69,918,160],{"class":75},[69,920,921,924,926,928,930,932,934,936,938,940,942,944],{"class":71,"line":83},[69,922,923],{"class":187},"mincho",[69,925,191],{"class":75},[69,927,900],{"class":187},[69,929,197],{"class":75},[69,931,200],{"class":187},[69,933,203],{"class":75},[69,935,206],{"class":174},[69,937,209],{"class":75},[69,939,212],{"class":75},[69,941,796],{"class":215},[69,943,212],{"class":75},[69,945,160],{"class":75},[69,947,948],{"class":71,"line":90},[69,949,87],{"emptyLinePlaceholder":86},[69,951,952,955,957,959,961,963],{"class":71,"line":100},[69,953,954],{"class":187},"doc ",[69,956,197],{"class":75},[69,958,275],{"class":187},[69,960,203],{"class":75},[69,962,280],{"class":174},[69,964,283],{"class":75},[69,966,967,970,972,974,976,978,980,982,984,987],{"class":71,"line":112},[69,968,969],{"class":187},"    gpdf",[69,971,203],{"class":75},[69,973,354],{"class":174},[69,975,209],{"class":75},[69,977,212],{"class":75},[69,979,361],{"class":215},[69,981,212],{"class":75},[69,983,191],{"class":75},[69,985,986],{"class":187}," gothic",[69,988,306],{"class":75},[69,990,991,993,995,997,999,1001,1004,1006,1008,1011],{"class":71,"line":122},[69,992,969],{"class":187},[69,994,203],{"class":75},[69,996,354],{"class":174},[69,998,209],{"class":75},[69,1000,212],{"class":75},[69,1002,1003],{"class":215},"IPAexMincho",[69,1005,212],{"class":75},[69,1007,191],{"class":75},[69,1009,1010],{"class":187}," mincho",[69,1012,306],{"class":75},[69,1014,1015,1017,1019,1021,1023,1025,1027,1029,1031,1033],{"class":71,"line":127},[69,1016,969],{"class":187},[69,1018,203],{"class":75},[69,1020,380],{"class":174},[69,1022,209],{"class":75},[69,1024,212],{"class":75},[69,1026,361],{"class":215},[69,1028,212],{"class":75},[69,1030,191],{"class":75},[69,1032,393],{"class":340},[69,1034,306],{"class":75},[69,1036,1037],{"class":71,"line":137},[69,1038,160],{"class":75},[69,1040,1041],{"class":71,"line":147},[69,1042,87],{"emptyLinePlaceholder":86},[69,1044,1045,1048,1050,1052,1054,1056,1058,1060,1062,1064,1066],{"class":71,"line":157},[69,1046,1047],{"class":187},"page",[69,1049,203],{"class":75},[69,1051,436],{"class":174},[69,1053,439],{"class":75},[69,1055,443],{"class":442},[69,1057,446],{"class":75},[69,1059,449],{"class":79},[69,1061,203],{"class":75},[69,1063,454],{"class":79},[69,1065,457],{"class":75},[69,1067,181],{"class":75},[69,1069,1070,1073,1075,1077,1079,1081,1083,1085,1087,1089,1091,1093,1095,1097],{"class":71,"line":163},[69,1071,1072],{"class":187},"    r",[69,1074,203],{"class":75},[69,1076,470],{"class":174},[69,1078,209],{"class":75},[69,1080,475],{"class":340},[69,1082,191],{"class":75},[69,1084,480],{"class":75},[69,1086,483],{"class":442},[69,1088,446],{"class":75},[69,1090,449],{"class":79},[69,1092,203],{"class":75},[69,1094,492],{"class":79},[69,1096,457],{"class":75},[69,1098,181],{"class":75},[69,1100,1101,1104,1106,1108,1110,1112,1114,1116,1118,1120,1122,1125,1127,1129,1131,1133,1135,1137,1139,1141,1143,1145],{"class":71,"line":168},[69,1102,1103],{"class":187},"        c",[69,1105,203],{"class":75},[69,1107,507],{"class":174},[69,1109,209],{"class":75},[69,1111,212],{"class":75},[69,1113,514],{"class":215},[69,1115,212],{"class":75},[69,1117,191],{"class":75},[69,1119,521],{"class":187},[69,1121,203],{"class":75},[69,1123,1124],{"class":174},"FontFamily",[69,1126,209],{"class":75},[69,1128,212],{"class":75},[69,1130,1003],{"class":215},[69,1132,212],{"class":75},[69,1134,534],{"class":75},[69,1136,521],{"class":187},[69,1138,203],{"class":75},[69,1140,526],{"class":174},[69,1142,209],{"class":75},[69,1144,531],{"class":340},[69,1146,1147],{"class":75},"))\n",[69,1149,1150,1152,1154,1156,1158,1160,1163,1165],{"class":71,"line":184},[69,1151,1103],{"class":187},[69,1153,203],{"class":75},[69,1155,507],{"class":174},[69,1157,209],{"class":75},[69,1159,212],{"class":75},[69,1161,1162],{"class":215},"ご請求内容は下記の通りです。",[69,1164,212],{"class":75},[69,1166,160],{"class":75},[69,1168,1169],{"class":71,"line":222},[69,1170,596],{"class":75},[69,1172,1173],{"class":71,"line":238},[69,1174,1175],{"class":75},"})\n",[18,1177,1178],{},"É o visual que se vê em convites de casamento e relatórios formais japoneses — Mincho para títulos, Gothic para corpo. Se seu documento vai para um órgão público, essa é provavelmente a combinação que eles esperam.",[13,1180,1182],{"id":1181},"a-ipa-font-license-rapidamente","A IPA Font License, rapidamente",[18,1184,1185,1186,1191],{},"IPAex não é SIL OFL. É a ",[22,1187,1190],{"href":1188,"rel":1189},"https://opensource.org/licenses/IPA",[26],"IPA Font License Agreement v1.0",", aprovada pela OSI e em geral permissiva, mas com duas exigências que vale nomear:",[1193,1194,1195,1210],"ol",{},[1196,1197,1198,1201,1202,1205,1206,1209],"li",{},[786,1199,1200],{},"Preserve o texto da licença"," onde quer que você distribua o binário da fonte. Se você ",[43,1203,1204],{},"//go:embed"," o TTF, empacote também o arquivo de licença. Um ",[43,1207,1208],{},"LICENSES/IPA-FONT-1.0.txt"," na raiz do projeto atende a maior parte dos casos.",[1196,1211,1212,1215,1216,1219],{},[786,1213,1214],{},"Não renomeie a fonte."," Se você modificar o próprio TTF e redistribuir, o derivado precisa ter um nome diferente (sem conter \"IPA\" ou \"IPAex\"). Atenção: essa restrição ",[786,1217,1218],{},"não"," se aplica ao subset de glifos feito em tempo de render. O artigo 3.4 da licença isenta explicitamente os documentos de saída criados com a fonte dessa restrição de nomes.",[18,1221,1222,1223,1226],{},"Ou seja: o subset do gpdf em ",[43,1224,1225],{},"doc.Generate()"," está OK. O subset da fonte que fica embutido no seu PDF não precisa de outro nome e não dispara as cláusulas de \"Derivative Font Program\". Você está criando um documento, não redistribuindo uma fonte.",[18,1228,1229],{},"Um detalhe para quem contribui com o gpdf em si: evitamos colocar IPAex no repositório do gpdf (os testes de golden usam fontes SIL OFL como Noto) justamente para que usuários a jusante não precisem pensar na compatibilidade de licença com o LICENSE raiz do próprio projeto. Se você usa IPAex na sua aplicação, a decisão é do seu projeto, não nossa.",[13,1231,1233],{"id":1232},"quando-escolher-ipaex-no-lugar-de-noto-sans-jp","Quando escolher IPAex no lugar de Noto Sans JP",[758,1235,1236,1248],{},[761,1237,1238],{},[764,1239,1240,1243,1245],{},[767,1241,1242],{},"Dimensão",[767,1244,788],{},[767,1246,1247],{},"Noto Sans JP",[774,1249,1250,1261,1272,1283,1297,1308],{},[764,1251,1252,1255,1258],{},[779,1253,1254],{},"Pesos publicados",[779,1256,1257],{},"1 (Regular)",[779,1259,1260],{},"9 (Thin → Black)",[764,1262,1263,1266,1269],{},[779,1264,1265],{},"Licença",[779,1267,1268],{},"IPA Font License v1.0",[779,1270,1271],{},"SIL OFL 1.1",[764,1273,1274,1277,1280],{},[779,1275,1276],{},"Tratamento latino",[779,1278,1279],{},"Proporcional (IPAex) ou monoespaçado (IPA)",[779,1281,1282],{},"Proporcional",[764,1284,1285,1288,1294],{},[779,1286,1287],{},"Pré-instalada em",[779,1289,1290,1291],{},"Algumas distros Linux japonesas, TeX Live ",[43,1292,1293],{},"ptex-fonts",[779,1295,1296],{},"Android, ChromeOS",[764,1298,1299,1302,1305],{},[779,1300,1301],{},"Público típico",[779,1303,1304],{},"Governo, jurídico e acadêmico no Japão",[779,1306,1307],{},"Web de consumo, internacional",[764,1309,1310,1313,1316],{},[779,1311,1312],{},"Tamanho",[779,1314,1315],{},"7,5 MB (Gothic)",[779,1317,1318],{},"5 MB (só Regular)",[18,1320,1321],{},"Escolha IPAex quando sua saída atravessa uma fronteira institucional japonesa — envios de PDF para e-Tax, peças processuais, artigos para revistas japonesas — porque avaliadores, revisores e ferramentas de OCR nesses ecossistemas estão calibrados em IPA. Para o resto, Noto Sans JP. Renderizam muito parecido; a escolha é de encaixe no ecossistema, não estética.",[13,1323,1325],{"id":1324},"leituras-relacionadas","Leituras relacionadas",[1327,1328,1329,1336,1343,1350],"ul",{},[1196,1330,1331,1335],{},[22,1332,1334],{"href":1333},"/pt/blog/embed-japanese-font","Como incorporar uma fonte japonesa no gpdf?"," — a receita geral, serve para qualquer TTF CJK",[1196,1337,1338,1342],{},[22,1339,1341],{"href":1340},"/pt/blog/noto-sans-jp-with-gpdf","Como usar Noto Sans JP com o gpdf?"," — a alternativa SIL OFL com nove pesos",[1196,1344,1345,1349],{},[22,1346,1348],{"href":1347},"/pt/blog/tofu-boxes-japanese","Por que meu PDF mostra retângulos no lugar de japonês?"," — troubleshooting quando os glifos não aparecem",[1196,1351,1352,1357,1358],{},[22,1353,1356],{"href":1354,"rel":1355},"https://gpdf.dev/pt/docs/guide/fonts",[26],"Guia de fontes"," — referência completa de ",[43,1359,354],{},[13,1361,1363],{"id":1362},"experimente-o-gpdf","Experimente o gpdf",[18,1365,1366],{},"gpdf é uma biblioteca Go para gerar PDFs. Licença MIT, zero dependências externas, suporte nativo a CJK.",[60,1368,1372],{"className":1369,"code":1370,"language":1371,"meta":65,"style":65},"language-bash shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","go get github.com/gpdf-dev/gpdf\n","bash",[43,1373,1374],{"__ignoreMap":65},[69,1375,1376,1378,1381],{"class":71,"line":72},[69,1377,64],{"class":79},[69,1379,1380],{"class":215}," get",[69,1382,1383],{"class":215}," github.com/gpdf-dev/gpdf\n",[18,1385,1386,1390,1391],{},[22,1387,1389],{"href":31,"rel":1388},[26],"⭐ Star no GitHub"," · ",[22,1392,1395],{"href":1393,"rel":1394},"https://gpdf.dev/pt/docs/quickstart",[26],"Ler a documentação",[1397,1398,1399],"style",{},"html pre.shiki code .sMK4o, html code.shiki .sMK4o{--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF}html pre.shiki code .sBMFI, html code.shiki .sBMFI{--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B}html pre.shiki code .s7zQu, html code.shiki .s7zQu{--shiki-light:#39ADB5;--shiki-light-font-style:italic;--shiki-default:#89DDFF;--shiki-default-font-style:italic;--shiki-dark:#89DDFF;--shiki-dark-font-style:italic}html pre.shiki code .s2Zo4, html code.shiki .s2Zo4{--shiki-light:#6182B8;--shiki-default:#82AAFF;--shiki-dark:#82AAFF}html pre.shiki code .sTEyZ, html code.shiki .sTEyZ{--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8}html pre.shiki code .sfazB, html code.shiki .sfazB{--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D}html pre.shiki code .sbssI, html code.shiki .sbssI{--shiki-light:#F76D47;--shiki-default:#F78C6C;--shiki-dark:#F78C6C}html pre.shiki code .sHdIc, html code.shiki .sHdIc{--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#EEFFFF;--shiki-default-font-style:italic;--shiki-dark:#BABED8;--shiki-dark-font-style:italic}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"title":65,"searchDepth":83,"depth":83,"links":1401},[1402,1403,1404,1405,1406,1407,1408,1409,1410],{"id":15,"depth":83,"text":16},{"id":37,"depth":83,"text":38},{"id":57,"depth":83,"text":58},{"id":752,"depth":83,"text":753},{"id":831,"depth":83,"text":832},{"id":1181,"depth":83,"text":1182},{"id":1232,"depth":83,"text":1233},{"id":1324,"depth":83,"text":1325},{"id":1362,"depth":83,"text":1363},"2026-04-17","Registre ipaexg.ttf com gpdf.WithFont. IPAex Gothic vem com um único peso Regular sob a IPA Font License; o negrito é sintetizado ou pareado com Mincho.",false,"md",{"name":1416,"totalTime":1417,"tools":1418,"steps":1421},"Usar IPAex Gothic como fonte padrão em um documento gpdf","PT10M",[1419,1420],"Go 1.22+","ipaexg.ttf (IPAex Gothic v4.01 de moji.or.jp)",[1422,1425,1428,1431,1434],{"name":1423,"text":1424},"Baixe o pacote IPAex em moji.or.jp","Pegue o IPAex00401.zip em moji.or.jp/ipafont. Descompacte e guarde ipaexg.ttf junto com o arquivo de texto do IPA Font License Agreement v1.0 que acompanha o pacote.",{"name":1426,"text":1427},"Carregue os bytes do TTF","Na inicialização do programa, use os.ReadFile(\"ipaexg.ttf\") para carregar a fonte em um []byte. Para implantações em container, //go:embed mantém a fonte dentro do binário Go.",{"name":1429,"text":1430},"Registre a fonte na construção do documento","Passe gpdf.WithFont(\"IPAexGothic\", fontBytes) e gpdf.WithDefaultFont(\"IPAexGothic\", 10.5) para gpdf.NewDocument. 10.5 pt é o tamanho padrão que o Word usa para documentos em japonês.",{"name":1432,"text":1433},"Lide com a falta de arquivo Bold","IPAex Gothic não tem variante Bold. Sintetize o negrito com template.Bold() (o gpdf aplica um traço de 0.4 pt por cima) ou registre IPAex Mincho como família separada para ênfase.",{"name":1435,"text":1436},"Mantenha a licença junto à sua distribuição","A IPA Font License v1.0 exige preservar o texto da licença onde quer que o binário da fonte viaje. Se você //go:embed o TTF, embuta também LICENSES/IPA-FONT-1.0.txt e referencie-o no NOTICE.",null,{},"/pt/blog/ipaex-gothic-gpdf",{"title":5,"description":1412},"pt/blog/009.ipaex-gothic-gpdf",[1443,1444,1445],"recipe","cjk","tutorial","ojWJ80PMXFrlVIlHPQc6CQAiWV9H4nzOl-RVT2uWOb0",1776529275902]