[{"data":1,"prerenderedAt":879},["ShallowReactive",2],{"docs-ja-guide/flatten":3},{"id":4,"title":5,"body":6,"description":872,"extension":873,"meta":874,"navigation":92,"path":875,"seo":876,"stem":877,"__hash__":878},"docsJa/ja/docs/2.guide/10.flatten.md","フォームフラット化",{"type":7,"value":8,"toc":862},"minimark",[9,13,17,21,24,40,43,54,332,335,340,372,375,382,393,397,407,508,512,515,794,798,828,831,858],[10,11,12],"h2",{"id":12},"概要",[14,15],"version-badge",{"version":16},"1.0.4",[18,19,20],"p",{},"gpdfはインタラクティブなAcroFormフィールド（テキストフィールド、チェックボックス、ラジオボタンなど）を静的ページコンテンツにフラット化できます。フラット化後、フォームフィールドは編集不可になり、その視覚的な表示がページに焼き込まれます。",[18,22,23],{},"一般的なユースケース:",[25,26,27,31,34,37],"ul",{},[28,29,30],"li",{},"入力済みフォームを静的ドキュメントとしてアーカイブ",[28,32,33],{},"提出済みフォームのさらなる編集を防止",[28,35,36],{},"フォームを印刷や配布用に準備",[28,38,39],{},"インタラクティブPDFを静的PDFに変換",[10,41,42],{"id":42},"基本的なフラット化",[18,44,45,49,50,53],{},[46,47,48],"code",{},"gpdf.Open()"," で開いた既存のドキュメントに対して ",[46,51,52],{},"FlattenForms()"," を使用します:",[55,56,61],"pre",{"className":57,"code":58,"language":59,"meta":60,"style":60},"language-go shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","import gpdf \"github.com/gpdf-dev/gpdf\"\n\n// フォームフィールドが入力済みのPDFを読み込む\npdfBytes, _ := os.ReadFile(\"filled-form.pdf\")\n\ndoc, err := gpdf.Open(pdfBytes)\nif err != nil {\n    log.Fatal(err)\n}\n\n// すべてのフォームフィールドを静的コンテンツにフラット化\nif err := doc.FlattenForms(); err != nil {\n    log.Fatal(err)\n}\n\nresult, _ := doc.Save()\nos.WriteFile(\"flattened.pdf\", result, 0644)\n","go","",[46,62,63,87,94,101,140,145,172,189,207,213,218,224,252,267,272,277,299],{"__ignoreMap":60},[64,65,68,72,76,80,84],"span",{"class":66,"line":67},"line",1,[64,69,71],{"class":70},"s7zQu","import",[64,73,75],{"class":74},"sTEyZ"," gpdf ",[64,77,79],{"class":78},"sMK4o","\"",[64,81,83],{"class":82},"sBMFI","github.com/gpdf-dev/gpdf",[64,85,86],{"class":78},"\"\n",[64,88,90],{"class":66,"line":89},2,[64,91,93],{"emptyLinePlaceholder":92},true,"\n",[64,95,97],{"class":66,"line":96},3,[64,98,100],{"class":99},"sHwdD","// フォームフィールドが入力済みのPDFを読み込む\n",[64,102,104,107,110,113,116,119,122,126,129,131,135,137],{"class":66,"line":103},4,[64,105,106],{"class":74},"pdfBytes",[64,108,109],{"class":78},",",[64,111,112],{"class":74}," _ ",[64,114,115],{"class":78},":=",[64,117,118],{"class":74}," os",[64,120,121],{"class":78},".",[64,123,125],{"class":124},"s2Zo4","ReadFile",[64,127,128],{"class":78},"(",[64,130,79],{"class":78},[64,132,134],{"class":133},"sfazB","filled-form.pdf",[64,136,79],{"class":78},[64,138,139],{"class":78},")\n",[64,141,143],{"class":66,"line":142},5,[64,144,93],{"emptyLinePlaceholder":92},[64,146,148,151,153,156,158,161,163,166,168,170],{"class":66,"line":147},6,[64,149,150],{"class":74},"doc",[64,152,109],{"class":78},[64,154,155],{"class":74}," err ",[64,157,115],{"class":78},[64,159,160],{"class":74}," gpdf",[64,162,121],{"class":78},[64,164,165],{"class":124},"Open",[64,167,128],{"class":78},[64,169,106],{"class":74},[64,171,139],{"class":78},[64,173,175,178,180,183,186],{"class":66,"line":174},7,[64,176,177],{"class":70},"if",[64,179,155],{"class":74},[64,181,182],{"class":78},"!=",[64,184,185],{"class":78}," nil",[64,187,188],{"class":78}," {\n",[64,190,192,195,197,200,202,205],{"class":66,"line":191},8,[64,193,194],{"class":74},"    log",[64,196,121],{"class":78},[64,198,199],{"class":124},"Fatal",[64,201,128],{"class":78},[64,203,204],{"class":74},"err",[64,206,139],{"class":78},[64,208,210],{"class":66,"line":209},9,[64,211,212],{"class":78},"}\n",[64,214,216],{"class":66,"line":215},10,[64,217,93],{"emptyLinePlaceholder":92},[64,219,221],{"class":66,"line":220},11,[64,222,223],{"class":99},"// すべてのフォームフィールドを静的コンテンツにフラット化\n",[64,225,227,229,231,233,236,238,241,244,246,248,250],{"class":66,"line":226},12,[64,228,177],{"class":70},[64,230,155],{"class":74},[64,232,115],{"class":78},[64,234,235],{"class":74}," doc",[64,237,121],{"class":78},[64,239,240],{"class":124},"FlattenForms",[64,242,243],{"class":78},"();",[64,245,155],{"class":74},[64,247,182],{"class":78},[64,249,185],{"class":78},[64,251,188],{"class":78},[64,253,255,257,259,261,263,265],{"class":66,"line":254},13,[64,256,194],{"class":74},[64,258,121],{"class":78},[64,260,199],{"class":124},[64,262,128],{"class":78},[64,264,204],{"class":74},[64,266,139],{"class":78},[64,268,270],{"class":66,"line":269},14,[64,271,212],{"class":78},[64,273,275],{"class":66,"line":274},15,[64,276,93],{"emptyLinePlaceholder":92},[64,278,280,283,285,287,289,291,293,296],{"class":66,"line":279},16,[64,281,282],{"class":74},"result",[64,284,109],{"class":78},[64,286,112],{"class":74},[64,288,115],{"class":78},[64,290,235],{"class":74},[64,292,121],{"class":78},[64,294,295],{"class":124},"Save",[64,297,298],{"class":78},"()\n",[64,300,302,305,307,310,312,314,317,319,321,324,326,330],{"class":66,"line":301},17,[64,303,304],{"class":74},"os",[64,306,121],{"class":78},[64,308,309],{"class":124},"WriteFile",[64,311,128],{"class":78},[64,313,79],{"class":78},[64,315,316],{"class":133},"flattened.pdf",[64,318,79],{"class":78},[64,320,109],{"class":78},[64,322,323],{"class":74}," result",[64,325,109],{"class":78},[64,327,329],{"class":328},"sbssI"," 0644",[64,331,139],{"class":78},[10,333,334],{"id":334},"フラット化される要素",[18,336,337,339],{},[46,338,52],{}," はアピアランスストリームを持つすべてのウィジェットアノテーション（フォームフィールドウィジェット）を処理します:",[25,341,342,353,362],{},[28,343,344,348,349,352],{},[345,346,347],"strong",{},"テキストフィールド"," (",[46,350,351],{},"Tx",") — 入力されたテキストが静的コンテンツとしてレンダリングされます",[28,354,355,348,358,361],{},[345,356,357],{},"チェックボックスとラジオボタン",[46,359,360],{},"Btn",") — 選択された状態がレンダリングされます",[28,363,364,367,368,371],{},[345,365,366],{},"その他のウィジェットタイプ"," — アピアランスストリーム（",[46,369,370],{},"/AP"," 辞書）を持つすべてのウィジェット",[10,373,374],{"id":374},"保持される要素",[18,376,377,378,381],{},"ウィジェット以外のアノテーションは",[345,379,380],{},"削除されません",":",[25,383,384,387,390],{},[28,385,386],{},"リンクアノテーション（ハイパーリンク）",[28,388,389],{},"テキストアノテーション（コメント、付箋）",[28,391,392],{},"その他のフォーム以外のアノテーション",[10,394,396],{"id":395},"任意のpdfで安全に呼び出し可能","任意のPDFで安全に呼び出し可能",[18,398,399,400,402,403,406],{},"PDFにAcroFormフィールドがない場合、",[46,401,52],{}," は何も行わず ",[46,404,405],{},"nil"," を返します:",[55,408,410],{"className":57,"code":409,"language":59,"meta":60,"style":60},"doc, _ := gpdf.Open(regularPDFBytes)\n\n// 安全 — フォームが存在しない場合は何もしない\nif err := doc.FlattenForms(); err != nil {\n    log.Fatal(err)\n}\n\nresult, _ := doc.Save()\n",[46,411,412,435,439,444,468,482,486,490],{"__ignoreMap":60},[64,413,414,416,418,420,422,424,426,428,430,433],{"class":66,"line":67},[64,415,150],{"class":74},[64,417,109],{"class":78},[64,419,112],{"class":74},[64,421,115],{"class":78},[64,423,160],{"class":74},[64,425,121],{"class":78},[64,427,165],{"class":124},[64,429,128],{"class":78},[64,431,432],{"class":74},"regularPDFBytes",[64,434,139],{"class":78},[64,436,437],{"class":66,"line":89},[64,438,93],{"emptyLinePlaceholder":92},[64,440,441],{"class":66,"line":96},[64,442,443],{"class":99},"// 安全 — フォームが存在しない場合は何もしない\n",[64,445,446,448,450,452,454,456,458,460,462,464,466],{"class":66,"line":103},[64,447,177],{"class":70},[64,449,155],{"class":74},[64,451,115],{"class":78},[64,453,235],{"class":74},[64,455,121],{"class":78},[64,457,240],{"class":124},[64,459,243],{"class":78},[64,461,155],{"class":74},[64,463,182],{"class":78},[64,465,185],{"class":78},[64,467,188],{"class":78},[64,469,470,472,474,476,478,480],{"class":66,"line":142},[64,471,194],{"class":74},[64,473,121],{"class":78},[64,475,199],{"class":124},[64,477,128],{"class":78},[64,479,204],{"class":74},[64,481,139],{"class":78},[64,483,484],{"class":66,"line":147},[64,485,212],{"class":78},[64,487,488],{"class":66,"line":174},[64,489,93],{"emptyLinePlaceholder":92},[64,491,492,494,496,498,500,502,504,506],{"class":66,"line":191},[64,493,282],{"class":74},[64,495,109],{"class":78},[64,497,112],{"class":74},[64,499,115],{"class":78},[64,501,235],{"class":74},[64,503,121],{"class":78},[64,505,295],{"class":124},[64,507,298],{"class":78},[10,509,511],{"id":510},"フラット化-オーバーレイ","フラット化 + オーバーレイ",[18,513,514],{},"フラット化とオーバーレイを組み合わせて、フラット化後にスタンプや透かしを追加します:",[55,516,518],{"className":57,"code":517,"language":59,"meta":60,"style":60},"doc, _ := gpdf.Open(filledFormPDF)\n\n// Step 1: フォームフィールドをフラット化\ndoc.FlattenForms()\n\n// Step 2: 「PROCESSED」スタンプを追加\ndoc.Overlay(0, func(p *template.PageBuilder) {\n    p.Absolute(document.Mm(130), document.Mm(15), func(c *template.ColBuilder) {\n        c.Text(\"PROCESSED\",\n            template.FontSize(24),\n            template.Bold(),\n            template.TextColor(pdf.RGB(0, 0.5, 0)),\n        )\n    })\n})\n\nresult, _ := doc.Save()\n",[46,519,520,543,547,552,562,566,571,609,669,691,709,721,757,762,767,772,776],{"__ignoreMap":60},[64,521,522,524,526,528,530,532,534,536,538,541],{"class":66,"line":67},[64,523,150],{"class":74},[64,525,109],{"class":78},[64,527,112],{"class":74},[64,529,115],{"class":78},[64,531,160],{"class":74},[64,533,121],{"class":78},[64,535,165],{"class":124},[64,537,128],{"class":78},[64,539,540],{"class":74},"filledFormPDF",[64,542,139],{"class":78},[64,544,545],{"class":66,"line":89},[64,546,93],{"emptyLinePlaceholder":92},[64,548,549],{"class":66,"line":96},[64,550,551],{"class":99},"// Step 1: フォームフィールドをフラット化\n",[64,553,554,556,558,560],{"class":66,"line":103},[64,555,150],{"class":74},[64,557,121],{"class":78},[64,559,240],{"class":124},[64,561,298],{"class":78},[64,563,564],{"class":66,"line":142},[64,565,93],{"emptyLinePlaceholder":92},[64,567,568],{"class":66,"line":147},[64,569,570],{"class":99},"// Step 2: 「PROCESSED」スタンプを追加\n",[64,572,573,575,577,580,582,585,587,590,593,596,599,601,604,607],{"class":66,"line":174},[64,574,150],{"class":74},[64,576,121],{"class":78},[64,578,579],{"class":124},"Overlay",[64,581,128],{"class":78},[64,583,584],{"class":328},"0",[64,586,109],{"class":78},[64,588,589],{"class":78}," func(",[64,591,18],{"class":592},"sHdIc",[64,594,595],{"class":78}," *",[64,597,598],{"class":82},"template",[64,600,121],{"class":78},[64,602,603],{"class":82},"PageBuilder",[64,605,606],{"class":78},")",[64,608,188],{"class":78},[64,610,611,614,616,619,621,624,626,629,631,634,637,640,642,644,646,649,651,653,656,658,660,662,665,667],{"class":66,"line":191},[64,612,613],{"class":74},"    p",[64,615,121],{"class":78},[64,617,618],{"class":124},"Absolute",[64,620,128],{"class":78},[64,622,623],{"class":74},"document",[64,625,121],{"class":78},[64,627,628],{"class":124},"Mm",[64,630,128],{"class":78},[64,632,633],{"class":328},"130",[64,635,636],{"class":78},"),",[64,638,639],{"class":74}," document",[64,641,121],{"class":78},[64,643,628],{"class":124},[64,645,128],{"class":78},[64,647,648],{"class":328},"15",[64,650,636],{"class":78},[64,652,589],{"class":78},[64,654,655],{"class":592},"c",[64,657,595],{"class":78},[64,659,598],{"class":82},[64,661,121],{"class":78},[64,663,664],{"class":82},"ColBuilder",[64,666,606],{"class":78},[64,668,188],{"class":78},[64,670,671,674,676,679,681,683,686,688],{"class":66,"line":209},[64,672,673],{"class":74},"        c",[64,675,121],{"class":78},[64,677,678],{"class":124},"Text",[64,680,128],{"class":78},[64,682,79],{"class":78},[64,684,685],{"class":133},"PROCESSED",[64,687,79],{"class":78},[64,689,690],{"class":78},",\n",[64,692,693,696,698,701,703,706],{"class":66,"line":215},[64,694,695],{"class":74},"            template",[64,697,121],{"class":78},[64,699,700],{"class":124},"FontSize",[64,702,128],{"class":78},[64,704,705],{"class":328},"24",[64,707,708],{"class":78},"),\n",[64,710,711,713,715,718],{"class":66,"line":220},[64,712,695],{"class":74},[64,714,121],{"class":78},[64,716,717],{"class":124},"Bold",[64,719,720],{"class":78},"(),\n",[64,722,723,725,727,730,732,735,737,740,742,744,746,749,751,754],{"class":66,"line":226},[64,724,695],{"class":74},[64,726,121],{"class":78},[64,728,729],{"class":124},"TextColor",[64,731,128],{"class":78},[64,733,734],{"class":74},"pdf",[64,736,121],{"class":78},[64,738,739],{"class":124},"RGB",[64,741,128],{"class":78},[64,743,584],{"class":328},[64,745,109],{"class":78},[64,747,748],{"class":328}," 0.5",[64,750,109],{"class":78},[64,752,753],{"class":328}," 0",[64,755,756],{"class":78},")),\n",[64,758,759],{"class":66,"line":254},[64,760,761],{"class":78},"        )\n",[64,763,764],{"class":66,"line":269},[64,765,766],{"class":78},"    })\n",[64,768,769],{"class":66,"line":274},[64,770,771],{"class":78},"})\n",[64,773,774],{"class":66,"line":279},[64,775,93],{"emptyLinePlaceholder":92},[64,777,778,780,782,784,786,788,790,792],{"class":66,"line":301},[64,779,282],{"class":74},[64,781,109],{"class":78},[64,783,112],{"class":74},[64,785,115],{"class":78},[64,787,235],{"class":74},[64,789,121],{"class":78},[64,791,295],{"class":124},[64,793,298],{"class":78},[10,795,797],{"id":796},"apiリファレンス","APIリファレンス",[799,800,801,814],"table",{},[802,803,804],"thead",{},[805,806,807,811],"tr",{},[808,809,810],"th",{},"メソッド",[808,812,813],{},"説明",[815,816,817],"tbody",{},[805,818,819,825],{},[820,821,822],"td",{},[46,823,824],{},"doc.FlattenForms()",[820,826,827],{},"すべてのAcroFormフィールドを静的ページコンテンツにフラット化",[10,829,830],{"id":830},"次のステップ",[25,832,833,841,848],{},[28,834,835,840],{},[836,837,839],"a",{"href":838},"/ja/docs/guide/overlay","既存PDFオーバーレイ"," — 既存のPDFの上にコンテンツを追加",[28,842,843,847],{},[836,844,846],{"href":845},"/ja/docs/guide/security","セキュリティ"," — 暗号化、PDF/A、デジタル署名",[28,849,850,853,854,857],{},[836,851,797],{"href":852},"/ja/docs/api-reference/gpdf"," — ",[46,855,856],{},"gpdf"," パッケージの完全なリファレンス",[859,860,861],"style",{},"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 .sMK4o, html code.shiki .sMK4o{--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF}html pre.shiki code .sBMFI, html code.shiki .sBMFI{--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B}html pre.shiki code .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 pre.shiki code .s2Zo4, html code.shiki .s2Zo4{--shiki-light:#6182B8;--shiki-default:#82AAFF;--shiki-dark:#82AAFF}html pre.shiki code .sfazB, html code.shiki .sfazB{--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D}html pre.shiki code .sbssI, html code.shiki .sbssI{--shiki-light:#F76D47;--shiki-default:#F78C6C;--shiki-dark:#F78C6C}html .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 .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}",{"title":60,"searchDepth":89,"depth":89,"links":863},[864,865,866,867,868,869,870,871],{"id":12,"depth":89,"text":12},{"id":42,"depth":89,"text":42},{"id":334,"depth":89,"text":334},{"id":374,"depth":89,"text":374},{"id":395,"depth":89,"text":396},{"id":510,"depth":89,"text":511},{"id":796,"depth":89,"text":797},{"id":830,"depth":89,"text":830},"AcroFormフィールドを静的ページコンテンツにフラット化","md",{},"/ja/docs/guide/flatten",{"title":5,"description":872},"ja/docs/2.guide/10.flatten","qkxDClvWJmxEB_ngBNj2p-Ido4-T1ejXJqtQlTAeiEw",1776529278359]