Saya aga kesulitan membuat judul yang tepat. Semoga uraian yang saya berikan tidak terlalu jauh meleset dari judul tersebut.

Bermula dari keinginan saya mencetak dokumen dalam bentuk buku atau booklet (bolak balik). Sebenarnya fasilitas pencetakan buku ini sudah ada pada beberapa produk printer. Akan tetapi, karena tidak semua printer bisa mencetak langsung dalam bentuk buku (contohnya Booklet Printing miliknya Cannon), maka saya berinisiatif membuat aplikasi yang bisa menghitung atau menentukan halaman ke-berapa yang di cetak. Nah dengan aplikasi ini diharapkan kita bisa mencetak bentuk buku dengan mudah.

Ide dasarnya sederhana. Sebagai contoh, kita buat saja buku yang berukuran setengah kertas A4. Sebagai percobaan, ambil saja dua lembar dulu. Nanti dari sini kan kita dapet 8 halaman. Nah, kita beri nomor halaman saja dari 1 sampai dengan 8. Sekarang coba kita ambil lembaran-lembaran kertas tersebut. Nanti di peroleh pasangan halaman pada sisi yang sama yaitu : 8, 1, 6, 3 dan pada sisi yang lain adalah halaman 2, 7, 4, 5.

Sekarang, ternyata listing-nya. Langsung saja ya?


procedure TForm1.Button1Click(Sender: TObject);
var
page,
hal11,
hal12,
hal21,
hal22,
i,
add,
start  : integer;
str1,
str2,
str3   : string;
begin
str1 := emptyStr;
str2 := emptyStr;
page := 0;
start := SpinEdit1.Value;
try
page := StrToInt(Edit1.Text);
except
on EConvertError do
ShowMessage('Anda salah memasukkan jumlah halaman. Harus bilangan bulat!!');
end;
if page=0 then
ActiveControl := Edit1
else begin
add := 0;
str3 := emptyStr;
if page mod 4 <> 0 then repeat
add := add + 1;
page := page + 1;
Str3 := Str3 + IntToStr(page+Start-1) + ', ';
until page mod 4 = 0;
hal11 := page;
hal21 := 2;
hal12 := 1;
hal22 := page - 1;
hal11 := hal11 + Start - 1;
hal21 := hal21 + Start - 1;
hal12 := hal12 + Start - 1;
hal22 := hal22 + Start - 1;
for i := 1 to (page div 4) do begin
Str1 := Str1 + IntToStr(hal11);
Str1 := Str1 + ', '+IntToStr(hal12) + ', ';
hal11 := hal11 - 2;
hal12 := hal12 + 2;
Str2 := Str2 + IntToStr(hal21);
Str2 := Str2 + ', '+IntToStr(hal22) + ', ';
hal21 := hal21 + 2;
hal22 := hal22 - 2;
end;
Edit2.Text := Copy(Str1,1,length(Str1)-2);
Edit3.Text := Copy(Str2,1,length(Str2)-2);
Label5.Caption := IntToStr(add)+' halaman';
Edit4.Text := Copy(Str3,1,length(Str3)-2);
ActiveControl := Edit1;
end;
end;

Untuk screenshoot-nya seperti ini:

Semoga bermanfaat




One Response to Mencetak Bentuk Buku/Booklet via Delphi

  1. ahmad fadhil says:

    wah bagaimana cara make-nya nih, pak?

Leave a Reply

Your email address will not be published. Required fields are marked *

*

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Quranic Verse


Categories


Portal Akademik


Portal E-Learning


My Affiliate

Join 4Shared Now!


My Face-book


Twitter


Yahoo! Messanger


My Count's