web-dev-qa-db-ja.com

wkhtmltopdfを使用して横向きを設定する

pdfで生成されたWkhtmltopdfファイルの向きを変更するにはどうすればよいですか。私はPHPで次のように呼び出します:

$file = fopen("tmp/html/pdfTmp_$numRand.html", 
    "w") or exit("Unable to open file!");
fwrite($file, $html);
fclose($file);

exec("..\library\wkhtmltopdf\wkhtmltopdf " . 
    "tmp/html/pdfTmp_$numRand.html tmp/pdf/pdfTmp_$numRand.pdf");

header('Content-Description: File Transfer');
header('Content-Type: application/octet-stream');
header("Content-Disposition: attachment; filename=".$nom."_".$residence.".pdf");
header('Content-Transfer-Encoding: binary');
header('Expires: 0');
header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
header('Pragma: public');
header('Content-Length: ' . filesize("tmp/pdf/pdfTmp_$numRand.pdf"));
ob_clean();
flush();
readfile("tmp/pdf/pdfTmp_$numRand.pdf");

$htmlには、ページ全体がhtmlで含まれており、これにより一時ファイルが開きます。

これにより、.pdfが縦向きで生成されます。 wkhtlktopdfには方向を変更するオプション-O landscapeがあることを知っていますが、これをPHPスクリプトでどこにどのように書き込むことができるかわかりません。Windows7を使用しています。

18
Daykeras

オプション-O landscapeトリックを行います。

ただチャゲ

exec("..\library\wkhtmltopdf\wkhtmltopdf tmp/html/pdfTmp_$numRand.html tmp/pdf/pdfTmp_$numRand.pdf");

のようなものに

exec("..\library\wkhtmltopdf\wkhtmltopdf -O landscape tmp/html/pdfTmp_$numRand.html tmp/pdf/pdfTmp_$numRand.pdf");
29
Mantas

これもここで言及する価値があると思います:

私もこれで問題がありましたが、--orientation "Landscape"を設定し、--page-height '210mm'および--page-width '297mm'も設定しました

私のpdfファイルが引き続きPortraitで出力され、非常にイライラします。

露骨すぎる。ページの高さとページの幅のオプションを削除すると、問題が解決しました

3
DamienB