人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

FPDFを利用してPHPからPDFファイルを作成しています。

「文字、画像、文字」という表示がしたくて以下のそうなコードを書いたのですが、
添付画像の通り、文字が画像に被さってしまいます。
画像の後に改行されて文字が表示されるにはどうすればいいのでしょうか?

$pdf = new MBFPDF();
$pdf->AddMBFont(GOTHIC,'SJIS');
$pdf->Open();
$pdf->AddPage();
$pdf->SetFont(GOTHIC,'',12);
$pdf->Write(12,"あいうえお");
$pdf->Ln();
$y = $pdf->getY();
$pdf->Image('Sunset.jpg', 10, $y, 100,0);
$pdf->Ln();
$pdf->Write(12,"かきくけこ");
$pdf->Output();

FPDFのバージョンは1.6です。

1274245684
●拡大する

●質問者: k27w
●カテゴリ:ウェブ制作
✍キーワード:.jpg FPDF MBFPDF open PDF
○ 状態 :終了
└ 回答数 : 1/1件

▽最新の回答へ

1 ● gekikawa
●60ポイント

$pdf->Image('Sunset.jpg', 10, $y, 100,0);

の部分ですがimageメソッドの引数が(ファイル名, 画像のX座標, 画像のy座標, 画像の幅, 画像の高さ)

となるとするとサンプル画像のように日没風景が出ない事になってしまいますが...「100,0」は「100.0」でしょうか?

もしこうだとすると...

http://www.phpbook.jp/fpdf/text/index3.html


ここに解説されている関数で「現在の位置」を画像より下になるように

すれば良いのでしょう。


$pdf->Write(12,"かきくけこ");

の前の行あたりに

$height = (画像の高さ);

$pdf->SetY($height);


を入れれば良いのですね。

ただ、ここで画像の高さと書いた部分ですが、FPDFではデフォルトで

サイズの単位が「mm」という事と、画像の横幅は100「mm」と指定されていることから

list($img_w, $img_h) = getimagesize('Sunset.jpg');

$height = 100 * $img_h / $img_w;

とやって$heightを求めてみてはどうでしょう?

結局

$pdf->Write(12,"かきくけこ");

の前の行に

list($img_w, $img_h) = getimagesize('Sunset.jpg');

$height = 100 * $img_h / $img_w;

$pdf->SetY($height);

を追加する

でどうでしょうか?

◎質問者からの返答

やはりその方法しかありませんか。簡単に改行できるコードがあると思っていました。

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ