[{"data":1,"prerenderedAt":2321},["ShallowReactive",2],{"blog-pt-nest-row-in-col":3},{"id":4,"title":5,"author":6,"body":10,"date":902,"description":2287,"draft":2288,"extension":2289,"howTo":2290,"image":2311,"meta":2312,"navigation":486,"path":2313,"seo":2314,"stem":2315,"tags":2316,"updated":2311,"__hash__":2320},"blogPt/pt/blog/025.nest-row-in-col.md","Como aninhar um Row dentro de um Col no gpdf?",{"name":7,"url":8,"avatar":9},"Taiki Noda","https://nadai.dev/pt/about","https://nadai.dev/og-default.png",{"type":11,"value":12,"toc":2274},"minimark",[13,18,56,60,107,111,121,428,462,466,469,1171,1188,1196,1202,1625,1645,1649,1660,1877,1890,1894,1909,1964,1980,1984,1990,2197,2204,2208,2234,2238,2241,2258,2270],[14,15,17],"h2",{"id":16},"a-pergunta-em-outras-palavras","A pergunta, em outras palavras",[19,20,21,22,26,27,30,31,33,34,36,37,39,40,47,48,51,52,55],"p",{},"Você vem do Bootstrap ou do Tailwind, onde ",[23,24,25],"code",{},".row"," e ",[23,28,29],{},".col"," se aninham livremente. Dá para colocar um ",[23,32,25],{}," dentro de um ",[23,35,29],{}," dentro de outro ",[23,38,25],{}," e a grade continua cascateando. Você senta com o ",[41,42,46],"a",{"href":43,"rel":44},"https://github.com/gpdf-dev/gpdf",[45],"nofollow","gpdf",", vê o mesmo idioma ",[23,49,50],{},"r.Col(span, fn)",", e vai procurar ",[23,53,54],{},"c.Row(...)"," dentro do callback da coluna. Não tem. Foi um esquecimento?",[14,57,59],{"id":58},"tldr","TL;DR",[19,61,62,63,67,68,71,72,75,76,75,79,75,82,75,85,75,88,91,92,95,96,99,100,103,104,106],{},"Não. ",[64,65,66],"strong",{},"A grade de 12 colunas do gpdf é plana de propósito."," ",[23,69,70],{},"ColBuilder"," só aceita conteúdo — ",[23,73,74],{},"Text",", ",[23,77,78],{},"Image",[23,80,81],{},"Table",[23,83,84],{},"Box",[23,86,87],{},"List",[23,89,90],{},"Spacer"," — e ",[23,93,94],{},"Row"," / ",[23,97,98],{},"AutoRow"," vivem em ",[23,101,102],{},"PageBuilder",", não em ",[23,105,70],{},". Se você veio aqui atrás da sintaxe, ela não existe. Siga lendo para as três coisas que a substituem.",[14,108,110],{"id":109},"a-cara-da-api","A cara da API",[19,112,113,114,116,117,120],{},"Aqui está o que o conjunto de métodos de ",[23,115,70],{}," realmente contém (de ",[23,118,119],{},"gpdf/template/grid.go","):",[122,123,128],"pre",{"className":124,"code":125,"language":126,"meta":127,"style":127},"language-go shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","func (c *ColBuilder) Text(text string, opts ...TextOption)\nfunc (c *ColBuilder) Image(src []byte, opts ...ImageOption)\nfunc (c *ColBuilder) Box(fn func(c *ColBuilder), opts ...BoxOption)\nfunc (c *ColBuilder) Table(header []string, rows [][]string, opts ...TableOption)\nfunc (c *ColBuilder) Line(opts ...LineOption)\nfunc (c *ColBuilder) List(items []string, opts ...ListOption)\nfunc (c *ColBuilder) Spacer(height document.Value)\n// …PageNumber, TotalPages, RichText, QRCode, Barcode\n","go","",[23,129,130,184,224,270,319,349,387,421],{"__ignoreMap":127},[131,132,135,139,142,146,149,152,155,159,162,165,169,172,175,178,181],"span",{"class":133,"line":134},"line",1,[131,136,138],{"class":137},"sMK4o","func",[131,140,141],{"class":137}," (",[131,143,145],{"class":144},"sHdIc","c ",[131,147,148],{"class":137},"*",[131,150,70],{"class":151},"sBMFI",[131,153,154],{"class":137},")",[131,156,158],{"class":157},"s2Zo4"," Text",[131,160,161],{"class":137},"(",[131,163,164],{"class":144},"text",[131,166,168],{"class":167},"spNyl"," string",[131,170,171],{"class":137},",",[131,173,174],{"class":144}," opts",[131,176,177],{"class":137}," ...",[131,179,180],{"class":151},"TextOption",[131,182,183],{"class":137},")\n",[131,185,187,189,191,193,195,197,199,202,204,207,210,213,215,217,219,222],{"class":133,"line":186},2,[131,188,138],{"class":137},[131,190,141],{"class":137},[131,192,145],{"class":144},[131,194,148],{"class":137},[131,196,70],{"class":151},[131,198,154],{"class":137},[131,200,201],{"class":157}," Image",[131,203,161],{"class":137},[131,205,206],{"class":144},"src",[131,208,209],{"class":137}," []",[131,211,212],{"class":167},"byte",[131,214,171],{"class":137},[131,216,174],{"class":144},[131,218,177],{"class":137},[131,220,221],{"class":151},"ImageOption",[131,223,183],{"class":137},[131,225,227,229,231,233,235,237,239,242,244,247,250,253,256,258,261,263,265,268],{"class":133,"line":226},3,[131,228,138],{"class":137},[131,230,141],{"class":137},[131,232,145],{"class":144},[131,234,148],{"class":137},[131,236,70],{"class":151},[131,238,154],{"class":137},[131,240,241],{"class":157}," Box",[131,243,161],{"class":137},[131,245,246],{"class":144},"fn",[131,248,249],{"class":137}," func(",[131,251,252],{"class":144},"c",[131,254,255],{"class":137}," *",[131,257,70],{"class":151},[131,259,260],{"class":137},"),",[131,262,174],{"class":144},[131,264,177],{"class":137},[131,266,267],{"class":151},"BoxOption",[131,269,183],{"class":137},[131,271,273,275,277,279,281,283,285,288,290,293,295,298,300,303,306,308,310,312,314,317],{"class":133,"line":272},4,[131,274,138],{"class":137},[131,276,141],{"class":137},[131,278,145],{"class":144},[131,280,148],{"class":137},[131,282,70],{"class":151},[131,284,154],{"class":137},[131,286,287],{"class":157}," Table",[131,289,161],{"class":137},[131,291,292],{"class":144},"header",[131,294,209],{"class":137},[131,296,297],{"class":167},"string",[131,299,171],{"class":137},[131,301,302],{"class":144}," rows",[131,304,305],{"class":137}," [][]",[131,307,297],{"class":167},[131,309,171],{"class":137},[131,311,174],{"class":144},[131,313,177],{"class":137},[131,315,316],{"class":151},"TableOption",[131,318,183],{"class":137},[131,320,322,324,326,328,330,332,334,337,339,342,344,347],{"class":133,"line":321},5,[131,323,138],{"class":137},[131,325,141],{"class":137},[131,327,145],{"class":144},[131,329,148],{"class":137},[131,331,70],{"class":151},[131,333,154],{"class":137},[131,335,336],{"class":157}," Line",[131,338,161],{"class":137},[131,340,341],{"class":144},"opts",[131,343,177],{"class":137},[131,345,346],{"class":151},"LineOption",[131,348,183],{"class":137},[131,350,352,354,356,358,360,362,364,367,369,372,374,376,378,380,382,385],{"class":133,"line":351},6,[131,353,138],{"class":137},[131,355,141],{"class":137},[131,357,145],{"class":144},[131,359,148],{"class":137},[131,361,70],{"class":151},[131,363,154],{"class":137},[131,365,366],{"class":157}," List",[131,368,161],{"class":137},[131,370,371],{"class":144},"items",[131,373,209],{"class":137},[131,375,297],{"class":167},[131,377,171],{"class":137},[131,379,174],{"class":144},[131,381,177],{"class":137},[131,383,384],{"class":151},"ListOption",[131,386,183],{"class":137},[131,388,390,392,394,396,398,400,402,405,407,410,413,416,419],{"class":133,"line":389},7,[131,391,138],{"class":137},[131,393,141],{"class":137},[131,395,145],{"class":144},[131,397,148],{"class":137},[131,399,70],{"class":151},[131,401,154],{"class":137},[131,403,404],{"class":157}," Spacer",[131,406,161],{"class":137},[131,408,409],{"class":144},"height",[131,411,412],{"class":151}," document",[131,414,415],{"class":137},".",[131,417,418],{"class":151},"Value",[131,420,183],{"class":137},[131,422,424],{"class":133,"line":423},8,[131,425,427],{"class":426},"sHwdD","// …PageNumber, TotalPages, RichText, QRCode, Barcode\n",[19,429,430,431,433,434,433,436,439,440,443,444,447,448,450,451,454,455,458,459,461],{},"Sem ",[23,432,94],{},". Sem ",[23,435,98],{},[23,437,438],{},"Col",". O caminho ",[23,441,442],{},"Col → Row"," não existe como método, e ",[23,445,446],{},"c.Box(fn, ...)"," é o que mais se aproxima — mas ",[23,449,84],{}," aceita outro ",[23,452,453],{},"*ColBuilder",", não um row. Você pode aninhar ",[64,456,457],{},"colunas dentro de colunas"," (mais ou menos, via ",[23,460,84],{},"), mas não pode abrir uma nova linha horizontal dentro de uma coluna. Essa é a restrição.",[14,463,465],{"id":464},"idioma-1-rows-irmãos-no-nível-da-página","Idioma 1 — Rows irmãos no nível da página",[19,467,468],{},"É isso que 90% dos padrões \"row aninhado\" realmente querem.",[122,470,472],{"className":124,"code":471,"language":126,"meta":127,"style":127},"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    doc := gpdf.NewDocument(\n        gpdf.WithPageSize(document.A4),\n        gpdf.WithMargins(document.UniformEdges(document.Mm(15))),\n    )\n    page := doc.AddPage()\n\n    // O que você queria escrever (mas não dá):\n    //\n    //   page.AutoRow(func(r *template.RowBuilder) {\n    //       r.Col(8, func(c *template.ColBuilder) {\n    //           c.Row(...) ❌ não existe\n    //       })\n    //   })\n\n    // O que você escreve no lugar:\n    page.AutoRow(func(r *template.RowBuilder) {\n        r.Col(8, func(c *template.ColBuilder) {\n            c.Text(\"Título do artigo\", template.FontSize(18), template.Bold())\n        })\n        r.Col(4, func(c *template.ColBuilder) {\n            c.Text(\"2026-05-16\")\n        })\n    })\n    page.AutoRow(func(r *template.RowBuilder) {\n        r.Col(8, func(c *template.ColBuilder) {\n            c.Text(\"O parágrafo de abertura ocupa a mesma coluna de 8.\")\n        })\n        r.Col(4, func(c *template.ColBuilder) {\n            c.Text(\"por Taiki Noda\")\n        })\n    })\n\n    data, err := doc.Generate()\n    if err != nil {\n        log.Fatal(err)\n    }\n    _ = os.WriteFile(\"flat.pdf\", data, 0o644)\n}\n",[23,473,474,482,488,497,508,517,521,530,539,549,554,559,573,594,618,655,661,680,685,691,697,703,709,715,721,727,732,738,768,801,849,855,887,907,912,918,943,974,994,999,1030,1050,1055,1060,1065,1087,1103,1121,1127,1165],{"__ignoreMap":127},[131,475,476,479],{"class":133,"line":134},[131,477,478],{"class":137},"package",[131,480,481],{"class":151}," main\n",[131,483,484],{"class":133,"line":186},[131,485,487],{"emptyLinePlaceholder":486},true,"\n",[131,489,490,494],{"class":133,"line":226},[131,491,493],{"class":492},"s7zQu","import",[131,495,496],{"class":137}," (\n",[131,498,499,502,505],{"class":133,"line":272},[131,500,501],{"class":137},"    \"",[131,503,504],{"class":151},"log",[131,506,507],{"class":137},"\"\n",[131,509,510,512,515],{"class":133,"line":321},[131,511,501],{"class":137},[131,513,514],{"class":151},"os",[131,516,507],{"class":137},[131,518,519],{"class":133,"line":351},[131,520,487],{"emptyLinePlaceholder":486},[131,522,523,525,528],{"class":133,"line":389},[131,524,501],{"class":137},[131,526,527],{"class":151},"github.com/gpdf-dev/gpdf",[131,529,507],{"class":137},[131,531,532,534,537],{"class":133,"line":423},[131,533,501],{"class":137},[131,535,536],{"class":151},"github.com/gpdf-dev/gpdf/document",[131,538,507],{"class":137},[131,540,542,544,547],{"class":133,"line":541},9,[131,543,501],{"class":137},[131,545,546],{"class":151},"github.com/gpdf-dev/gpdf/template",[131,548,507],{"class":137},[131,550,552],{"class":133,"line":551},10,[131,553,183],{"class":137},[131,555,557],{"class":133,"line":556},11,[131,558,487],{"emptyLinePlaceholder":486},[131,560,562,564,567,570],{"class":133,"line":561},12,[131,563,138],{"class":137},[131,565,566],{"class":157}," main",[131,568,569],{"class":137},"()",[131,571,572],{"class":137}," {\n",[131,574,576,580,583,586,588,591],{"class":133,"line":575},13,[131,577,579],{"class":578},"sTEyZ","    doc ",[131,581,582],{"class":137},":=",[131,584,585],{"class":578}," gpdf",[131,587,415],{"class":137},[131,589,590],{"class":157},"NewDocument",[131,592,593],{"class":137},"(\n",[131,595,597,600,602,605,607,610,612,615],{"class":133,"line":596},14,[131,598,599],{"class":578},"        gpdf",[131,601,415],{"class":137},[131,603,604],{"class":157},"WithPageSize",[131,606,161],{"class":137},[131,608,609],{"class":578},"document",[131,611,415],{"class":137},[131,613,614],{"class":578},"A4",[131,616,617],{"class":137},"),\n",[131,619,621,623,625,628,630,632,634,637,639,641,643,646,648,652],{"class":133,"line":620},15,[131,622,599],{"class":578},[131,624,415],{"class":137},[131,626,627],{"class":157},"WithMargins",[131,629,161],{"class":137},[131,631,609],{"class":578},[131,633,415],{"class":137},[131,635,636],{"class":157},"UniformEdges",[131,638,161],{"class":137},[131,640,609],{"class":578},[131,642,415],{"class":137},[131,644,645],{"class":157},"Mm",[131,647,161],{"class":137},[131,649,651],{"class":650},"sbssI","15",[131,653,654],{"class":137},"))),\n",[131,656,658],{"class":133,"line":657},16,[131,659,660],{"class":137},"    )\n",[131,662,664,667,669,672,674,677],{"class":133,"line":663},17,[131,665,666],{"class":578},"    page ",[131,668,582],{"class":137},[131,670,671],{"class":578}," doc",[131,673,415],{"class":137},[131,675,676],{"class":157},"AddPage",[131,678,679],{"class":137},"()\n",[131,681,683],{"class":133,"line":682},18,[131,684,487],{"emptyLinePlaceholder":486},[131,686,688],{"class":133,"line":687},19,[131,689,690],{"class":426},"    // O que você queria escrever (mas não dá):\n",[131,692,694],{"class":133,"line":693},20,[131,695,696],{"class":426},"    //\n",[131,698,700],{"class":133,"line":699},21,[131,701,702],{"class":426},"    //   page.AutoRow(func(r *template.RowBuilder) {\n",[131,704,706],{"class":133,"line":705},22,[131,707,708],{"class":426},"    //       r.Col(8, func(c *template.ColBuilder) {\n",[131,710,712],{"class":133,"line":711},23,[131,713,714],{"class":426},"    //           c.Row(...) ❌ não existe\n",[131,716,718],{"class":133,"line":717},24,[131,719,720],{"class":426},"    //       })\n",[131,722,724],{"class":133,"line":723},25,[131,725,726],{"class":426},"    //   })\n",[131,728,730],{"class":133,"line":729},26,[131,731,487],{"emptyLinePlaceholder":486},[131,733,735],{"class":133,"line":734},27,[131,736,737],{"class":426},"    // O que você escreve no lugar:\n",[131,739,741,744,746,748,751,754,756,759,761,764,766],{"class":133,"line":740},28,[131,742,743],{"class":578},"    page",[131,745,415],{"class":137},[131,747,98],{"class":157},[131,749,750],{"class":137},"(func(",[131,752,753],{"class":144},"r",[131,755,255],{"class":137},[131,757,758],{"class":151},"template",[131,760,415],{"class":137},[131,762,763],{"class":151},"RowBuilder",[131,765,154],{"class":137},[131,767,572],{"class":137},[131,769,771,774,776,778,780,783,785,787,789,791,793,795,797,799],{"class":133,"line":770},29,[131,772,773],{"class":578},"        r",[131,775,415],{"class":137},[131,777,438],{"class":157},[131,779,161],{"class":137},[131,781,782],{"class":650},"8",[131,784,171],{"class":137},[131,786,249],{"class":137},[131,788,252],{"class":144},[131,790,255],{"class":137},[131,792,758],{"class":151},[131,794,415],{"class":137},[131,796,70],{"class":151},[131,798,154],{"class":137},[131,800,572],{"class":137},[131,802,804,807,809,811,813,816,820,822,824,827,829,832,834,837,839,841,843,846],{"class":133,"line":803},30,[131,805,806],{"class":578},"            c",[131,808,415],{"class":137},[131,810,74],{"class":157},[131,812,161],{"class":137},[131,814,815],{"class":137},"\"",[131,817,819],{"class":818},"sfazB","Título do artigo",[131,821,815],{"class":137},[131,823,171],{"class":137},[131,825,826],{"class":578}," template",[131,828,415],{"class":137},[131,830,831],{"class":157},"FontSize",[131,833,161],{"class":137},[131,835,836],{"class":650},"18",[131,838,260],{"class":137},[131,840,826],{"class":578},[131,842,415],{"class":137},[131,844,845],{"class":157},"Bold",[131,847,848],{"class":137},"())\n",[131,850,852],{"class":133,"line":851},31,[131,853,854],{"class":137},"        })\n",[131,856,858,860,862,864,866,869,871,873,875,877,879,881,883,885],{"class":133,"line":857},32,[131,859,773],{"class":578},[131,861,415],{"class":137},[131,863,438],{"class":157},[131,865,161],{"class":137},[131,867,868],{"class":650},"4",[131,870,171],{"class":137},[131,872,249],{"class":137},[131,874,252],{"class":144},[131,876,255],{"class":137},[131,878,758],{"class":151},[131,880,415],{"class":137},[131,882,70],{"class":151},[131,884,154],{"class":137},[131,886,572],{"class":137},[131,888,890,892,894,896,898,900,903,905],{"class":133,"line":889},33,[131,891,806],{"class":578},[131,893,415],{"class":137},[131,895,74],{"class":157},[131,897,161],{"class":137},[131,899,815],{"class":137},[131,901,902],{"class":818},"2026-05-16",[131,904,815],{"class":137},[131,906,183],{"class":137},[131,908,910],{"class":133,"line":909},34,[131,911,854],{"class":137},[131,913,915],{"class":133,"line":914},35,[131,916,917],{"class":137},"    })\n",[131,919,921,923,925,927,929,931,933,935,937,939,941],{"class":133,"line":920},36,[131,922,743],{"class":578},[131,924,415],{"class":137},[131,926,98],{"class":157},[131,928,750],{"class":137},[131,930,753],{"class":144},[131,932,255],{"class":137},[131,934,758],{"class":151},[131,936,415],{"class":137},[131,938,763],{"class":151},[131,940,154],{"class":137},[131,942,572],{"class":137},[131,944,946,948,950,952,954,956,958,960,962,964,966,968,970,972],{"class":133,"line":945},37,[131,947,773],{"class":578},[131,949,415],{"class":137},[131,951,438],{"class":157},[131,953,161],{"class":137},[131,955,782],{"class":650},[131,957,171],{"class":137},[131,959,249],{"class":137},[131,961,252],{"class":144},[131,963,255],{"class":137},[131,965,758],{"class":151},[131,967,415],{"class":137},[131,969,70],{"class":151},[131,971,154],{"class":137},[131,973,572],{"class":137},[131,975,977,979,981,983,985,987,990,992],{"class":133,"line":976},38,[131,978,806],{"class":578},[131,980,415],{"class":137},[131,982,74],{"class":157},[131,984,161],{"class":137},[131,986,815],{"class":137},[131,988,989],{"class":818},"O parágrafo de abertura ocupa a mesma coluna de 8.",[131,991,815],{"class":137},[131,993,183],{"class":137},[131,995,997],{"class":133,"line":996},39,[131,998,854],{"class":137},[131,1000,1002,1004,1006,1008,1010,1012,1014,1016,1018,1020,1022,1024,1026,1028],{"class":133,"line":1001},40,[131,1003,773],{"class":578},[131,1005,415],{"class":137},[131,1007,438],{"class":157},[131,1009,161],{"class":137},[131,1011,868],{"class":650},[131,1013,171],{"class":137},[131,1015,249],{"class":137},[131,1017,252],{"class":144},[131,1019,255],{"class":137},[131,1021,758],{"class":151},[131,1023,415],{"class":137},[131,1025,70],{"class":151},[131,1027,154],{"class":137},[131,1029,572],{"class":137},[131,1031,1033,1035,1037,1039,1041,1043,1046,1048],{"class":133,"line":1032},41,[131,1034,806],{"class":578},[131,1036,415],{"class":137},[131,1038,74],{"class":157},[131,1040,161],{"class":137},[131,1042,815],{"class":137},[131,1044,1045],{"class":818},"por Taiki Noda",[131,1047,815],{"class":137},[131,1049,183],{"class":137},[131,1051,1053],{"class":133,"line":1052},42,[131,1054,854],{"class":137},[131,1056,1058],{"class":133,"line":1057},43,[131,1059,917],{"class":137},[131,1061,1063],{"class":133,"line":1062},44,[131,1064,487],{"emptyLinePlaceholder":486},[131,1066,1068,1071,1073,1076,1078,1080,1082,1085],{"class":133,"line":1067},45,[131,1069,1070],{"class":578},"    data",[131,1072,171],{"class":137},[131,1074,1075],{"class":578}," err ",[131,1077,582],{"class":137},[131,1079,671],{"class":578},[131,1081,415],{"class":137},[131,1083,1084],{"class":157},"Generate",[131,1086,679],{"class":137},[131,1088,1090,1093,1095,1098,1101],{"class":133,"line":1089},46,[131,1091,1092],{"class":492},"    if",[131,1094,1075],{"class":578},[131,1096,1097],{"class":137},"!=",[131,1099,1100],{"class":137}," nil",[131,1102,572],{"class":137},[131,1104,1106,1109,1111,1114,1116,1119],{"class":133,"line":1105},47,[131,1107,1108],{"class":578},"        log",[131,1110,415],{"class":137},[131,1112,1113],{"class":157},"Fatal",[131,1115,161],{"class":137},[131,1117,1118],{"class":578},"err",[131,1120,183],{"class":137},[131,1122,1124],{"class":133,"line":1123},48,[131,1125,1126],{"class":137},"    }\n",[131,1128,1130,1133,1136,1139,1141,1144,1146,1148,1151,1153,1155,1158,1160,1163],{"class":133,"line":1129},49,[131,1131,1132],{"class":578},"    _ ",[131,1134,1135],{"class":137},"=",[131,1137,1138],{"class":578}," os",[131,1140,415],{"class":137},[131,1142,1143],{"class":157},"WriteFile",[131,1145,161],{"class":137},[131,1147,815],{"class":137},[131,1149,1150],{"class":818},"flat.pdf",[131,1152,815],{"class":137},[131,1154,171],{"class":137},[131,1156,1157],{"class":578}," data",[131,1159,171],{"class":137},[131,1161,1162],{"class":650}," 0o644",[131,1164,183],{"class":137},[131,1166,1168],{"class":133,"line":1167},50,[131,1169,1170],{"class":137},"}\n",[19,1172,1173,1174,1176,1177,1180,1181,1183,1184,1187],{},"Os dois ",[23,1175,98],{}," compartilham os mesmos spans ",[23,1178,1179],{},"8+4",", então as colunas se alinham visualmente. Não tem sub-grade; tem uma sequência plana de rows que por acaso usam a mesma divisão. A saída é idêntica à de um layout CSS que aninhasse ",[23,1182,25],{}," dentro de ",[23,1185,1186],{},".col-8"," — porque a única coisa que a forma aninhada comprava era localidade sintática, e o gpdf prefere que você gaste esse orçamento em consistência de largura.",[14,1189,1191,1192,1195],{"id":1190},"idioma-2-cbox-para-agrupamento-visual","Idioma 2 — ",[23,1193,1194],{},"c.Box"," para agrupamento visual",[19,1197,1198,1199,1201],{},"Se a motivação de verdade era \"quero um cartão com borda com dois elementos empilhados dentro desta coluna\", você queria ",[23,1200,84],{},", não um sub-row:",[122,1203,1205],{"className":124,"code":1204,"language":126,"meta":127,"style":127},"page.AutoRow(func(r *template.RowBuilder) {\n    r.Col(6, func(c *template.ColBuilder) {\n        c.Box(func(c *template.ColBuilder) {\n            c.Text(\"Faturar para\", template.Bold())\n            c.Text(\"Acme Ltda.\")\n            c.Text(\"São Paulo, Brasil\")\n        },\n            template.WithBoxBorder(template.Border(\n                template.BorderWidth(document.Pt(1)),\n                template.BorderColor(pdf.RGBHex(0xBDBDBD)),\n            )),\n            template.WithBoxPadding(document.UniformEdges(document.Mm(4))),\n        )\n    })\n    r.Col(6, func(c *template.ColBuilder) {\n        c.Box(func(c *template.ColBuilder) {\n            c.Text(\"Enviar para\", template.Bold())\n            c.Text(\"Mesmo do faturamento\")\n        },\n            template.WithBoxPadding(document.UniformEdges(document.Mm(4))),\n        )\n    })\n})\n",[23,1206,1207,1232,1264,1289,1316,1335,1354,1359,1380,1407,1433,1438,1469,1474,1478,1508,1532,1559,1578,1582,1612,1616,1620],{"__ignoreMap":127},[131,1208,1209,1212,1214,1216,1218,1220,1222,1224,1226,1228,1230],{"class":133,"line":134},[131,1210,1211],{"class":578},"page",[131,1213,415],{"class":137},[131,1215,98],{"class":157},[131,1217,750],{"class":137},[131,1219,753],{"class":144},[131,1221,255],{"class":137},[131,1223,758],{"class":151},[131,1225,415],{"class":137},[131,1227,763],{"class":151},[131,1229,154],{"class":137},[131,1231,572],{"class":137},[131,1233,1234,1237,1239,1241,1243,1246,1248,1250,1252,1254,1256,1258,1260,1262],{"class":133,"line":186},[131,1235,1236],{"class":578},"    r",[131,1238,415],{"class":137},[131,1240,438],{"class":157},[131,1242,161],{"class":137},[131,1244,1245],{"class":650},"6",[131,1247,171],{"class":137},[131,1249,249],{"class":137},[131,1251,252],{"class":144},[131,1253,255],{"class":137},[131,1255,758],{"class":151},[131,1257,415],{"class":137},[131,1259,70],{"class":151},[131,1261,154],{"class":137},[131,1263,572],{"class":137},[131,1265,1266,1269,1271,1273,1275,1277,1279,1281,1283,1285,1287],{"class":133,"line":226},[131,1267,1268],{"class":578},"        c",[131,1270,415],{"class":137},[131,1272,84],{"class":157},[131,1274,750],{"class":137},[131,1276,252],{"class":144},[131,1278,255],{"class":137},[131,1280,758],{"class":151},[131,1282,415],{"class":137},[131,1284,70],{"class":151},[131,1286,154],{"class":137},[131,1288,572],{"class":137},[131,1290,1291,1293,1295,1297,1299,1301,1304,1306,1308,1310,1312,1314],{"class":133,"line":272},[131,1292,806],{"class":578},[131,1294,415],{"class":137},[131,1296,74],{"class":157},[131,1298,161],{"class":137},[131,1300,815],{"class":137},[131,1302,1303],{"class":818},"Faturar para",[131,1305,815],{"class":137},[131,1307,171],{"class":137},[131,1309,826],{"class":578},[131,1311,415],{"class":137},[131,1313,845],{"class":157},[131,1315,848],{"class":137},[131,1317,1318,1320,1322,1324,1326,1328,1331,1333],{"class":133,"line":321},[131,1319,806],{"class":578},[131,1321,415],{"class":137},[131,1323,74],{"class":157},[131,1325,161],{"class":137},[131,1327,815],{"class":137},[131,1329,1330],{"class":818},"Acme Ltda.",[131,1332,815],{"class":137},[131,1334,183],{"class":137},[131,1336,1337,1339,1341,1343,1345,1347,1350,1352],{"class":133,"line":351},[131,1338,806],{"class":578},[131,1340,415],{"class":137},[131,1342,74],{"class":157},[131,1344,161],{"class":137},[131,1346,815],{"class":137},[131,1348,1349],{"class":818},"São Paulo, Brasil",[131,1351,815],{"class":137},[131,1353,183],{"class":137},[131,1355,1356],{"class":133,"line":389},[131,1357,1358],{"class":137},"        },\n",[131,1360,1361,1364,1366,1369,1371,1373,1375,1378],{"class":133,"line":423},[131,1362,1363],{"class":578},"            template",[131,1365,415],{"class":137},[131,1367,1368],{"class":157},"WithBoxBorder",[131,1370,161],{"class":137},[131,1372,758],{"class":578},[131,1374,415],{"class":137},[131,1376,1377],{"class":157},"Border",[131,1379,593],{"class":137},[131,1381,1382,1385,1387,1390,1392,1394,1396,1399,1401,1404],{"class":133,"line":541},[131,1383,1384],{"class":578},"                template",[131,1386,415],{"class":137},[131,1388,1389],{"class":157},"BorderWidth",[131,1391,161],{"class":137},[131,1393,609],{"class":578},[131,1395,415],{"class":137},[131,1397,1398],{"class":157},"Pt",[131,1400,161],{"class":137},[131,1402,1403],{"class":650},"1",[131,1405,1406],{"class":137},")),\n",[131,1408,1409,1411,1413,1416,1418,1421,1423,1426,1428,1431],{"class":133,"line":551},[131,1410,1384],{"class":578},[131,1412,415],{"class":137},[131,1414,1415],{"class":157},"BorderColor",[131,1417,161],{"class":137},[131,1419,1420],{"class":578},"pdf",[131,1422,415],{"class":137},[131,1424,1425],{"class":157},"RGBHex",[131,1427,161],{"class":137},[131,1429,1430],{"class":650},"0xBDBDBD",[131,1432,1406],{"class":137},[131,1434,1435],{"class":133,"line":556},[131,1436,1437],{"class":137},"            )),\n",[131,1439,1440,1442,1444,1447,1449,1451,1453,1455,1457,1459,1461,1463,1465,1467],{"class":133,"line":561},[131,1441,1363],{"class":578},[131,1443,415],{"class":137},[131,1445,1446],{"class":157},"WithBoxPadding",[131,1448,161],{"class":137},[131,1450,609],{"class":578},[131,1452,415],{"class":137},[131,1454,636],{"class":157},[131,1456,161],{"class":137},[131,1458,609],{"class":578},[131,1460,415],{"class":137},[131,1462,645],{"class":157},[131,1464,161],{"class":137},[131,1466,868],{"class":650},[131,1468,654],{"class":137},[131,1470,1471],{"class":133,"line":575},[131,1472,1473],{"class":137},"        )\n",[131,1475,1476],{"class":133,"line":596},[131,1477,917],{"class":137},[131,1479,1480,1482,1484,1486,1488,1490,1492,1494,1496,1498,1500,1502,1504,1506],{"class":133,"line":620},[131,1481,1236],{"class":578},[131,1483,415],{"class":137},[131,1485,438],{"class":157},[131,1487,161],{"class":137},[131,1489,1245],{"class":650},[131,1491,171],{"class":137},[131,1493,249],{"class":137},[131,1495,252],{"class":144},[131,1497,255],{"class":137},[131,1499,758],{"class":151},[131,1501,415],{"class":137},[131,1503,70],{"class":151},[131,1505,154],{"class":137},[131,1507,572],{"class":137},[131,1509,1510,1512,1514,1516,1518,1520,1522,1524,1526,1528,1530],{"class":133,"line":657},[131,1511,1268],{"class":578},[131,1513,415],{"class":137},[131,1515,84],{"class":157},[131,1517,750],{"class":137},[131,1519,252],{"class":144},[131,1521,255],{"class":137},[131,1523,758],{"class":151},[131,1525,415],{"class":137},[131,1527,70],{"class":151},[131,1529,154],{"class":137},[131,1531,572],{"class":137},[131,1533,1534,1536,1538,1540,1542,1544,1547,1549,1551,1553,1555,1557],{"class":133,"line":663},[131,1535,806],{"class":578},[131,1537,415],{"class":137},[131,1539,74],{"class":157},[131,1541,161],{"class":137},[131,1543,815],{"class":137},[131,1545,1546],{"class":818},"Enviar para",[131,1548,815],{"class":137},[131,1550,171],{"class":137},[131,1552,826],{"class":578},[131,1554,415],{"class":137},[131,1556,845],{"class":157},[131,1558,848],{"class":137},[131,1560,1561,1563,1565,1567,1569,1571,1574,1576],{"class":133,"line":682},[131,1562,806],{"class":578},[131,1564,415],{"class":137},[131,1566,74],{"class":157},[131,1568,161],{"class":137},[131,1570,815],{"class":137},[131,1572,1573],{"class":818},"Mesmo do faturamento",[131,1575,815],{"class":137},[131,1577,183],{"class":137},[131,1579,1580],{"class":133,"line":687},[131,1581,1358],{"class":137},[131,1583,1584,1586,1588,1590,1592,1594,1596,1598,1600,1602,1604,1606,1608,1610],{"class":133,"line":693},[131,1585,1363],{"class":578},[131,1587,415],{"class":137},[131,1589,1446],{"class":157},[131,1591,161],{"class":137},[131,1593,609],{"class":578},[131,1595,415],{"class":137},[131,1597,636],{"class":157},[131,1599,161],{"class":137},[131,1601,609],{"class":578},[131,1603,415],{"class":137},[131,1605,645],{"class":157},[131,1607,161],{"class":137},[131,1609,868],{"class":650},[131,1611,654],{"class":137},[131,1613,1614],{"class":133,"line":699},[131,1615,1473],{"class":137},[131,1617,1618],{"class":133,"line":705},[131,1619,917],{"class":137},[131,1621,1622],{"class":133,"line":711},[131,1623,1624],{"class":137},"})\n",[19,1626,1627,1628,1630,1631,1633,1634,1637,1638,1640,1641,1644],{},"O ",[23,1629,453],{}," que ",[23,1632,84],{}," recebe empilha o conteúdo ",[64,1635,1636],{},"verticalmente",". Também não dá para dividir um Box horizontalmente — para isso, você volta ao Idioma 1. Mas para o padrão de \"cartão\" que a sintaxe de row aninhado costuma tentar, esta é a ferramenta certa. A linha ",[23,1639,1194],{}," em ",[23,1642,1643],{},"gpdf/template/grid.go:246"," é o único aninhamento que a grade permite, e é deliberadamente unidimensional.",[14,1646,1648],{"id":1647},"idioma-3-planeje-a-sub-grade-direto-em-12-colunas","Idioma 3 — Planeje a sub-grade direto em 12 colunas",[19,1650,1651,1652,1655,1656,1659],{},"Às vezes você quer mesmo um layout de 2 colunas dentro do que parece uma seção de meia página: uma miniatura e uma legenda na metade esquerda, um parágrafo na direita. O instinto é ",[23,1653,1654],{},"Col(6) > Row > Col(6) + Col(6)",". O equivalente plano é só ",[23,1657,1658],{},"Col(3) + Col(3) + Col(6)",":",[122,1661,1663],{"className":124,"code":1662,"language":126,"meta":127,"style":127},"page.AutoRow(func(r *template.RowBuilder) {\n    r.Col(3, func(c *template.ColBuilder) {\n        c.Image(thumbBytes)\n    })\n    r.Col(3, func(c *template.ColBuilder) {\n        c.Text(\"Foto por Ansel Adams\", template.Italic())\n        c.Text(\"1942\")\n    })\n    r.Col(6, func(c *template.ColBuilder) {\n        c.Text(\"O parágrafo do corpo ocupa a metade direita da página.\")\n    })\n})\n",[23,1664,1665,1689,1720,1735,1739,1769,1797,1816,1820,1850,1869,1873],{"__ignoreMap":127},[131,1666,1667,1669,1671,1673,1675,1677,1679,1681,1683,1685,1687],{"class":133,"line":134},[131,1668,1211],{"class":578},[131,1670,415],{"class":137},[131,1672,98],{"class":157},[131,1674,750],{"class":137},[131,1676,753],{"class":144},[131,1678,255],{"class":137},[131,1680,758],{"class":151},[131,1682,415],{"class":137},[131,1684,763],{"class":151},[131,1686,154],{"class":137},[131,1688,572],{"class":137},[131,1690,1691,1693,1695,1697,1699,1702,1704,1706,1708,1710,1712,1714,1716,1718],{"class":133,"line":186},[131,1692,1236],{"class":578},[131,1694,415],{"class":137},[131,1696,438],{"class":157},[131,1698,161],{"class":137},[131,1700,1701],{"class":650},"3",[131,1703,171],{"class":137},[131,1705,249],{"class":137},[131,1707,252],{"class":144},[131,1709,255],{"class":137},[131,1711,758],{"class":151},[131,1713,415],{"class":137},[131,1715,70],{"class":151},[131,1717,154],{"class":137},[131,1719,572],{"class":137},[131,1721,1722,1724,1726,1728,1730,1733],{"class":133,"line":226},[131,1723,1268],{"class":578},[131,1725,415],{"class":137},[131,1727,78],{"class":157},[131,1729,161],{"class":137},[131,1731,1732],{"class":578},"thumbBytes",[131,1734,183],{"class":137},[131,1736,1737],{"class":133,"line":272},[131,1738,917],{"class":137},[131,1740,1741,1743,1745,1747,1749,1751,1753,1755,1757,1759,1761,1763,1765,1767],{"class":133,"line":321},[131,1742,1236],{"class":578},[131,1744,415],{"class":137},[131,1746,438],{"class":157},[131,1748,161],{"class":137},[131,1750,1701],{"class":650},[131,1752,171],{"class":137},[131,1754,249],{"class":137},[131,1756,252],{"class":144},[131,1758,255],{"class":137},[131,1760,758],{"class":151},[131,1762,415],{"class":137},[131,1764,70],{"class":151},[131,1766,154],{"class":137},[131,1768,572],{"class":137},[131,1770,1771,1773,1775,1777,1779,1781,1784,1786,1788,1790,1792,1795],{"class":133,"line":351},[131,1772,1268],{"class":578},[131,1774,415],{"class":137},[131,1776,74],{"class":157},[131,1778,161],{"class":137},[131,1780,815],{"class":137},[131,1782,1783],{"class":818},"Foto por Ansel Adams",[131,1785,815],{"class":137},[131,1787,171],{"class":137},[131,1789,826],{"class":578},[131,1791,415],{"class":137},[131,1793,1794],{"class":157},"Italic",[131,1796,848],{"class":137},[131,1798,1799,1801,1803,1805,1807,1809,1812,1814],{"class":133,"line":389},[131,1800,1268],{"class":578},[131,1802,415],{"class":137},[131,1804,74],{"class":157},[131,1806,161],{"class":137},[131,1808,815],{"class":137},[131,1810,1811],{"class":818},"1942",[131,1813,815],{"class":137},[131,1815,183],{"class":137},[131,1817,1818],{"class":133,"line":423},[131,1819,917],{"class":137},[131,1821,1822,1824,1826,1828,1830,1832,1834,1836,1838,1840,1842,1844,1846,1848],{"class":133,"line":541},[131,1823,1236],{"class":578},[131,1825,415],{"class":137},[131,1827,438],{"class":157},[131,1829,161],{"class":137},[131,1831,1245],{"class":650},[131,1833,171],{"class":137},[131,1835,249],{"class":137},[131,1837,252],{"class":144},[131,1839,255],{"class":137},[131,1841,758],{"class":151},[131,1843,415],{"class":137},[131,1845,70],{"class":151},[131,1847,154],{"class":137},[131,1849,572],{"class":137},[131,1851,1852,1854,1856,1858,1860,1862,1865,1867],{"class":133,"line":551},[131,1853,1268],{"class":578},[131,1855,415],{"class":137},[131,1857,74],{"class":157},[131,1859,161],{"class":137},[131,1861,815],{"class":137},[131,1863,1864],{"class":818},"O parágrafo do corpo ocupa a metade direita da página.",[131,1866,815],{"class":137},[131,1868,183],{"class":137},[131,1870,1871],{"class":133,"line":556},[131,1872,917],{"class":137},[131,1874,1875],{"class":133,"line":561},[131,1876,1624],{"class":137},[19,1878,1879,1882,1883,1885,1886,1889],{},[23,1880,1881],{},"3 + 3"," somados dão ",[23,1884,1245],{},", então o par miniatura/legenda ocupa exatamente a metade esquerda. Doze fatora em 2, 3, 4 e 6, então uma grade aninhada quase sempre achata limpo. Se sua grade aninhada era ",[23,1887,1888],{},"Col(8) > Row > Col(7) + Col(5)",", isso não achata — mas esses números também não significam nada num documento de verdade. Escolha a versão plana que significa.",[14,1891,1893],{"id":1892},"por-que-sem-aninhamento","Por que sem aninhamento",[19,1895,1896,1897,1900,1901,1904,1905,1908],{},"Uma grade plana resolve larguras em uma passada. O row é uma porcentagem da largura da página menos margens. Cada ",[23,1898,1899],{},"Col(span)"," é ",[23,1902,1903],{},"span / 12"," disso. Pronto. Sem recursão, sem largura-de-uma-largura-de-uma-largura, sem contexto pai costurado pelo motor de layout. A linha em ",[23,1906,1907],{},"grid.go"," que calcula a largura da coluna é literalmente uma linha:",[122,1910,1912],{"className":124,"code":1911,"language":126,"meta":127,"style":127},"Width: document.Pct(float64(col.span) / float64(gridColumns) * 100),\n",[23,1913,1914],{"__ignoreMap":127},[131,1915,1916,1919,1921,1923,1925,1928,1930,1933,1935,1938,1940,1942,1944,1947,1950,1952,1955,1957,1959,1962],{"class":133,"line":134},[131,1917,1918],{"class":578},"Width",[131,1920,1659],{"class":137},[131,1922,412],{"class":578},[131,1924,415],{"class":137},[131,1926,1927],{"class":157},"Pct",[131,1929,161],{"class":137},[131,1931,1932],{"class":167},"float64",[131,1934,161],{"class":137},[131,1936,1937],{"class":578},"col",[131,1939,415],{"class":137},[131,1941,131],{"class":578},[131,1943,154],{"class":137},[131,1945,1946],{"class":137}," /",[131,1948,1949],{"class":167}," float64",[131,1951,161],{"class":137},[131,1953,1954],{"class":578},"gridColumns",[131,1956,154],{"class":137},[131,1958,255],{"class":137},[131,1960,1961],{"class":650}," 100",[131,1963,617],{"class":137},[19,1965,1966,1967,1183,1970,1183,1973,1976,1977,1979],{},"Adicione aninhamento e essa linha vira um percurso de árvore. De repente você precisa decidir o que ",[23,1968,1969],{},"Col(6)",[23,1971,1972],{},"Col(8)",[23,1974,1975],{},"Col(12)"," significa — ",[23,1978,1245],{}," é 50% da coluna pai, 50% do row, ou 50% da página? Bootstrap escolheu \"50% do pai\" e adicionou breakpoints e gutters para tornar isso suportável. PDFs não têm breakpoints. PDFs não têm contêiner fluido. Pegar emprestado o idioma de aninhamento importaria três problemas que não temos, em troca de um atalho sintático que não precisamos.",[14,1981,1983],{"id":1982},"mas-eu-quero-localidade-sintática","\"Mas eu quero localidade sintática\"",[19,1985,1986,1987,1989],{},"Justo. A desvantagem de achatar é que duas chamadas ",[23,1988,98],{}," que pertencem conceitualmente juntas podem se afastar no código conforme você edita. Um pequeno helper fecha a lacuna:",[122,1991,1993],{"className":124,"code":1992,"language":126,"meta":127,"style":127},"func card(page *template.PageBuilder, title, body string) {\n    page.AutoRow(func(r *template.RowBuilder) {\n        r.Col(12, func(c *template.ColBuilder) {\n            c.Text(title, template.Bold())\n        })\n    })\n    page.AutoRow(func(r *template.RowBuilder) {\n        r.Col(12, func(c *template.ColBuilder) {\n            c.Text(body)\n        })\n    })\n}\n",[23,1994,1995,2030,2054,2085,2108,2112,2116,2140,2170,2185,2189,2193],{"__ignoreMap":127},[131,1996,1997,1999,2002,2004,2006,2008,2010,2012,2014,2016,2019,2021,2024,2026,2028],{"class":133,"line":134},[131,1998,138],{"class":137},[131,2000,2001],{"class":157}," card",[131,2003,161],{"class":137},[131,2005,1211],{"class":144},[131,2007,255],{"class":137},[131,2009,758],{"class":151},[131,2011,415],{"class":137},[131,2013,102],{"class":151},[131,2015,171],{"class":137},[131,2017,2018],{"class":144}," title",[131,2020,171],{"class":137},[131,2022,2023],{"class":144}," body",[131,2025,168],{"class":167},[131,2027,154],{"class":137},[131,2029,572],{"class":137},[131,2031,2032,2034,2036,2038,2040,2042,2044,2046,2048,2050,2052],{"class":133,"line":186},[131,2033,743],{"class":578},[131,2035,415],{"class":137},[131,2037,98],{"class":157},[131,2039,750],{"class":137},[131,2041,753],{"class":144},[131,2043,255],{"class":137},[131,2045,758],{"class":151},[131,2047,415],{"class":137},[131,2049,763],{"class":151},[131,2051,154],{"class":137},[131,2053,572],{"class":137},[131,2055,2056,2058,2060,2062,2064,2067,2069,2071,2073,2075,2077,2079,2081,2083],{"class":133,"line":226},[131,2057,773],{"class":578},[131,2059,415],{"class":137},[131,2061,438],{"class":157},[131,2063,161],{"class":137},[131,2065,2066],{"class":650},"12",[131,2068,171],{"class":137},[131,2070,249],{"class":137},[131,2072,252],{"class":144},[131,2074,255],{"class":137},[131,2076,758],{"class":151},[131,2078,415],{"class":137},[131,2080,70],{"class":151},[131,2082,154],{"class":137},[131,2084,572],{"class":137},[131,2086,2087,2089,2091,2093,2095,2098,2100,2102,2104,2106],{"class":133,"line":272},[131,2088,806],{"class":578},[131,2090,415],{"class":137},[131,2092,74],{"class":157},[131,2094,161],{"class":137},[131,2096,2097],{"class":578},"title",[131,2099,171],{"class":137},[131,2101,826],{"class":578},[131,2103,415],{"class":137},[131,2105,845],{"class":157},[131,2107,848],{"class":137},[131,2109,2110],{"class":133,"line":321},[131,2111,854],{"class":137},[131,2113,2114],{"class":133,"line":351},[131,2115,917],{"class":137},[131,2117,2118,2120,2122,2124,2126,2128,2130,2132,2134,2136,2138],{"class":133,"line":389},[131,2119,743],{"class":578},[131,2121,415],{"class":137},[131,2123,98],{"class":157},[131,2125,750],{"class":137},[131,2127,753],{"class":144},[131,2129,255],{"class":137},[131,2131,758],{"class":151},[131,2133,415],{"class":137},[131,2135,763],{"class":151},[131,2137,154],{"class":137},[131,2139,572],{"class":137},[131,2141,2142,2144,2146,2148,2150,2152,2154,2156,2158,2160,2162,2164,2166,2168],{"class":133,"line":423},[131,2143,773],{"class":578},[131,2145,415],{"class":137},[131,2147,438],{"class":157},[131,2149,161],{"class":137},[131,2151,2066],{"class":650},[131,2153,171],{"class":137},[131,2155,249],{"class":137},[131,2157,252],{"class":144},[131,2159,255],{"class":137},[131,2161,758],{"class":151},[131,2163,415],{"class":137},[131,2165,70],{"class":151},[131,2167,154],{"class":137},[131,2169,572],{"class":137},[131,2171,2172,2174,2176,2178,2180,2183],{"class":133,"line":541},[131,2173,806],{"class":578},[131,2175,415],{"class":137},[131,2177,74],{"class":157},[131,2179,161],{"class":137},[131,2181,2182],{"class":578},"body",[131,2184,183],{"class":137},[131,2186,2187],{"class":133,"line":551},[131,2188,854],{"class":137},[131,2190,2191],{"class":133,"line":556},[131,2192,917],{"class":137},[131,2194,2195],{"class":133,"line":561},[131,2196,1170],{"class":137},[19,2198,2199,2200,2203],{},"A localidade vive na sua função, não na API. O gpdf não embute ",[23,2201,2202],{},"card"," porque são três linhas e a sua versão vai se ajustar melhor ao seu documento do que a nossa.",[14,2205,2207],{"id":2206},"receitas-relacionadas","Receitas relacionadas",[2209,2210,2211,2219,2226],"ul",{},[2212,2213,2214,2218],"li",{},[41,2215,2217],{"href":2216},"/pt/blog/12-column-grid","Como a grade de 12 colunas do gpdf funciona?"," — a grade em detalhe",[2212,2220,2221,2225],{},[41,2222,2224],{"href":2223},"/pt/blog/invoice-pdf-go-under-50-lines","Gerar um PDF de fatura em Go em menos de 50 linhas"," — um layout de grade plana sustentando um documento inteiro",[2212,2227,2228,2233],{},[41,2229,2232],{"href":2230,"rel":2231},"https://gpdf.dev/docs/guide/layout",[45],"Layout guide"," — referência completa de rows, colunas e Box",[14,2235,2237],{"id":2236},"experimente-o-gpdf","Experimente o gpdf",[19,2239,2240],{},"O gpdf é uma biblioteca Go para gerar PDFs. Licença MIT, zero dependências externas, suporte CJK nativo.",[122,2242,2246],{"className":2243,"code":2244,"language":2245,"meta":127,"style":127},"language-bash shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","go get github.com/gpdf-dev/gpdf\n","bash",[23,2247,2248],{"__ignoreMap":127},[131,2249,2250,2252,2255],{"class":133,"line":134},[131,2251,126],{"class":151},[131,2253,2254],{"class":818}," get",[131,2256,2257],{"class":818}," github.com/gpdf-dev/gpdf\n",[19,2259,2260,2264,2265],{},[41,2261,2263],{"href":43,"rel":2262},[45],"⭐ Star no GitHub"," · ",[41,2266,2269],{"href":2267,"rel":2268},"https://gpdf.dev/pt/docs/quickstart",[45],"Leia a documentação",[2271,2272,2273],"style",{},"html pre.shiki code .sMK4o, html code.shiki .sMK4o{--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF}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 pre.shiki code .sBMFI, html code.shiki .sBMFI{--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B}html pre.shiki code .s2Zo4, html code.shiki .s2Zo4{--shiki-light:#6182B8;--shiki-default:#82AAFF;--shiki-dark:#82AAFF}html pre.shiki code .spNyl, html code.shiki .spNyl{--shiki-light:#9C3EDA;--shiki-default:#C792EA;--shiki-dark:#C792EA}html pre.shiki code .sHwdD, html code.shiki .sHwdD{--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#546E7A;--shiki-default-font-style:italic;--shiki-dark:#676E95;--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);}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 .sTEyZ, html code.shiki .sTEyZ{--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8}html pre.shiki code .sbssI, html code.shiki .sbssI{--shiki-light:#F76D47;--shiki-default:#F78C6C;--shiki-dark:#F78C6C}html pre.shiki code .sfazB, html code.shiki .sfazB{--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D}",{"title":127,"searchDepth":186,"depth":186,"links":2275},[2276,2277,2278,2279,2280,2282,2283,2284,2285,2286],{"id":16,"depth":186,"text":17},{"id":58,"depth":186,"text":59},{"id":109,"depth":186,"text":110},{"id":464,"depth":186,"text":465},{"id":1190,"depth":186,"text":2281},"Idioma 2 — c.Box para agrupamento visual",{"id":1647,"depth":186,"text":1648},{"id":1892,"depth":186,"text":1893},{"id":1982,"depth":186,"text":1983},{"id":2206,"depth":186,"text":2207},{"id":2236,"depth":186,"text":2237},"Não dá — ColBuilder não tem método Row no gpdf. A grade de 12 colunas é plana de propósito. Três idiomas substituem os rows aninhados.",false,"md",{"name":2291,"totalTime":2292,"tools":2293,"steps":2295},"Substituir um layout aninhado de Row-em-Col no gpdf por um idioma de grade plana","PT10M",[2294,527],"Go 1.22+",[2296,2299,2302,2305,2308],{"name":2297,"text":2298},"Pare de procurar c.Row","ColBuilder não tem Row nem AutoRow. page.AutoRow e page.Row só existem em PageBuilder. Se o autocomplete do editor não mostra c.Row, é a API dizendo não — não é um import faltando.",{"name":2300,"text":2301},"Decida o que você realmente queria","Três casos cobrem quase tudo. (1) Duas linhas visuais que compartilham fronteira de coluna — você queria um sub-layout. (2) Cabeçalho e corpo dentro de um cartão — você queria agrupamento visual. (3) Uma grade 2×2 dentro de uma coluna — você queria uma sub-grade.",{"name":2303,"text":2304},"Para sub-layout, use AutoRows irmãos no nível da página","Empilhe duas chamadas page.AutoRow com os mesmos spans de Col. As colunas se alinham visualmente porque a largura do row é a mesma. Você não perde nada ao achatar — rows já são independentes.",{"name":2306,"text":2307},"Para agrupamento visual, use c.Box dentro da coluna","c.Box(fn, WithBoxBorder, WithBoxBackground, WithBoxPadding) envolve uma pilha de conteúdo em um contêiner estilizado. Não é uma sub-grade — aceita Text, Image, Table etc., não Row — mas entrega o visual de cartão com borda que 80% das tentativas de row aninhado realmente queriam.",{"name":2309,"text":2310},"Para sub-grade de verdade, planeje em spans menores de 12","Em vez de aninhar 6+6 dentro de Col(6), escreva o layout inteiro como 3+3+6 no nível superior. A grade de 12 colunas fatora em metades, terços, quartos e sextos — a maioria dos padrões aninhados achata limpo em um row plano.",null,{},"/pt/blog/nest-row-in-col",{"title":5,"description":2287},"pt/blog/025.nest-row-in-col",[2317,2318,2319],"recipe","tutorial","templates","RjKntRbRg0WL4vqBsK9IoyC9JlgYPrbfsBuaiPz7-dE",1779199037304]