◆ 印刷できない
◆ 中に要素を入れれば回避できる

あるページを PDF 化したいなと思って ブラウザの印刷機能から PDF 化しようとしました
すると ロード中のまま固まってます
珍しいなと思いながらリロードして ページがちゃんと表示されたのを確認して再度印刷ダイアログをオープン
やっぱり表示されません
少し横の方に目をやると……

合計: 32709枚の用紙

えっ!?

ページコンテンツはそこまでないので 1 ページに収まっても良さそうなくらいなのですけど
というかここまで多いと 内部的に無限になって上限値として出てきた数字のように思います

原因が気になったので HTML をコピーしてローカルで徐々に削っていって原因を探すと 最終的にこれだけで再現できました

<!doctype html>
<div style="display: flex; gap: 1px"></div>

HTML 宣言は別になくてもいいので実質 1 行です
flex と gap を設定した要素があると発生します
中に適当な文字を入れると再現しません

空文字の content が入った疑似要素を置いても再現しないので

.flex-gap-class:empty:before {
content: "";
}

で回避できます
flex-gap-class を flex と gap が設定されているクラス名に置き換えるか このクラス名のままでクラスを対象の要素に追加します
ただ :empty は空白文字のテキストノードがあると対象にならず :blank はまだブラウザに実装されていないので

<div>
</div>

みたいになってる場合は対処できません
中身が空なら flex や gap は設定しなくてもいいので !important 付きで block にしてしまうとかでもいいかもしれません
空だからと それ自体を display: none で非表示にすると親要素が flex container だったりすると周りの要素のレイアウトに影響して見た目が壊れる可能性があります

空なら余計な gap を設定しなければこういう事が起きないのにと思いましたが React などを使ってると条件分岐で要素を出さないことが容易なので 場合によっては中に要素が追加されるのかもしれません
DOM を直接操作だと要素の有無を変えるのは少し面倒なので hidden のつけ外しにすることが多くこういうのは少ない気がします

とりあえずブラウザのバグとしか言えないのでバグ報告や修正状況はどんなものかと Chromium のバグトラッカーを探すといくつかの報告がありました

https://bugs.chromium.org/p/chromium/issues/detail?id=1161709
https://bugs.chromium.org/p/chromium/issues/detail?id=1249303
https://bugs.chromium.org/p/chromium/issues/detail?id=1161709
https://bugs.chromium.org/p/chromium/issues/detail?id=1275931

1 年以上前から報告されてるみたいなので すぐに修正は期待できなそうです

別ブラウザを試したのですが 最近って Edge が Chromium 系になったのでどっちでもこの現象
こういうときにあってよかった Firefox!
まあ devtools で書き換えて Edge で PDF 化したから Firefox で動くかは未確認なんですけどね
最近は Firefox 入れてない PC の方が多いです

この問題が発生する状態で印刷ダイアログを開いてしまっても プレビューの作成が終わりませんが 途中キャンセルは可能です
プレビュー完了を待たずに印刷ボタンを押せますが 3 万ページなので実質印刷不可能です
押して見ると PDF 化のプリンタでは 失敗しましたとアラートが出ました

しばらく修正されなさそうですし 印刷されたくないページにこの 1 行を入れておいて印刷避けとして使えるかもしれませんね(笑
ユーザの意図に反して CPU 消費してるのでどこかの警察につかまるかもですが……

そういえば例の件 裁判で勝利したみたいですね
まともな結果で良かったです

EU は Cookie や Google Fonts を禁止みたいな話を最近見かけましたし