まず第一に、これにはライブラリを使用することをお勧めします。「間違っているかもしれません」が、おそらくあなたや私が思いつくよりも正しいからです。第二に、(ほとんどの)これはヘッダーを使用して行われていません;)
本当に自分でやりたい場合は、PHP のネイティブ PDF 関数がここにあり、 FPDF (私の個人的なお気に入り) のようなライブラリが実装で直接使用されます。
ページを PDF に印刷するには、最初にページをレンダリングする (HTML DOM を作成して CSS を適用する) 必要がありますが、これは PHP では行われません。最初に WebKit などの HTML エンジンでページをレンダリングしてから、印刷操作のために PHP に戻る必要があります。
繰り返しますが、これはおそらくライブラリを使用して行う必要があり、頭痛の種とデバッグを節約できます。もちろん、この質問は以前に尋ねられたので、利用可能な情報はたくさんあります。
しかし、自分でやってみたい場合は、その道を歩む (またはクロールする) 必要があります。私なら、バスに乗ります。
アップデート
コメントで質問に答えるには:
<?php header("Content-type: application/pdf;charset=UTF-8"); ?>
これをページの上部に配置すると、pdf がレンダリングされますが、この方法では生成されません。それで、これについて何か提案できますか。
そのヘッダーは HTTP 要求用です。リクエストがサーバーから返されると、返されるコンテンツのタイプ (JSON、画像、PDF など) を示すヘッダーが送信されます。
つまり、ヘッダーは実際にPDF を作成するのではなく、ブラウザに PDF を期待するように指示するだけです。ヘッダーの後に、サーバーは何か (できれば PDF) を送信します。
そのため、元の質問はヘッダーを使用して行われていないと言ったのです。