【GeneXus】PDFの部品化?

PDFの出力をばらしたい。

この頃Blog毎日投稿してるのは。ほぼ下書きを書き上げてるだけ!これはちゃんと新規で書きました!

この頃PDF出力をする機会があり、あーこんなこともできたなー的な記憶がよみがえったので備忘録として。

PDFを出力する場合1個プロシージャを作ると思いますが、部品に分けていろいろ出力することもできます。
その場合は出力場所を保持してるLine変数を受け渡しましょう。

メインのプロシージャ

メインのプロシージャです。普通にPDFを出力する感じで作成します。

PDF_Header – Sauce

print printBlock1
PDF_Detail01.Call(&Line)
PDF_Detail02.Call(&Line)
PDF_Header – Rules

Output_file('test.pdf', 'pdf');
PDF_Header – Layout
Main ProgramTrue
Call protocolHTTP

サブプロシージャ1

PDF_Detail01 – Sauce

print printBlock1
PDF_Detail01 – Rules

Parm(in:&Line);
PDF_Detail01 – Layout

サブプロシージャ2

PDF_Detail02 – Sauce

print printBlock1
PDF_Detail02 – Rules

Parm(in:&Line);
PDF_Detail02 – Layout

実行結果

こんか感じで出力されます。

わからない人

PDF_Detail01 と PDF_Detail02 でテキストの位置が違うのはなんで?
PDF_Detail01 と PDF_Detail02 に引数で渡す&Line変数は同じだからテキストの位置が同じだと↓みたいな感じになって重なって出力されちゃうんだよ!

Oqiita

改ページすると

サブプロシージャ1 と サブプロシージャ2 の間に改ページ(eject)するとサブプロシージャ2の内容が次ページになります。

PDF_Header – Sauce

print printBlock1
PDF_Detail01.Call(&Line)
Eject
PDF_Detail02.Call(&Line)

1ページ目

2ページ目

これだとタイトルが1ページ目だけです。
ヘッダーとして出力します。

PDF_Header – Sauce

Header	print printBlock1
End
PDF_Detail01.Call(&Line)
eject
PDF_Detail02.Call(&Line)

1ページ目

2ページ目

まとめ

PDFなんて久しぶりでしたーw

以上です。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください