質問させていただきます。


PerlでPDFJというモジュールを使いPDF作成を試みています。

▽PDFJサンプルコート(ソースコードはUnicode(UTF-8))
http://tai-e.blogspot.com/2008/05/pdfj.html

作成したいPDFの詳細は住所録CSVを読み込み、
下記の用紙フォーマットに印刷したいのです。

▽ラベル用紙サンプル(サイズも記載されています)
http://www.a-one.co.jp/product/search/detail.php?id=28171


そこで質問したいのが、下記のようになります。

ひとつのPDFに「ひとつの文章」を書きだすことは成功しましたが、

・ひとつのPDFに複数の文章を散らばらせる
(ラベル印刷なので12面あれば12箇所分の宛名を書き出さないといけない)
・複数ページに渡る場合の処理
(一度に120件印刷する場合、12面の用紙10枚必要のため)

上記2点が知りたいです。

サンプルコードやHowtoなど、教えていただければと思います。

もしできれば上記ラベル用紙サンプルのサイズフォーマットにて
12面の出力(複数ページ対応)のサンプルを教えていただければと思います

よろしくお願いします。

回答の条件
  • 1人10回まで
  • 登録:
  • 終了:2011/01/11 16:24:22
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

ベストアンサー

id:dedara No.1

回答回数30ベストアンサー獲得回数4

ポイント400pt

PHPなどのサンプルもどこかにありそうな気もしますが、

とりあえずFPDFのマニュアルがあるので、いろいろ試してみるのが良いと思います。

http://www.fpdf.org/en/doc/index.php

FPDFについて実際扱ったことがないので以下、こうしたらできるんじゃないか、という感じですが

SetXとかSetYとかで出力位置を設定できると思うので

左上のカドを0起点に座標を指定してひとつひとつ描画内容を12個分設定していって、

write関数で設定? (いろいろやり方がありそうです。)

設定が終わったら、output関数で12個分が1枚のpdfで出てくるとか、そんな感じじゃないでしょうか。

id:furure

ありがとうございます。

ただ今回はPHPでの制作ではなくPerlでの制作なので、、、。

2011/01/10 18:12:26
  • id:dedara
    すみません。よく読まずに回答してしまい、FPDJをFPDFと空目してしまいました。
    リンク先のサンプルコードを見てみたのですが、

    my $page = $doc->new_page();
    my $text = Text('PDFJテスト', TStyle(font => $font, fontsize => 30));

    my $paragraph = Paragraph($text, PStyle(size => 400, align => 'b', linefeed => 35));
    my $block = Block('V', $paragraph, BStyle(align => 'b'));

    my $x = 50;
    my $y = $paperheight - 100;
    $block->show($page, $x, $y);

    この部分を$x,$yの値を変えながら12回繰り返して

    最後に一度
    $doc->print('pdfj-sample.pdf');
    を呼び出してみたら、どうでしょうか。
  • id:furure
    あれやこれやとやっているうちに、

    $doc->new_page();

    が新規ページを作成する意味をもち、

    $block->show($page, $x, $y);

    は表示(追加)するということがわかりました。

    あとはやりたいことを実現するためにサイズの調整だけなので
    地道に調節していきます。

    ありがとうございました!

    解決できた御礼にポイントを付けさせていただきたいので
    なんでもいいので回答を書いてもらえますか?

    確認出来次第閉めさせていただきます。よろしくお願いします。
  • id:furure
    あ、すでに1件書きこんでいただいていましたね。

    それではしめたいとおもいます。

    またなにかありましたら是非よろしくお願いします!

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません