[{"data":1,"prerenderedAt":1506},["ShallowReactive",2],{"docs-ko-api-reference/go-templates":3},{"id":4,"title":5,"body":6,"description":1499,"extension":1500,"meta":1501,"navigation":163,"path":1502,"seo":1503,"stem":1504,"__hash__":1505},"docsKo/ko/docs/3.api-reference/6.go-templates.md","Go 템플릿",{"type":7,"value":8,"toc":1488},"minimark",[9,13,22,25,42,46,49,264,268,274,920,928,932,939,990,995,1025,1029,1032,1223,1226,1232,1360,1363,1401,1485],[10,11,12],"h2",{"id":12},"개요",[14,15,16,17,21],"p",{},"gpdf는 동적 콘텐츠 생성을 위해 Go의 ",[18,19,20],"code",{},"text/template"," 패키지와 통합됩니다. 템플릿은 gpdf가 PDF로 렌더링하는 JSON 스키마 출력을 생성합니다.",[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],{},"더 간단한 접근 방식 — Go 템플릿 표현식을 JSON에 직접 삽입합니다:",[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,931],{"id":930},"템플릿-함수-맵","템플릿 함수 맵",[14,933,934,935,938],{},"템플릿을 파싱할 때 ",[18,936,937],{},"TemplateFuncMap()","을 사용합니다 — 헬퍼 함수를 제공합니다:",[50,940,942],{"className":52,"code":941,"language":54,"meta":55,"style":55},"tmpl, err := gotemplate.New(\"doc\").Funcs(template.TemplateFuncMap()).Parse(tmplStr)\n",[18,943,944],{"__ignoreMap":55},[59,945,946,948,950,952,954,956,958,960,962,964,966,968,970,972,974,976,978,980,982,984,986,988],{"class":61,"line":62},[59,947,451],{"class":65},[59,949,173],{"class":69},[59,951,176],{"class":65},[59,953,70],{"class":69},[59,955,460],{"class":65},[59,957,184],{"class":69},[59,959,465],{"class":187},[59,961,80],{"class":69},[59,963,221],{"class":69},[59,965,170],{"class":86},[59,967,221],{"class":69},[59,969,477],{"class":69},[59,971,480],{"class":187},[59,973,80],{"class":69},[59,975,485],{"class":65},[59,977,184],{"class":69},[59,979,490],{"class":187},[59,981,493],{"class":69},[59,983,496],{"class":187},[59,985,80],{"class":69},[59,987,501],{"class":65},[59,989,157],{"class":69},[991,992,994],"h3",{"id":993},"사용-가능한-함수","사용 가능한 함수",[996,997,998,1011],"table",{},[999,1000,1001],"thead",{},[1002,1003,1004,1008],"tr",{},[1005,1006,1007],"th",{},"함수",[1005,1009,1010],{},"설명",[1012,1013,1014],"tbody",{},[1002,1015,1016,1022],{},[1017,1018,1019],"td",{},[18,1020,1021],{},"toJSON",[1017,1023,1024],{},"Go 값을 JSON 문자열로 변환 (데이터 삽입에 유용)",[10,1026,1028],{"id":1027},"range를-사용한-동적-섹션","Range를 사용한 동적 섹션",[14,1030,1031],{},"데이터를 순회하여 반복 섹션을 생성합니다:",[50,1033,1035],{"className":52,"code":1034,"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,1036,1037,1064,1081,1110,1147,1209,1214],{"__ignoreMap":55},[59,1038,1039,1042,1045,1048,1050,1053,1055,1058,1061],{"class":61,"line":62},[59,1040,1041],{"class":69},"{{-",[59,1043,1044],{"class":283}," range",[59,1046,1047],{"class":65}," $i",[59,1049,173],{"class":69},[59,1051,1052],{"class":65}," $item ",[59,1054,70],{"class":69},[59,1056,1057],{"class":69}," .",[59,1059,1060],{"class":65},"Items",[59,1062,1063],{"class":69},"}}\n",[59,1065,1066,1068,1071,1073,1076,1079],{"class":61,"line":90},[59,1067,1041],{"class":69},[59,1069,1070],{"class":283}," if",[59,1072,1047],{"class":65},[59,1074,1075],{"class":69},"}},{{",[59,1077,1078],{"class":65},"end",[59,1080,1063],{"class":69},[59,1082,1083,1086,1088,1091,1093,1095,1098,1100,1103,1105,1107],{"class":61,"line":96},[59,1084,1085],{"class":69},"{",[59,1087,221],{"class":69},[59,1089,1090],{"class":86},"row",[59,1092,221],{"class":69},[59,1094,224],{"class":69},[59,1096,1097],{"class":69}," {",[59,1099,221],{"class":69},[59,1101,1102],{"class":86},"cols",[59,1104,221],{"class":69},[59,1106,224],{"class":69},[59,1108,1109],{"class":69}," [\n",[59,1111,1112,1115,1117,1119,1121,1123,1127,1129,1131,1133,1135,1137,1139,1142,1144],{"class":61,"line":102},[59,1113,1114],{"class":69},"    {",[59,1116,221],{"class":69},[59,1118,59],{"class":86},[59,1120,221],{"class":69},[59,1122,224],{"class":69},[59,1124,1126],{"class":1125},"sbssI"," 6",[59,1128,173],{"class":69},[59,1130,250],{"class":69},[59,1132,925],{"class":86},[59,1134,221],{"class":69},[59,1136,224],{"class":69},[59,1138,250],{"class":69},[59,1140,1141],{"class":86},"{{$item.Name}}",[59,1143,221],{"class":69},[59,1145,1146],{"class":69},"},\n",[59,1148,1149,1151,1153,1155,1157,1159,1161,1163,1165,1167,1169,1171,1173,1176,1178,1180,1182,1185,1187,1189,1191,1193,1196,1198,1200,1202,1205,1207],{"class":61,"line":108},[59,1150,1114],{"class":69},[59,1152,221],{"class":69},[59,1154,59],{"class":86},[59,1156,221],{"class":69},[59,1158,224],{"class":69},[59,1160,1126],{"class":1125},[59,1162,173],{"class":69},[59,1164,250],{"class":69},[59,1166,925],{"class":86},[59,1168,221],{"class":69},[59,1170,224],{"class":69},[59,1172,250],{"class":69},[59,1174,1175],{"class":86},"{{$item.Value}}",[59,1177,221],{"class":69},[59,1179,173],{"class":69},[59,1181,250],{"class":69},[59,1183,1184],{"class":86},"style",[59,1186,221],{"class":69},[59,1188,224],{"class":69},[59,1190,1097],{"class":69},[59,1192,221],{"class":69},[59,1194,1195],{"class":86},"align",[59,1197,221],{"class":69},[59,1199,224],{"class":69},[59,1201,250],{"class":69},[59,1203,1204],{"class":86},"right",[59,1206,221],{"class":69},[59,1208,1063],{"class":69},[59,1210,1211],{"class":61,"line":114},[59,1212,1213],{"class":69},"]}}\n",[59,1215,1216,1218,1221],{"class":61,"line":120},[59,1217,1041],{"class":69},[59,1219,1220],{"class":65}," end",[59,1222,1063],{"class":69},[10,1224,1225],{"id":1225},"조건부",[14,1227,1228,1229,1231],{},"조건부 콘텐츠에 ",[18,1230,509],{},"를 사용합니다:",[50,1233,1235],{"className":52,"code":1234,"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,1236,1237,1250,1274,1347,1352],{"__ignoreMap":55},[59,1238,1239,1241,1243,1245,1248],{"class":61,"line":62},[59,1240,1041],{"class":69},[59,1242,1070],{"class":283},[59,1244,1057],{"class":69},[59,1246,1247],{"class":65},"ShowHeader",[59,1249,1063],{"class":69},[59,1251,1252,1254,1256,1258,1260,1262,1264,1266,1268,1270,1272],{"class":61,"line":90},[59,1253,1085],{"class":69},[59,1255,221],{"class":69},[59,1257,1090],{"class":86},[59,1259,221],{"class":69},[59,1261,224],{"class":69},[59,1263,1097],{"class":69},[59,1265,221],{"class":69},[59,1267,1102],{"class":86},[59,1269,221],{"class":69},[59,1271,224],{"class":69},[59,1273,1109],{"class":69},[59,1275,1276,1278,1280,1282,1284,1286,1289,1291,1293,1295,1297,1299,1301,1304,1306,1308,1310,1312,1314,1316,1318,1320,1323,1325,1327,1330,1332,1334,1337,1339,1341,1345],{"class":61,"line":96},[59,1277,1114],{"class":69},[59,1279,221],{"class":69},[59,1281,59],{"class":86},[59,1283,221],{"class":69},[59,1285,224],{"class":69},[59,1287,1288],{"class":1125}," 12",[59,1290,173],{"class":69},[59,1292,250],{"class":69},[59,1294,925],{"class":86},[59,1296,221],{"class":69},[59,1298,224],{"class":69},[59,1300,250],{"class":69},[59,1302,1303],{"class":86},"{{.HeaderText}}",[59,1305,221],{"class":69},[59,1307,173],{"class":69},[59,1309,250],{"class":69},[59,1311,1184],{"class":86},[59,1313,221],{"class":69},[59,1315,224],{"class":69},[59,1317,1097],{"class":69},[59,1319,221],{"class":69},[59,1321,1322],{"class":86},"size",[59,1324,221],{"class":69},[59,1326,224],{"class":69},[59,1328,1329],{"class":1125}," 20",[59,1331,173],{"class":69},[59,1333,250],{"class":69},[59,1335,1336],{"class":86},"bold",[59,1338,221],{"class":69},[59,1340,224],{"class":69},[59,1342,1344],{"class":1343},"sfNiH"," true",[59,1346,1063],{"class":69},[59,1348,1349],{"class":61,"line":102},[59,1350,1351],{"class":69},"]}},\n",[59,1353,1354,1356,1358],{"class":61,"line":108},[59,1355,1041],{"class":69},[59,1357,1220],{"class":65},[59,1359,1063],{"class":69},[10,1361,1362],{"id":1362},"팁",[1364,1365,1366,1375,1385,1390],"ul",{},[29,1367,1368,1370,1371,1374],{},[18,1369,1041],{},"와 ",[18,1372,1373],{},"-}}","를 사용하여 템플릿 액션 주변의 공백을 제거합니다",[29,1376,1377,1380,1381,1384],{},[18,1378,1379],{},"range"," 루프에서 JSON 콤마를 주의 깊게 처리합니다 (",[18,1382,1383],{},"{{if $i}},{{end}}"," 사용)",[29,1386,1387,1389],{},[18,1388,937],{},"을 사용하여 내장 헬퍼 함수를 가져옵니다",[29,1391,1392,1393,1396,1397,1400],{},"Go 옵션 (",[18,1394,1395],{},"WithFont",", ",[18,1398,1399],{},"WithMargins"," 등)으로 템플릿 설정을 재정의할 수 있습니다:",[50,1402,1404],{"className":52,"code":1403,"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,1405,1406,1432,1458,1481],{"__ignoreMap":55},[59,1407,1408,1410,1412,1414,1416,1418,1420,1422,1424,1426,1428,1430],{"class":61,"line":62},[59,1409,170],{"class":65},[59,1411,173],{"class":69},[59,1413,176],{"class":65},[59,1415,70],{"class":69},[59,1417,181],{"class":65},[59,1419,184],{"class":69},[59,1421,40],{"class":187},[59,1423,80],{"class":69},[59,1425,451],{"class":65},[59,1427,173],{"class":69},[59,1429,861],{"class":65},[59,1431,235],{"class":69},[59,1433,1434,1437,1439,1441,1443,1445,1448,1450,1452,1455],{"class":61,"line":90},[59,1435,1436],{"class":65},"    template",[59,1438,184],{"class":69},[59,1440,1395],{"class":187},[59,1442,80],{"class":69},[59,1444,221],{"class":69},[59,1446,1447],{"class":86},"NotoSansJP",[59,1449,221],{"class":69},[59,1451,173],{"class":69},[59,1453,1454],{"class":65}," fontData",[59,1456,1457],{"class":69},"),\n",[59,1459,1460,1462,1464,1467,1469,1471,1473,1475,1477,1479],{"class":61,"line":96},[59,1461,1436],{"class":65},[59,1463,184],{"class":69},[59,1465,1466],{"class":187},"WithDefaultFont",[59,1468,80],{"class":69},[59,1470,221],{"class":69},[59,1472,1447],{"class":86},[59,1474,221],{"class":69},[59,1476,173],{"class":69},[59,1478,1288],{"class":1125},[59,1480,1457],{"class":69},[59,1482,1483],{"class":61,"line":102},[59,1484,157],{"class":69},[1184,1486,1487],{},"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":1489},[1490,1491,1492,1493,1496,1497,1498],{"id":12,"depth":90,"text":12},{"id":44,"depth":90,"text":45},{"id":266,"depth":90,"text":267},{"id":930,"depth":90,"text":931,"children":1494},[1495],{"id":993,"depth":96,"text":994},{"id":1027,"depth":90,"text":1028},{"id":1225,"depth":90,"text":1225},{"id":1362,"depth":90,"text":1362},"Go text/template을 사용한 동적 PDF 생성","md",{},"/ko/docs/api-reference/go-templates",{"title":5,"description":1499},"ko/docs/3.api-reference/6.go-templates","9HiOEUqirh5EDGKNlXjPXSIufZ--2Qz1qrvDrqtqX2c",1776529288724]