異なった高さのページから成るPDFファイルを作るには
2 posters
異なった高さのページから成るPDFファイルを作るには
4Dver16でページ毎に高さ(長さ)が異なったPDFファイルを作るには,どうすれば良いでしょうか。
例えば1ページ目が目次のページで,次からは切れ目のない巻物の様なページにするという感じです。
SET PRINT OPTION(Paper option;$望む幅;$望む高さ)
$area1:=Print form([table];"print form";0;$1ページ目)
PAGE BREAK //改ページをしたつもり
$area2:=Print form([table];"print form";$1ページ目+改ページ余白;$望む高さ)
としたのですが,2ページ目だけが用紙の先頭から印刷されます。PAGE BREAKを消すと,全体が切れ目のないPDFファイルになってしまいます。2つのフォームから作ったファイルを結合するという方法もありますが,4Dだけでは出来ないと思います。
余計ではありますが,この作業をしていて気付いたこと;
GET PRINTABLE AREAの反対は,SET PRINTABLE AREAではなく(この様なコマンドは存在しない),SET PRINT OPTION(Paper option;
ですね。
例えば1ページ目が目次のページで,次からは切れ目のない巻物の様なページにするという感じです。
SET PRINT OPTION(Paper option;$望む幅;$望む高さ)
$area1:=Print form([table];"print form";0;$1ページ目)
PAGE BREAK //改ページをしたつもり
$area2:=Print form([table];"print form";$1ページ目+改ページ余白;$望む高さ)
としたのですが,2ページ目だけが用紙の先頭から印刷されます。PAGE BREAKを消すと,全体が切れ目のないPDFファイルになってしまいます。2つのフォームから作ったファイルを結合するという方法もありますが,4Dだけでは出来ないと思います。
余計ではありますが,この作業をしていて気付いたこと;
GET PRINTABLE AREAの反対は,SET PRINTABLE AREAではなく(この様なコマンドは存在しない),SET PRINT OPTION(Paper option;

M_Fujihara- 投稿数 : 80
登録日 : 2016/12/03
Re: 異なった高さのページから成るPDFファイルを作るには
PDFの用紙サイズは,
PAGE SETUP
http://doc.4d.com/4Dv16/4D/16.3/PAGE-SETUP.301-3651113.ja.html
WP USE PAGE SETUP
http://doc.4d.com/4Dv16/4D/16.3/WP-USE-PAGE-SETUP.301-3651606.ja.html
PRINT SETTINGS
http://doc.4d.com/4Dv16/4D/16.3/PRINT-SETTINGS.301-3651124.ja.html
SET PRINT OPTION(Paper option)
などで設定できますが,印刷ジョブを開始した後,用紙サイズなどのプリント設定を変えることは,できないことになっています。
エラーメッセージ:
いずれにしても,PAGE BREAKを挿入するタイミングで用紙サイズを制御することはできないのではないでしょうか。
お察しのとおり,PDF文書を分割して出力する必要がありそうです。
例:
$path:=Temporary folder+Generate UUID+Folder separator
CREATE FOLDER($path;*)
SET PRINTABLE MARGIN(0;0;0;0)
//custom page size
FORM LOAD("F")
OBJECT GET COORDINATES(*;"H";$l;$t;$r;$b)
$width:=$r-$l
$height:=$b-$t
SET PRINT OPTION(Paper option;$height;$width)
SET PRINT OPTION(Destination option;3;$path+"p1.pdf")
FORM UNLOAD
OPEN PRINTING JOB
FORM LOAD("F")
$printed:=Print object(*;"H")
FORM UNLOAD
CLOSE PRINTING JOB
$count:=20
//custom page size
FORM LOAD("F")
OBJECT GET COORDINATES(*;"D";$l;$t;$r;$b)
$width:=$r-$l
$height:=$b-$t
SET PRINT OPTION(Paper option;$height*$count;$width)
SET PRINT OPTION(Destination option;3;$path+"p2.pdf")
FORM UNLOAD
OPEN PRINTING JOB
FORM LOAD("F")
$x:=0
$y:=0
For ($i;1;$count)
$printed:=Print object(*;"D";$x;$y)
$y:=$y+$height
End for
FORM UNLOAD
CLOSE PRINTING JOB
SHOW ON DISK($path)
https://github.com/4D-JP/4d-tips-print-variable-document-size/releases/tag/0.1
PAGE SETUP
http://doc.4d.com/4Dv16/4D/16.3/PAGE-SETUP.301-3651113.ja.html
WP USE PAGE SETUP
http://doc.4d.com/4Dv16/4D/16.3/WP-USE-PAGE-SETUP.301-3651606.ja.html
PRINT SETTINGS
http://doc.4d.com/4Dv16/4D/16.3/PRINT-SETTINGS.301-3651124.ja.html
SET PRINT OPTION(Paper option)
などで設定できますが,印刷ジョブを開始した後,用紙サイズなどのプリント設定を変えることは,できないことになっています。
エラーメッセージ:
- Code:
Error code: 1009 (4DRT)
このメソッドや関数を印刷ジョブが開始された時に呼び出すことはできません。
いずれにしても,PAGE BREAKを挿入するタイミングで用紙サイズを制御することはできないのではないでしょうか。
お察しのとおり,PDF文書を分割して出力する必要がありそうです。
例:
$path:=Temporary folder+Generate UUID+Folder separator
CREATE FOLDER($path;*)
SET PRINTABLE MARGIN(0;0;0;0)
//custom page size
FORM LOAD("F")
OBJECT GET COORDINATES(*;"H";$l;$t;$r;$b)
$width:=$r-$l
$height:=$b-$t
SET PRINT OPTION(Paper option;$height;$width)
SET PRINT OPTION(Destination option;3;$path+"p1.pdf")
FORM UNLOAD
OPEN PRINTING JOB
FORM LOAD("F")
$printed:=Print object(*;"H")
FORM UNLOAD
CLOSE PRINTING JOB
$count:=20
//custom page size
FORM LOAD("F")
OBJECT GET COORDINATES(*;"D";$l;$t;$r;$b)
$width:=$r-$l
$height:=$b-$t
SET PRINT OPTION(Paper option;$height*$count;$width)
SET PRINT OPTION(Destination option;3;$path+"p2.pdf")
FORM UNLOAD
OPEN PRINTING JOB
FORM LOAD("F")
$x:=0
$y:=0
For ($i;1;$count)
$printed:=Print object(*;"D";$x;$y)
$y:=$y+$height
End for
FORM UNLOAD
CLOSE PRINTING JOB
SHOW ON DISK($path)
https://github.com/4D-JP/4d-tips-print-variable-document-size/releases/tag/0.1
miyako- 投稿数 : 468
登録日 : 2016/07/05
Re: 異なった高さのページから成るPDFファイルを作るには
PDFを結合するツールはいろいろあるようですね。
PDFtk
https://www.pdflabs.com/tools/pdftk-server/
4Dの例題:
https://github.com/miyako/4d-component-pdftk
Poppler
https://poppler.freedesktop.org
4Dの例題:
https://github.com/miyako/4d-component-poppler
Ghostscript
https://www.ghostscript.com
4Dの例題:
https://github.com/miyako/4d-plugin-gs
ほか,python, ruby, PHPなどのプログラムがいっぱい検索でヒットしました。
PDFtk
https://www.pdflabs.com/tools/pdftk-server/
4Dの例題:
https://github.com/miyako/4d-component-pdftk
Poppler
https://poppler.freedesktop.org
4Dの例題:
https://github.com/miyako/4d-component-poppler
Ghostscript
https://www.ghostscript.com
4Dの例題:
https://github.com/miyako/4d-plugin-gs
ほか,python, ruby, PHPなどのプログラムがいっぱい検索でヒットしました。
miyako- 投稿数 : 468
登録日 : 2016/07/05
Re: 異なった高さのページから成るPDFファイルを作るには
ありがとうございました。
用紙サイズの設定で,SET PRINT OPTION(Paper option;$望む幅;$望む高さ)が気に入った点はプリントアウトの範囲を操作できるので,余白を減らせることです。
書類を残すのは,紙よりもPDFとなりつつあるので,4DもPDFをSET PRINT OPTIONの選択肢の一つでなく,強化して頂きたいと思います。4DでPDFの入力可能フォームが直接出力出来るようになり,また逆にPDFから入力されたデータを簡単に吸い上げることが出来れば(今でもPDFの設定で出来るはずですが),ネットワークに依存しないデータ収集も出来る様になると思います。
用紙サイズの設定で,SET PRINT OPTION(Paper option;$望む幅;$望む高さ)が気に入った点はプリントアウトの範囲を操作できるので,余白を減らせることです。
書類を残すのは,紙よりもPDFとなりつつあるので,4DもPDFをSET PRINT OPTIONの選択肢の一つでなく,強化して頂きたいと思います。4DでPDFの入力可能フォームが直接出力出来るようになり,また逆にPDFから入力されたデータを簡単に吸い上げることが出来れば(今でもPDFの設定で出来るはずですが),ネットワークに依存しないデータ収集も出来る様になると思います。
M_Fujihara- 投稿数 : 80
登録日 : 2016/12/03
Permissions in this forum:
返信投稿: 不可
|
|