[{"data":1,"prerenderedAt":1505},["ShallowReactive",2],{"docs-zh-api-reference/go-templates":3},{"id":4,"title":5,"body":6,"description":1498,"extension":1499,"meta":1500,"navigation":163,"path":1501,"seo":1502,"stem":1503,"__hash__":1504},"docsZh/zh/docs/3.api-reference/6.go-templates.md","Go 模板",{"type":7,"value":8,"toc":1487},"minimark",[9,13,22,25,42,46,49,264,268,274,920,928,931,938,989,993,1023,1027,1030,1221,1224,1230,1358,1361,1400,1484],[10,11,12],"h2",{"id":12},"概述",[14,15,16,17,21],"p",{},"gpdf 与 Go 的 ",[18,19,20],"code",{},"text/template"," 包集成，支持动态内容生成。模板生成 JSON schema 输出，gpdf 将其渲染为 PDF。",[14,23,24],{},"有两种可用方式：",[26,27,28,36],"ol",{},[29,30,31,35],"li",{},[32,33,34],"strong",{},"FromJSON"," — 在 JSON 中嵌入 Go 模板表达式（更简单）",[29,37,38,41],{},[32,39,40],{},"FromTemplate"," — 使用预解析的 Go 模板实现完全控制（更灵活）",[10,43,45],{"id":44},"使用-fromjson-嵌入模板表达式","使用 FromJSON 嵌入模板表达式",[14,47,48],{},"更简单的方式 — 直接在 JSON 中嵌入 Go 模板表达式：",[50,51,56],"pre",{"className":52,"code":53,"language":54,"meta":55,"style":55},"language-go shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","schema := []byte(`{\n    \"page\": {\"size\": \"A4\", \"margins\": \"20mm\"},\n    \"metadata\": {\"title\": \"{{.Title}}\"},\n    \"body\": [\n        {\"row\": {\"cols\": [\n            {\"span\": 12, \"text\": \"{{.Title}}\", \"style\": {\"size\": 24, \"bold\": true}}\n        ]}},\n        {\"row\": {\"cols\": [\n            {\"span\": 12, \"text\": \"Author: {{.Author}}\"}\n        ]}}\n    ]\n}`)\n\ndoc, err := template.FromJSON(schema, map[string]any{\n    \"Title\":  \"Monthly Report\",\n    \"Author\": \"ACME Corp\",\n})\n","go","",[18,57,58,88,94,100,106,112,118,124,129,135,141,147,158,165,210,236,258],{"__ignoreMap":55},[59,60,63,67,71,74,78,81,84],"span",{"class":61,"line":62},"line",1,[59,64,66],{"class":65},"sTEyZ","schema ",[59,68,70],{"class":69},"sMK4o",":=",[59,72,73],{"class":69}," []",[59,75,77],{"class":76},"spNyl","byte",[59,79,80],{"class":69},"(",[59,82,83],{"class":69},"`",[59,85,87],{"class":86},"sfazB","{\n",[59,89,91],{"class":61,"line":90},2,[59,92,93],{"class":86},"    \"page\": {\"size\": \"A4\", \"margins\": \"20mm\"},\n",[59,95,97],{"class":61,"line":96},3,[59,98,99],{"class":86},"    \"metadata\": {\"title\": \"{{.Title}}\"},\n",[59,101,103],{"class":61,"line":102},4,[59,104,105],{"class":86},"    \"body\": [\n",[59,107,109],{"class":61,"line":108},5,[59,110,111],{"class":86},"        {\"row\": {\"cols\": [\n",[59,113,115],{"class":61,"line":114},6,[59,116,117],{"class":86},"            {\"span\": 12, \"text\": \"{{.Title}}\", \"style\": {\"size\": 24, \"bold\": true}}\n",[59,119,121],{"class":61,"line":120},7,[59,122,123],{"class":86},"        ]}},\n",[59,125,127],{"class":61,"line":126},8,[59,128,111],{"class":86},[59,130,132],{"class":61,"line":131},9,[59,133,134],{"class":86},"            {\"span\": 12, \"text\": \"Author: {{.Author}}\"}\n",[59,136,138],{"class":61,"line":137},10,[59,139,140],{"class":86},"        ]}}\n",[59,142,144],{"class":61,"line":143},11,[59,145,146],{"class":86},"    ]\n",[59,148,150,153,155],{"class":61,"line":149},12,[59,151,152],{"class":86},"}",[59,154,83],{"class":69},[59,156,157],{"class":69},")\n",[59,159,161],{"class":61,"line":160},13,[59,162,164],{"emptyLinePlaceholder":163},true,"\n",[59,166,168,171,174,177,179,182,185,188,190,193,195,198,201,204,208],{"class":61,"line":167},14,[59,169,170],{"class":65},"doc",[59,172,173],{"class":69},",",[59,175,176],{"class":65}," err ",[59,178,70],{"class":69},[59,180,181],{"class":65}," template",[59,183,184],{"class":69},".",[59,186,34],{"class":187},"s2Zo4",[59,189,80],{"class":69},[59,191,192],{"class":65},"schema",[59,194,173],{"class":69},[59,196,197],{"class":69}," map[",[59,199,200],{"class":76},"string",[59,202,203],{"class":69},"]",[59,205,207],{"class":206},"sBMFI","any",[59,209,87],{"class":69},[59,211,213,216,219,222,225,228,231,233],{"class":61,"line":212},15,[59,214,215],{"class":69},"    \"",[59,217,218],{"class":86},"Title",[59,220,221],{"class":69},"\"",[59,223,224],{"class":69},":",[59,226,227],{"class":69},"  \"",[59,229,230],{"class":86},"Monthly Report",[59,232,221],{"class":69},[59,234,235],{"class":69},",\n",[59,237,239,241,244,246,248,251,254,256],{"class":61,"line":238},16,[59,240,215],{"class":69},[59,242,243],{"class":86},"Author",[59,245,221],{"class":69},[59,247,224],{"class":69},[59,249,250],{"class":69}," \"",[59,252,253],{"class":86},"ACME Corp",[59,255,221],{"class":69},[59,257,235],{"class":69},[59,259,261],{"class":61,"line":260},17,[59,262,263],{"class":69},"})\n",[10,265,267],{"id":266},"使用-fromtemplate-预解析模板","使用 FromTemplate 预解析模板",[14,269,270,271,273],{},"对于循环和条件判断等复杂逻辑，使用 ",[18,272,40],{},"：",[50,275,277],{"className":52,"code":276,"language":54,"meta":55,"style":55},"import (\n    gotemplate \"text/template\"\n    \"github.com/gpdf-dev/gpdf/template\"\n)\n\ntmplStr := `{\n    \"page\": {\"size\": \"A4\", \"margins\": \"20mm\"},\n    \"metadata\": {\"title\": \"{{.Title}}\"},\n    \"body\": [\n        {\"row\": {\"cols\": [\n            {\"span\": 12, \"text\": \"{{.Title}}\", \"style\": {\"size\": 24, \"bold\": true}}\n        ]}},\n        {\"row\": {\"cols\": [\n            {\"span\": 12, \"spacer\": \"5mm\"}\n        ]}},\n        {{- range $i, $section := .Sections}}\n        {{- if $i}},{{end}}\n        {\"row\": {\"cols\": [\n            {\"span\": 12, \"elements\": [\n                {\"type\": \"text\", \"content\": \"{{$section.Heading}}\", \"style\": {\"size\": 16, \"bold\": true, \"color\": \"#1A237E\"}},\n                {\"type\": \"spacer\", \"height\": \"3mm\"},\n                {\"type\": \"text\", \"content\": \"{{$section.Body}}\"},\n                {\"type\": \"spacer\", \"height\": \"8mm\"}\n            ]}\n        ]}}\n        {{- end}}\n    ]\n}`\n\ntmpl, err := gotemplate.New(\"report\").Funcs(template.TemplateFuncMap()).Parse(tmplStr)\nif err != nil {\n    log.Fatal(err)\n}\n\ntype section struct {\n    Heading string\n    Body    string\n}\n\ndata := map[string]any{\n    \"Title\": \"Quarterly Report - Q1 2026\",\n    \"Sections\": []section{\n        {\n            Heading: \"Executive Summary\",\n            Body:    \"Revenue increased 25% year-over-year, driven by new enterprise offerings.\",\n        },\n        {\n            Heading: \"Product Development\",\n            Body:    \"The gpdf library reached v0.8 with JSON schema and Go template support.\",\n        },\n        {\n            Heading: \"Market Analysis\",\n            Body:    \"PDF generation market grows. Zero-dependency approach resonates with Go devs.\",\n        },\n        {\n            Heading: \"Next Steps\",\n            Body:    \"Focus on reusable components, fuzz testing, and v1.0 release.\",\n        },\n    },\n}\n\ndoc, err := template.FromTemplate(tmpl, data)\nif err != nil {\n    log.Fatal(err)\n}\npdfData, err := doc.Generate()\n",[18,278,279,288,300,309,313,317,329,333,337,341,345,349,353,357,362,366,371,376,381,387,393,399,405,411,417,422,428,433,441,446,504,521,539,545,550,564,573,581,586,591,609,629,648,654,671,688,694,699,715,731,736,741,757,773,778,783,799,815,820,826,831,836,864,877,892,897],{"__ignoreMap":55},[59,280,281,285],{"class":61,"line":62},[59,282,284],{"class":283},"s7zQu","import",[59,286,287],{"class":69}," (\n",[59,289,290,293,295,297],{"class":61,"line":90},[59,291,292],{"class":65},"    gotemplate ",[59,294,221],{"class":69},[59,296,20],{"class":206},[59,298,299],{"class":69},"\"\n",[59,301,302,304,307],{"class":61,"line":96},[59,303,215],{"class":69},[59,305,306],{"class":206},"github.com/gpdf-dev/gpdf/template",[59,308,299],{"class":69},[59,310,311],{"class":61,"line":102},[59,312,157],{"class":69},[59,314,315],{"class":61,"line":108},[59,316,164],{"emptyLinePlaceholder":163},[59,318,319,322,324,327],{"class":61,"line":114},[59,320,321],{"class":65},"tmplStr ",[59,323,70],{"class":69},[59,325,326],{"class":69}," `",[59,328,87],{"class":86},[59,330,331],{"class":61,"line":120},[59,332,93],{"class":86},[59,334,335],{"class":61,"line":126},[59,336,99],{"class":86},[59,338,339],{"class":61,"line":131},[59,340,105],{"class":86},[59,342,343],{"class":61,"line":137},[59,344,111],{"class":86},[59,346,347],{"class":61,"line":143},[59,348,117],{"class":86},[59,350,351],{"class":61,"line":149},[59,352,123],{"class":86},[59,354,355],{"class":61,"line":160},[59,356,111],{"class":86},[59,358,359],{"class":61,"line":167},[59,360,361],{"class":86},"            {\"span\": 12, \"spacer\": \"5mm\"}\n",[59,363,364],{"class":61,"line":212},[59,365,123],{"class":86},[59,367,368],{"class":61,"line":238},[59,369,370],{"class":86},"        {{- range $i, $section := .Sections}}\n",[59,372,373],{"class":61,"line":260},[59,374,375],{"class":86},"        {{- if $i}},{{end}}\n",[59,377,379],{"class":61,"line":378},18,[59,380,111],{"class":86},[59,382,384],{"class":61,"line":383},19,[59,385,386],{"class":86},"            {\"span\": 12, \"elements\": [\n",[59,388,390],{"class":61,"line":389},20,[59,391,392],{"class":86},"                {\"type\": \"text\", \"content\": \"{{$section.Heading}}\", \"style\": {\"size\": 16, \"bold\": true, \"color\": \"#1A237E\"}},\n",[59,394,396],{"class":61,"line":395},21,[59,397,398],{"class":86},"                {\"type\": \"spacer\", \"height\": \"3mm\"},\n",[59,400,402],{"class":61,"line":401},22,[59,403,404],{"class":86},"                {\"type\": \"text\", \"content\": \"{{$section.Body}}\"},\n",[59,406,408],{"class":61,"line":407},23,[59,409,410],{"class":86},"                {\"type\": \"spacer\", \"height\": \"8mm\"}\n",[59,412,414],{"class":61,"line":413},24,[59,415,416],{"class":86},"            ]}\n",[59,418,420],{"class":61,"line":419},25,[59,421,140],{"class":86},[59,423,425],{"class":61,"line":424},26,[59,426,427],{"class":86},"        {{- end}}\n",[59,429,431],{"class":61,"line":430},27,[59,432,146],{"class":86},[59,434,436,438],{"class":61,"line":435},28,[59,437,152],{"class":86},[59,439,440],{"class":69},"`\n",[59,442,444],{"class":61,"line":443},29,[59,445,164],{"emptyLinePlaceholder":163},[59,447,449,452,454,456,458,461,463,466,468,470,473,475,478,481,483,486,488,491,494,497,499,502],{"class":61,"line":448},30,[59,450,451],{"class":65},"tmpl",[59,453,173],{"class":69},[59,455,176],{"class":65},[59,457,70],{"class":69},[59,459,460],{"class":65}," gotemplate",[59,462,184],{"class":69},[59,464,465],{"class":187},"New",[59,467,80],{"class":69},[59,469,221],{"class":69},[59,471,472],{"class":86},"report",[59,474,221],{"class":69},[59,476,477],{"class":69},").",[59,479,480],{"class":187},"Funcs",[59,482,80],{"class":69},[59,484,485],{"class":65},"template",[59,487,184],{"class":69},[59,489,490],{"class":187},"TemplateFuncMap",[59,492,493],{"class":69},"()).",[59,495,496],{"class":187},"Parse",[59,498,80],{"class":69},[59,500,501],{"class":65},"tmplStr",[59,503,157],{"class":69},[59,505,507,510,512,515,518],{"class":61,"line":506},31,[59,508,509],{"class":283},"if",[59,511,176],{"class":65},[59,513,514],{"class":69},"!=",[59,516,517],{"class":69}," nil",[59,519,520],{"class":69}," {\n",[59,522,524,527,529,532,534,537],{"class":61,"line":523},32,[59,525,526],{"class":65},"    log",[59,528,184],{"class":69},[59,530,531],{"class":187},"Fatal",[59,533,80],{"class":69},[59,535,536],{"class":65},"err",[59,538,157],{"class":69},[59,540,542],{"class":61,"line":541},33,[59,543,544],{"class":69},"}\n",[59,546,548],{"class":61,"line":547},34,[59,549,164],{"emptyLinePlaceholder":163},[59,551,553,556,559,562],{"class":61,"line":552},35,[59,554,555],{"class":69},"type",[59,557,558],{"class":206}," section",[59,560,561],{"class":69}," struct",[59,563,520],{"class":69},[59,565,567,570],{"class":61,"line":566},36,[59,568,569],{"class":65},"    Heading ",[59,571,572],{"class":76},"string\n",[59,574,576,579],{"class":61,"line":575},37,[59,577,578],{"class":65},"    Body    ",[59,580,572],{"class":76},[59,582,584],{"class":61,"line":583},38,[59,585,544],{"class":69},[59,587,589],{"class":61,"line":588},39,[59,590,164],{"emptyLinePlaceholder":163},[59,592,594,597,599,601,603,605,607],{"class":61,"line":593},40,[59,595,596],{"class":65},"data ",[59,598,70],{"class":69},[59,600,197],{"class":69},[59,602,200],{"class":76},[59,604,203],{"class":69},[59,606,207],{"class":206},[59,608,87],{"class":69},[59,610,612,614,616,618,620,622,625,627],{"class":61,"line":611},41,[59,613,215],{"class":69},[59,615,218],{"class":86},[59,617,221],{"class":69},[59,619,224],{"class":69},[59,621,250],{"class":69},[59,623,624],{"class":86},"Quarterly Report - Q1 2026",[59,626,221],{"class":69},[59,628,235],{"class":69},[59,630,632,634,637,639,641,643,646],{"class":61,"line":631},42,[59,633,215],{"class":69},[59,635,636],{"class":86},"Sections",[59,638,221],{"class":69},[59,640,224],{"class":69},[59,642,73],{"class":69},[59,644,645],{"class":206},"section",[59,647,87],{"class":69},[59,649,651],{"class":61,"line":650},43,[59,652,653],{"class":69},"        {\n",[59,655,657,660,662,664,667,669],{"class":61,"line":656},44,[59,658,659],{"class":65},"            Heading",[59,661,224],{"class":69},[59,663,250],{"class":69},[59,665,666],{"class":86},"Executive Summary",[59,668,221],{"class":69},[59,670,235],{"class":69},[59,672,674,677,679,681,684,686],{"class":61,"line":673},45,[59,675,676],{"class":65},"            Body",[59,678,224],{"class":69},[59,680,215],{"class":69},[59,682,683],{"class":86},"Revenue increased 25% year-over-year, driven by new enterprise offerings.",[59,685,221],{"class":69},[59,687,235],{"class":69},[59,689,691],{"class":61,"line":690},46,[59,692,693],{"class":69},"        },\n",[59,695,697],{"class":61,"line":696},47,[59,698,653],{"class":69},[59,700,702,704,706,708,711,713],{"class":61,"line":701},48,[59,703,659],{"class":65},[59,705,224],{"class":69},[59,707,250],{"class":69},[59,709,710],{"class":86},"Product Development",[59,712,221],{"class":69},[59,714,235],{"class":69},[59,716,718,720,722,724,727,729],{"class":61,"line":717},49,[59,719,676],{"class":65},[59,721,224],{"class":69},[59,723,215],{"class":69},[59,725,726],{"class":86},"The gpdf library reached v0.8 with JSON schema and Go template support.",[59,728,221],{"class":69},[59,730,235],{"class":69},[59,732,734],{"class":61,"line":733},50,[59,735,693],{"class":69},[59,737,739],{"class":61,"line":738},51,[59,740,653],{"class":69},[59,742,744,746,748,750,753,755],{"class":61,"line":743},52,[59,745,659],{"class":65},[59,747,224],{"class":69},[59,749,250],{"class":69},[59,751,752],{"class":86},"Market Analysis",[59,754,221],{"class":69},[59,756,235],{"class":69},[59,758,760,762,764,766,769,771],{"class":61,"line":759},53,[59,761,676],{"class":65},[59,763,224],{"class":69},[59,765,215],{"class":69},[59,767,768],{"class":86},"PDF generation market grows. Zero-dependency approach resonates with Go devs.",[59,770,221],{"class":69},[59,772,235],{"class":69},[59,774,776],{"class":61,"line":775},54,[59,777,693],{"class":69},[59,779,781],{"class":61,"line":780},55,[59,782,653],{"class":69},[59,784,786,788,790,792,795,797],{"class":61,"line":785},56,[59,787,659],{"class":65},[59,789,224],{"class":69},[59,791,250],{"class":69},[59,793,794],{"class":86},"Next Steps",[59,796,221],{"class":69},[59,798,235],{"class":69},[59,800,802,804,806,808,811,813],{"class":61,"line":801},57,[59,803,676],{"class":65},[59,805,224],{"class":69},[59,807,215],{"class":69},[59,809,810],{"class":86},"Focus on reusable components, fuzz testing, and v1.0 release.",[59,812,221],{"class":69},[59,814,235],{"class":69},[59,816,818],{"class":61,"line":817},58,[59,819,693],{"class":69},[59,821,823],{"class":61,"line":822},59,[59,824,825],{"class":69},"    },\n",[59,827,829],{"class":61,"line":828},60,[59,830,544],{"class":69},[59,832,834],{"class":61,"line":833},61,[59,835,164],{"emptyLinePlaceholder":163},[59,837,839,841,843,845,847,849,851,853,855,857,859,862],{"class":61,"line":838},62,[59,840,170],{"class":65},[59,842,173],{"class":69},[59,844,176],{"class":65},[59,846,70],{"class":69},[59,848,181],{"class":65},[59,850,184],{"class":69},[59,852,40],{"class":187},[59,854,80],{"class":69},[59,856,451],{"class":65},[59,858,173],{"class":69},[59,860,861],{"class":65}," data",[59,863,157],{"class":69},[59,865,867,869,871,873,875],{"class":61,"line":866},63,[59,868,509],{"class":283},[59,870,176],{"class":65},[59,872,514],{"class":69},[59,874,517],{"class":69},[59,876,520],{"class":69},[59,878,880,882,884,886,888,890],{"class":61,"line":879},64,[59,881,526],{"class":65},[59,883,184],{"class":69},[59,885,531],{"class":187},[59,887,80],{"class":69},[59,889,536],{"class":65},[59,891,157],{"class":69},[59,893,895],{"class":61,"line":894},65,[59,896,544],{"class":69},[59,898,900,903,905,907,909,912,914,917],{"class":61,"line":899},66,[59,901,902],{"class":65},"pdfData",[59,904,173],{"class":69},[59,906,176],{"class":65},[59,908,70],{"class":69},[59,910,911],{"class":65}," doc",[59,913,184],{"class":69},[59,915,916],{"class":187},"Generate",[59,918,919],{"class":69},"()\n",[50,921,926],{"className":922,"code":924,"language":925},[923],"language-text","┌─ A4 ──────────────────────────────────────────────┐\n│                                                   │\n│  Quarterly Report - Q1 2026      ← 24pt bold      │\n│                                                   │\n│  Executive Summary               ← 16pt bold blue │\n│  Revenue increased 25% year-over-year, driven     │\n│  by new enterprise offerings.                     │\n│                                                   │\n│  Product Development                              │\n│  The gpdf library reached v0.8 with JSON schema   │\n│  and Go template support.                         │\n│                                                   │\n│  Market Analysis                                  │\n│  PDF generation market grows. Zero-dependency     │\n│  approach resonates with Go devs.                 │\n│                                                   │\n│  Next Steps                                       │\n│  Focus on reusable components, fuzz testing,      │\n│  and v1.0 release.                                │\n│                                                   │\n└───────────────────────────────────────────────────┘\n","text",[18,927,924],{"__ignoreMap":55},[10,929,930],{"id":930},"模板函数映射",[14,932,933,934,937],{},"解析模板时使用 ",[18,935,936],{},"TemplateFuncMap()"," — 它提供辅助函数：",[50,939,941],{"className":52,"code":940,"language":54,"meta":55,"style":55},"tmpl, err := gotemplate.New(\"doc\").Funcs(template.TemplateFuncMap()).Parse(tmplStr)\n",[18,942,943],{"__ignoreMap":55},[59,944,945,947,949,951,953,955,957,959,961,963,965,967,969,971,973,975,977,979,981,983,985,987],{"class":61,"line":62},[59,946,451],{"class":65},[59,948,173],{"class":69},[59,950,176],{"class":65},[59,952,70],{"class":69},[59,954,460],{"class":65},[59,956,184],{"class":69},[59,958,465],{"class":187},[59,960,80],{"class":69},[59,962,221],{"class":69},[59,964,170],{"class":86},[59,966,221],{"class":69},[59,968,477],{"class":69},[59,970,480],{"class":187},[59,972,80],{"class":69},[59,974,485],{"class":65},[59,976,184],{"class":69},[59,978,490],{"class":187},[59,980,493],{"class":69},[59,982,496],{"class":187},[59,984,80],{"class":69},[59,986,501],{"class":65},[59,988,157],{"class":69},[990,991,992],"h3",{"id":992},"可用函数",[994,995,996,1009],"table",{},[997,998,999],"thead",{},[1000,1001,1002,1006],"tr",{},[1003,1004,1005],"th",{},"函数",[1003,1007,1008],{},"说明",[1010,1011,1012],"tbody",{},[1000,1013,1014,1020],{},[1015,1016,1017],"td",{},[18,1018,1019],{},"toJSON",[1015,1021,1022],{},"将 Go 值转换为 JSON 字符串（用于嵌入数据）",[10,1024,1026],{"id":1025},"使用-range-生成动态段落","使用 Range 生成动态段落",[14,1028,1029],{},"循环遍历数据生成重复部分：",[50,1031,1033],{"className":52,"code":1032,"language":54,"meta":55,"style":55},"{{- range $i, $item := .Items}}\n{{- if $i}},{{end}}\n{\"row\": {\"cols\": [\n    {\"span\": 6, \"text\": \"{{$item.Name}}\"},\n    {\"span\": 6, \"text\": \"{{$item.Value}}\", \"style\": {\"align\": \"right\"}}\n]}}\n{{- end}}\n",[18,1034,1035,1062,1079,1108,1145,1207,1212],{"__ignoreMap":55},[59,1036,1037,1040,1043,1046,1048,1051,1053,1056,1059],{"class":61,"line":62},[59,1038,1039],{"class":69},"{{-",[59,1041,1042],{"class":283}," range",[59,1044,1045],{"class":65}," $i",[59,1047,173],{"class":69},[59,1049,1050],{"class":65}," $item ",[59,1052,70],{"class":69},[59,1054,1055],{"class":69}," .",[59,1057,1058],{"class":65},"Items",[59,1060,1061],{"class":69},"}}\n",[59,1063,1064,1066,1069,1071,1074,1077],{"class":61,"line":90},[59,1065,1039],{"class":69},[59,1067,1068],{"class":283}," if",[59,1070,1045],{"class":65},[59,1072,1073],{"class":69},"}},{{",[59,1075,1076],{"class":65},"end",[59,1078,1061],{"class":69},[59,1080,1081,1084,1086,1089,1091,1093,1096,1098,1101,1103,1105],{"class":61,"line":96},[59,1082,1083],{"class":69},"{",[59,1085,221],{"class":69},[59,1087,1088],{"class":86},"row",[59,1090,221],{"class":69},[59,1092,224],{"class":69},[59,1094,1095],{"class":69}," {",[59,1097,221],{"class":69},[59,1099,1100],{"class":86},"cols",[59,1102,221],{"class":69},[59,1104,224],{"class":69},[59,1106,1107],{"class":69}," [\n",[59,1109,1110,1113,1115,1117,1119,1121,1125,1127,1129,1131,1133,1135,1137,1140,1142],{"class":61,"line":102},[59,1111,1112],{"class":69},"    {",[59,1114,221],{"class":69},[59,1116,59],{"class":86},[59,1118,221],{"class":69},[59,1120,224],{"class":69},[59,1122,1124],{"class":1123},"sbssI"," 6",[59,1126,173],{"class":69},[59,1128,250],{"class":69},[59,1130,925],{"class":86},[59,1132,221],{"class":69},[59,1134,224],{"class":69},[59,1136,250],{"class":69},[59,1138,1139],{"class":86},"{{$item.Name}}",[59,1141,221],{"class":69},[59,1143,1144],{"class":69},"},\n",[59,1146,1147,1149,1151,1153,1155,1157,1159,1161,1163,1165,1167,1169,1171,1174,1176,1178,1180,1183,1185,1187,1189,1191,1194,1196,1198,1200,1203,1205],{"class":61,"line":108},[59,1148,1112],{"class":69},[59,1150,221],{"class":69},[59,1152,59],{"class":86},[59,1154,221],{"class":69},[59,1156,224],{"class":69},[59,1158,1124],{"class":1123},[59,1160,173],{"class":69},[59,1162,250],{"class":69},[59,1164,925],{"class":86},[59,1166,221],{"class":69},[59,1168,224],{"class":69},[59,1170,250],{"class":69},[59,1172,1173],{"class":86},"{{$item.Value}}",[59,1175,221],{"class":69},[59,1177,173],{"class":69},[59,1179,250],{"class":69},[59,1181,1182],{"class":86},"style",[59,1184,221],{"class":69},[59,1186,224],{"class":69},[59,1188,1095],{"class":69},[59,1190,221],{"class":69},[59,1192,1193],{"class":86},"align",[59,1195,221],{"class":69},[59,1197,224],{"class":69},[59,1199,250],{"class":69},[59,1201,1202],{"class":86},"right",[59,1204,221],{"class":69},[59,1206,1061],{"class":69},[59,1208,1209],{"class":61,"line":114},[59,1210,1211],{"class":69},"]}}\n",[59,1213,1214,1216,1219],{"class":61,"line":120},[59,1215,1039],{"class":69},[59,1217,1218],{"class":65}," end",[59,1220,1061],{"class":69},[10,1222,1223],{"id":1223},"条件判断",[14,1225,1226,1227,1229],{},"使用 ",[18,1228,509],{}," 实现条件内容：",[50,1231,1233],{"className":52,"code":1232,"language":54,"meta":55,"style":55},"{{- if .ShowHeader}}\n{\"row\": {\"cols\": [\n    {\"span\": 12, \"text\": \"{{.HeaderText}}\", \"style\": {\"size\": 20, \"bold\": true}}\n]}},\n{{- end}}\n",[18,1234,1235,1248,1272,1345,1350],{"__ignoreMap":55},[59,1236,1237,1239,1241,1243,1246],{"class":61,"line":62},[59,1238,1039],{"class":69},[59,1240,1068],{"class":283},[59,1242,1055],{"class":69},[59,1244,1245],{"class":65},"ShowHeader",[59,1247,1061],{"class":69},[59,1249,1250,1252,1254,1256,1258,1260,1262,1264,1266,1268,1270],{"class":61,"line":90},[59,1251,1083],{"class":69},[59,1253,221],{"class":69},[59,1255,1088],{"class":86},[59,1257,221],{"class":69},[59,1259,224],{"class":69},[59,1261,1095],{"class":69},[59,1263,221],{"class":69},[59,1265,1100],{"class":86},[59,1267,221],{"class":69},[59,1269,224],{"class":69},[59,1271,1107],{"class":69},[59,1273,1274,1276,1278,1280,1282,1284,1287,1289,1291,1293,1295,1297,1299,1302,1304,1306,1308,1310,1312,1314,1316,1318,1321,1323,1325,1328,1330,1332,1335,1337,1339,1343],{"class":61,"line":96},[59,1275,1112],{"class":69},[59,1277,221],{"class":69},[59,1279,59],{"class":86},[59,1281,221],{"class":69},[59,1283,224],{"class":69},[59,1285,1286],{"class":1123}," 12",[59,1288,173],{"class":69},[59,1290,250],{"class":69},[59,1292,925],{"class":86},[59,1294,221],{"class":69},[59,1296,224],{"class":69},[59,1298,250],{"class":69},[59,1300,1301],{"class":86},"{{.HeaderText}}",[59,1303,221],{"class":69},[59,1305,173],{"class":69},[59,1307,250],{"class":69},[59,1309,1182],{"class":86},[59,1311,221],{"class":69},[59,1313,224],{"class":69},[59,1315,1095],{"class":69},[59,1317,221],{"class":69},[59,1319,1320],{"class":86},"size",[59,1322,221],{"class":69},[59,1324,224],{"class":69},[59,1326,1327],{"class":1123}," 20",[59,1329,173],{"class":69},[59,1331,250],{"class":69},[59,1333,1334],{"class":86},"bold",[59,1336,221],{"class":69},[59,1338,224],{"class":69},[59,1340,1342],{"class":1341},"sfNiH"," true",[59,1344,1061],{"class":69},[59,1346,1347],{"class":61,"line":102},[59,1348,1349],{"class":69},"]}},\n",[59,1351,1352,1354,1356],{"class":61,"line":108},[59,1353,1039],{"class":69},[59,1355,1218],{"class":65},[59,1357,1061],{"class":69},[10,1359,1360],{"id":1360},"提示",[1362,1363,1364,1373,1384,1389],"ul",{},[29,1365,1226,1366,1368,1369,1372],{},[18,1367,1039],{}," 和 ",[18,1370,1371],{},"-}}"," 去除模板动作周围的空白",[29,1374,1375,1376,1379,1380,1383],{},"在 ",[18,1377,1378],{},"range"," 循环中注意处理 JSON 逗号（使用 ",[18,1381,1382],{},"{{if $i}},{{end}}","）",[29,1385,1226,1386,1388],{},[18,1387,936],{}," 获取内置辅助函数",[29,1390,1391,1392,1395,1396,1399],{},"Go 选项（",[18,1393,1394],{},"WithFont","、",[18,1397,1398],{},"WithMargins"," 等）可以覆盖模板设置：",[50,1401,1403],{"className":52,"code":1402,"language":54,"meta":55,"style":55},"doc, err := template.FromTemplate(tmpl, data,\n    template.WithFont(\"NotoSansJP\", fontData),\n    template.WithDefaultFont(\"NotoSansJP\", 12),\n)\n",[18,1404,1405,1431,1457,1480],{"__ignoreMap":55},[59,1406,1407,1409,1411,1413,1415,1417,1419,1421,1423,1425,1427,1429],{"class":61,"line":62},[59,1408,170],{"class":65},[59,1410,173],{"class":69},[59,1412,176],{"class":65},[59,1414,70],{"class":69},[59,1416,181],{"class":65},[59,1418,184],{"class":69},[59,1420,40],{"class":187},[59,1422,80],{"class":69},[59,1424,451],{"class":65},[59,1426,173],{"class":69},[59,1428,861],{"class":65},[59,1430,235],{"class":69},[59,1432,1433,1436,1438,1440,1442,1444,1447,1449,1451,1454],{"class":61,"line":90},[59,1434,1435],{"class":65},"    template",[59,1437,184],{"class":69},[59,1439,1394],{"class":187},[59,1441,80],{"class":69},[59,1443,221],{"class":69},[59,1445,1446],{"class":86},"NotoSansJP",[59,1448,221],{"class":69},[59,1450,173],{"class":69},[59,1452,1453],{"class":65}," fontData",[59,1455,1456],{"class":69},"),\n",[59,1458,1459,1461,1463,1466,1468,1470,1472,1474,1476,1478],{"class":61,"line":96},[59,1460,1435],{"class":65},[59,1462,184],{"class":69},[59,1464,1465],{"class":187},"WithDefaultFont",[59,1467,80],{"class":69},[59,1469,221],{"class":69},[59,1471,1446],{"class":86},[59,1473,221],{"class":69},[59,1475,173],{"class":69},[59,1477,1286],{"class":1123},[59,1479,1456],{"class":69},[59,1481,1482],{"class":61,"line":102},[59,1483,157],{"class":69},[1182,1485,1486],{},"html pre.shiki code .sTEyZ, html code.shiki .sTEyZ{--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8}html pre.shiki code .sMK4o, html code.shiki .sMK4o{--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF}html pre.shiki code .spNyl, html code.shiki .spNyl{--shiki-light:#9C3EDA;--shiki-default:#C792EA;--shiki-dark:#C792EA}html pre.shiki code .sfazB, html code.shiki .sfazB{--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D}html pre.shiki code .s2Zo4, html code.shiki .s2Zo4{--shiki-light:#6182B8;--shiki-default:#82AAFF;--shiki-dark:#82AAFF}html pre.shiki code .sBMFI, html code.shiki .sBMFI{--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B}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);}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 .sbssI, html code.shiki .sbssI{--shiki-light:#F76D47;--shiki-default:#F78C6C;--shiki-dark:#F78C6C}html pre.shiki code .sfNiH, html code.shiki .sfNiH{--shiki-light:#FF5370;--shiki-default:#FF9CAC;--shiki-dark:#FF9CAC}",{"title":55,"searchDepth":90,"depth":90,"links":1488},[1489,1490,1491,1492,1495,1496,1497],{"id":12,"depth":90,"text":12},{"id":44,"depth":90,"text":45},{"id":266,"depth":90,"text":267},{"id":930,"depth":90,"text":930,"children":1493},[1494],{"id":992,"depth":96,"text":992},{"id":1025,"depth":90,"text":1026},{"id":1223,"depth":90,"text":1223},{"id":1360,"depth":90,"text":1360},"使用 Go text/template 动态生成 PDF","md",{},"/zh/docs/api-reference/go-templates",{"title":5,"description":1498},"zh/docs/3.api-reference/6.go-templates","9jLzHd8PrB_ux6NYSv3df0Ub8y_DAhO5vwjC1KiDq5k",1776529283508]