[{"data":1,"prerenderedAt":2321},["ShallowReactive",2],{"blog-es-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},"blogEs/es/blog/025.nest-row-in-col.md","¿Cómo anidar un Row dentro de un Col en gpdf?",{"name":7,"url":8,"avatar":9},"Taiki Noda","https://nadai.dev/es/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},"la-pregunta-en-otras-palabras","La pregunta, en otras palabras",[19,20,21,22,26,27,30,31,33,34,36,37,39,40,47,48,51,52,55],"p",{},"Vienes de Bootstrap o Tailwind, donde ",[23,24,25],"code",{},".row"," y ",[23,28,29],{},".col"," se anidan libremente. Puedes meter un ",[23,32,25],{}," dentro de un ",[23,35,29],{}," dentro de otro ",[23,38,25],{}," y la cuadrícula sigue cascadeando. Te sientas con ",[41,42,46],"a",{"href":43,"rel":44},"https://github.com/gpdf-dev/gpdf",[45],"nofollow","gpdf",", ves el mismo idioma ",[23,49,50],{},"r.Col(span, fn)",", y vas a buscar ",[23,53,54],{},"c.Row(...)"," dentro del callback de la columna. No está. ¿Fue un olvido?",[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],{},"No. ",[64,65,66],"strong",{},"La cuadrícula de 12 columnas de gpdf es plana a propósito."," ",[23,69,70],{},"ColBuilder"," solo acepta contenido — ",[23,73,74],{},"Text",", ",[23,77,78],{},"Image",[23,80,81],{},"Table",[23,83,84],{},"Box",[23,86,87],{},"List",[23,89,90],{},"Spacer"," — y ",[23,93,94],{},"Row"," / ",[23,97,98],{},"AutoRow"," viven en ",[23,101,102],{},"PageBuilder",", no en ",[23,105,70],{},". Si llegaste aquí buscando la sintaxis, no existe. Sigue leyendo para las tres cosas que la reemplazan.",[14,108,110],{"id":109},"la-forma-de-la-api","La forma de la API",[19,112,113,114,116,117,120],{},"Esto es lo que realmente contiene el conjunto de métodos de ",[23,115,70],{}," (desde ",[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],{},"No hay ",[23,432,94],{},". No hay ",[23,435,98],{},[23,437,438],{},"Col",". La ruta ",[23,441,442],{},"Col → Row"," no existe como método, y ",[23,445,446],{},"c.Box(fn, ...)"," es lo más cercano — pero ",[23,449,84],{}," acepta otro ",[23,452,453],{},"*ColBuilder",", no un row. Puedes anidar ",[64,456,457],{},"columnas dentro de columnas"," (más o menos, vía ",[23,460,84],{},"), pero no puedes abrir un nuevo row horizontal dentro de una columna. Esa es la restricción.",[14,463,465],{"id":464},"idioma-1-rows-hermanos-al-nivel-de-página","Idioma 1 — Rows hermanos al nivel de página",[19,467,468],{},"Esto es lo que el 90% de los patrones \"row anidado\" realmente quieren.",[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    // Lo que querías escribir (pero no puedes):\n    //\n    //   page.AutoRow(func(r *template.RowBuilder) {\n    //       r.Col(8, func(c *template.ColBuilder) {\n    //           c.Row(...) ❌ no existe\n    //       })\n    //   })\n\n    // Lo que escribes en su lugar:\n    page.AutoRow(func(r *template.RowBuilder) {\n        r.Col(8, func(c *template.ColBuilder) {\n            c.Text(\"Título del artículo\", 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(\"El párrafo de entrada ocupa la misma columna 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},"    // Lo que querías escribir (pero no puedes):\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(...) ❌ no 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},"    // Lo que escribes en su 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 del artículo",[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},"El párrafo de entrada ocupa la misma columna 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],{},"Los dos ",[23,1175,98],{}," comparten los mismos spans ",[23,1178,1179],{},"8+4",", así que las columnas se alinean visualmente. No hay sub-cuadrícula; hay una secuencia plana de rows que casualmente usan el mismo reparto. La salida es idéntica a la que obtendrías de un layout CSS que anidara ",[23,1182,25],{}," dentro de ",[23,1185,1186],{},".col-8"," — porque lo único que la forma anidada te compraba era localidad sintáctica, y gpdf prefiere que gastes ese presupuesto en consistencia de ancho.",[14,1189,1191,1192,1195],{"id":1190},"idioma-2-cbox-para-agrupamiento-visual","Idioma 2 — ",[23,1193,1194],{},"c.Box"," para agrupamiento visual",[19,1197,1198,1199,1201],{},"Si la motivación real era \"quiero una tarjeta con borde con dos elementos apilados dentro de esta columna\", querías ",[23,1200,84],{},", no un 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(\"Facturar a\", template.Bold())\n            c.Text(\"Acme S.L.\")\n            c.Text(\"Madrid, España\")\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 a\", template.Bold())\n            c.Text(\"Igual que facturación\")\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},"Facturar a",[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 S.L.",[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},"Madrid, España",[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 a",[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},"Igual que facturación",[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],{},"El ",[23,1629,453],{}," que recibe ",[23,1632,84],{}," apila su contenido ",[64,1635,1636],{},"verticalmente",". Tampoco puedes dividir un Box horizontalmente — para eso, vuelves al Idioma 1. Pero para el patrón de \"tarjeta\" que la sintaxis de row anidado suele perseguir, esta es la herramienta correcta. La línea ",[23,1639,1194],{}," en ",[23,1642,1643],{},"gpdf/template/grid.go:246"," es la única anidación que hace la cuadrícula, y es deliberadamente unidimensional.",[14,1646,1648],{"id":1647},"idioma-3-planear-la-sub-cuadrícula-directo-en-12-columnas","Idioma 3 — Planear la sub-cuadrícula directo en 12 columnas",[19,1650,1651,1652,1655,1656,1659],{},"A veces realmente quieres un layout de 2 columnas dentro de lo que parece una sección de media página: una miniatura y un pie de foto dentro de la mitad izquierda, un párrafo a la derecha. El instinto es ",[23,1653,1654],{},"Col(6) > Row > Col(6) + Col(6)",". El equivalente plano es simplemente ",[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(\"El párrafo del cuerpo ocupa la mitad derecha de la 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},"El párrafo del cuerpo ocupa la mitad derecha de la 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"," juntos suman ",[23,1884,1245],{},", así que el par miniatura/pie ocupa exactamente la mitad izquierda. Doce factoriza en 2, 3, 4 y 6, así que una cuadrícula anidada casi siempre se aplana limpio. Si tu cuadrícula anidada era ",[23,1887,1888],{},"Col(8) > Row > Col(7) + Col(5)",", eso no se aplana — pero esos números tampoco significan nada en un documento real. Elige la versión plana que sí significa algo.",[14,1891,1893],{"id":1892},"por-qué-no-hay-anidación","Por qué no hay anidación",[19,1895,1896,1897,1900,1901,1904,1905,1908],{},"Una cuadrícula plana resuelve anchos en una pasada. El row es un porcentaje del ancho de página menos márgenes. Cada ",[23,1898,1899],{},"Col(span)"," es ",[23,1902,1903],{},"span / 12"," de eso. Listo. No hay recursión, no hay ancho-de-un-ancho-de-un-ancho, no hay contexto padre que enhebrar por el motor de layout. La línea en ",[23,1906,1907],{},"grid.go"," que calcula el ancho de columna es literalmente una línea:",[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],{},"Añade anidación y esa línea se vuelve un recorrido de árbol. De repente necesitas decidir qué significa ",[23,1968,1969],{},"Col(6)",[23,1971,1972],{},"Col(8)",[23,1974,1975],{},"Col(12)"," — ¿es ",[23,1978,1245],{}," el 50% de la columna padre, el 50% del row, o el 50% de la página? Bootstrap eligió \"50% del padre\" y añadió breakpoints y gutters para hacerlo soportable. Los PDF no tienen breakpoints. Los PDF no tienen contenedor fluido. Pedir prestada la sintaxis de anidación importaría tres problemas que no tenemos, a cambio de un atajo sintáctico que no necesitamos.",[14,1981,1983],{"id":1982},"pero-realmente-quiero-localidad-sintáctica","\"Pero realmente quiero localidad sintáctica\"",[19,1985,1986,1987,1989],{},"Justo. La desventaja de aplanar es que dos llamadas a ",[23,1988,98],{}," que pertenecen conceptualmente juntas pueden separarse en el código mientras editas. Un pequeño helper cierra la brecha:",[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],{},"La localidad vive en tu función, no en la API. gpdf no incluye ",[23,2201,2202],{},"card"," porque son tres líneas y tu versión va a ajustarse mejor a tu documento que la nuestra.",[14,2205,2207],{"id":2206},"recetas-relacionadas","Recetas relacionadas",[2209,2210,2211,2219,2226],"ul",{},[2212,2213,2214,2218],"li",{},[41,2215,2217],{"href":2216},"/es/blog/12-column-grid","¿Cómo funciona la cuadrícula de 12 columnas en gpdf?"," — la cuadrícula en detalle",[2212,2220,2221,2225],{},[41,2222,2224],{"href":2223},"/es/blog/invoice-pdf-go-under-50-lines","Generar un PDF de factura en Go en menos de 50 líneas"," — un layout de cuadrícula plana que sostiene un documento entero",[2212,2227,2228,2233],{},[41,2229,2232],{"href":2230,"rel":2231},"https://gpdf.dev/docs/guide/layout",[45],"Layout guide"," — referencia completa de rows, columnas y Box",[14,2235,2237],{"id":2236},"prueba-gpdf","Prueba gpdf",[19,2239,2240],{},"gpdf es una biblioteca Go para generar PDFs. Licencia MIT, cero dependencias externas, soporte nativo CJK.",[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 en GitHub"," · ",[41,2266,2269],{"href":2267,"rel":2268},"https://gpdf.dev/es/docs/quickstart",[45],"Leer la documentación",[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 agrupamiento 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},"No se puede — ColBuilder no tiene método Row en gpdf. La cuadrícula de 12 columnas es plana a propósito. Tres idiomas reemplazan los rows anidados.",false,"md",{"name":2291,"totalTime":2292,"tools":2293,"steps":2295},"Reemplazar un layout anidado de Row-en-Col en gpdf con un idioma de cuadrícula plana","PT10M",[2294,527],"Go 1.22+",[2296,2299,2302,2305,2308],{"name":2297,"text":2298},"Deja de buscar c.Row","ColBuilder no tiene Row ni AutoRow. page.AutoRow y page.Row solo existen en PageBuilder. Si tu editor no autocompleta c.Row, es la API diciéndote que no — no es un import faltante.",{"name":2300,"text":2301},"Decide qué necesitabas en realidad","Tres casos cubren casi todo. (1) Dos rows visuales que comparten frontera de columna — querías un sub-layout. (2) Encabezado y cuerpo dentro de una tarjeta — querías agrupamiento visual. (3) Una rejilla 2×2 dentro de una columna — querías una sub-cuadrícula.",{"name":2303,"text":2304},"Para un sub-layout, usa AutoRows hermanos al nivel de página","Apila dos llamadas page.AutoRow con los mismos spans de Col. Las columnas se alinean visualmente porque el ancho del row es el mismo. No pierdes nada al aplanar — los rows ya son independientes.",{"name":2306,"text":2307},"Para agrupamiento visual, usa c.Box dentro de la columna","c.Box(fn, WithBoxBorder, WithBoxBackground, WithBoxPadding) envuelve una pila de contenido en un contenedor con estilo. No es una sub-cuadrícula — acepta Text, Image, Table, etc., no Row — pero te da el look de tarjeta con borde que el 80% de los intentos de row anidado buscaban en realidad.",{"name":2309,"text":2310},"Para una sub-cuadrícula real, plánea con spans de 12 más finos","En vez de anidar 6+6 dentro de Col(6), expresa el layout entero como 3+3+6 al nivel superior. La cuadrícula de 12 columnas factoriza en mitades, tercios, cuartos y sextos — la mayoría de los patrones anidados se aplanan limpiamente en un row plano.",null,{},"/es/blog/nest-row-in-col",{"title":5,"description":2287},"es/blog/025.nest-row-in-col",[2317,2318,2319],"recipe","tutorial","templates","Ob7gUiwH7mUexa6l4VbzX9kax4-_-XGdyD5gQPrRmtA",1779199040919]