Tutorial VB ini membangun terakhir dan menunjukkan bagaimana Anda dapat membuat file PDF yang lebih maju. Saat ini saya akan sharing Membuat dokumen Advanced PDF di VB6 Anda cara membuat dokumen multi-halaman, dengan halaman header, footer, nomor halaman, bentuk, dan gambar.
Dalam tutorial sebelumnya kita melihat bagaimana untuk membuat dokumen PDF sederhana yang satu halaman dan hanya teks. Jika Anda telah melihat banyak dokumen PDF di web atau di tempat lain Anda tahu bahwa mereka biasanya mencakup lebih dari sekedar teks. Untungnya kami mampu melakukan hal-hal ini juga. Dalam VB PDF tutorial ini kita akan melihat bagaimana untuk digunakan lebih lanjut kelas mjwPDF mencapai apa yang kita butuhkan. Pada akhir tutorial Anda harus mampu menciptakan sebuah dokumen multi-halaman yang memiliki header, footer dengan nomor halaman, bentuk, grafis dan web link.Jika Anda ingin, Anda dapat men-download kode untuk tutorial VB PDF ini dan lanjut ikut tutorial di bawah ini.
Jika Anda belum membaca pengantar tutorial tentang cara membuat dokumen PDF menggunakan Visual Basic. Silahkan melakukannya pertama. Tutorial VB ini membangun dari sebelumnya. Bahkan memungkinkan untuk memulai dengan melihat kode yang kita buat sebelumnya:
Private Sub Command1_Click()
' Create a simple PDF file using the mjwPDF class
Dim objPDF As New mjwPDF
' Set the PDF title and filename
objPDF.PDFTitle = "Test PDF Document"
objPDF.PDFFileName = App.Path & "\test.pdf"
' We must tell the class where the PDF fonts are located
objPDF.PDFLoadAfm = App.Path & "\Fonts"
' View the PDF file after we create it
objPDF.PDFView = True
' Begin our PDF document
objPDF.PDFBeginDoc
' Set the font name, size, and style
objPDF.PDFSetFont FONT_ARIAL, 15, FONT_BOLD
' Set the text color
objPDF.PDFSetTextColor = vbBlue
' Set the text we want to print
objPDF.PDFTextOut "Hello, World! From mjwPDF (www.rausah.com)"
' End our PDF document (this will save it to the filename)
objPDF.PDFEndDoc
End Sub
Dengan kode ini, kami telah melakukan semua initializing dan menciptakan sebuah file dasar. Sekarang mari kita tambahkan beberapa pilihan pemformatan. Tepat setelah kami menetapkan folder font memungkinkan menambahkan beberapa baris kode yang memberitahu mjwPDF apa tata letak dokumen harus seperti di bawah ini.
' We must tell the class where the PDF fonts are located
objPDF.PDFLoadAfm = App.Path & "\Fonts"
' Set the file properties
objPDF.PDFSetLayoutMode = LAYOUT_DEFAULT
objPDF.PDFFormatPage = FORMAT_A4
objPDF.PDFOrientation = ORIENT_PORTRAIT
objPDF.PDFSetUnit = UNIT_PT
' View the PDF file after we create it
objPDF.PDFView = True
Kode ini menetapkan standard page (letter size) di potret orientasi dan kami satuan ukur sebagai poin.
Selanjutnya Mari kita melakukan sesuatu yang menyenangkan. Sering kali Anda ingin menambahkan menuju ke dokumen PDF seperti "Sangat penting laporan bla bla" Mari kita mencari cara untuk menambahkan judul seperti ini untuk dokumen kami. Menghapus garis tebal kode di bawah ini:
' Begin our PDF document
objPDF.PDFBeginDoc
' Set the font name, size, and style
objPDF.PDFSetFont FONT_ARIAL, 15, FONT_BOLD
' Set the text color
objPDF.PDFSetTextColor = vbBlue
' Set the text we want to print
objPDF.PDFTextOut "Hello, World! From mjwPDF (www.rausah.com)"
' End our PDF document (this will save it to the filename)
objPDF.PDFEndDoc
And add these lines of code in their place:
' Lets add a heading
objPDF.PDFSetFont FONT_ARIAL, 15, FONT_BOLD
objPDF.PDFSetDrawColor = vbRed
objPDF.PDFSetTextColor = vbWhite
objPDF.PDFSetAlignement = ALIGN_CENTER
objPDF.PDFSetBorder = BORDER_ALL
objPDF.PDFSetFill = True
objPDF.PDFCell "A centered heading", 15, 15, _
objPDF.PDFGetPageWidth - 30, 40
Biarkan saya menjelaskan maksud ini. Anda harus mengakui baris pertama dari kode. Ini hanya menetapkan font info. Selanjutnya kami menetapkan DrawColor (yang dalam kasus ini akan menyoroti atau dalam warna kotak kami). Selanjutnya warna teks adalah mengatur dan kesejajaran dan perbatasan. PDFSetFill = benar mengatakan mjwPDF untuk mengisi kotak ini dalam ketika ia akan mencetak teks. Baris berikutnya adalah apa menampilkan itu semua.
Mari saya memecahnya. Parameter pertama adalah hanya teks kita inginkan ditampilkan. Selanjutnya kita menceritakannya bagaimana jauh lebih dari dari kiri kami ingin kotak (atau sel) dalam kasus kami, kami katakan 15 poin atas dari kiri. Parameter berikutnya adalah 15 poin turun dari atas. Selanjutnya kita harus menentukan seberapa luas kotak akan menjadi. Kami menginginkannya untuk meregangkan semua cara di atas di sisi kanan halaman (minus 15 titik perbatasan kanan). Untuk mencapai hal ini, kita dapat menggunakan fungsi PDFGetPageWidth kelas mjwPDF. Ini akan memberi kita lebar penuh halaman kami kemudian kurangi 30 off itu (15 untuk perbatasan kiri) dan 15 untuk tepi kanan, parameter terakhir adalah puncak dari sel, 40 akan banyak tinggi untuk mengakomodasi teks.
Jika Anda menjalankan kode Anda harus melihat PDF Anda muncul dengan sebuah header yang indah di bagian atas halaman.
Menyenangkan lain adalah untuk membuat bentuk dalam file PDF. Ini dapat digunakan untuk membuat grafik batang atau untuk menyoroti daerah-daerah tertentu. Berikut adalah beberapa contoh kode yang menciptakan sebuah persegi.
' Lets draw a dashed red square
objPDF.PDFSetLineColor = vbRed
objPDF.PDFSetFill = True
objPDF.PDFSetLineStyle = pPDF_DASHDOT
objPDF.PDFSetLineWidth = 1
objPDF.PDFSetDrawMode = DRAW_NORMAL
objPDF.PDFDrawPolygon Array(300, 150, 400, 150, 400, 250, 300, 250)
Kebanyakan pengaturan ini sendiri jelas. Perhatikan bahwa Anda dapat menentukan gaya baris dan jalur lebar. Juga perhatikan bahwa tidak ada fungsi persegi menarik. Sebaliknya ada draw polygon fungsi. Dibutuhkan satu parameter, tetapi parameter adalah array poin yang ditentukan dalam x y koordinat. X menjadi seberapa jauh dari kiri ke kanan untuk menggambar titik dan Y menjadi seberapa jauh dari atas ke bawah. Jadi, dalam contoh kita kita yang menentukan 4 poin (empat sudut alun-alun).
- Titik 1 adalah 300-an pixels ke kanan, 150pixel dari atas
- Point 2 adalah 400 piksel ke kanan, 150 pixel dari atas
- Titik 3 adalah 400 piksel ke kanan, 250 piksel membentuk atas
- Titik 4 adalah 300-an pixels ke kanan, 250 piksel dari atas.
Selanjutnya Mari kita menggambar elips. Ellipse adalah hanya lingkaran yang dapat diperas baik secara vertikal maupun horizontal. Untuk menetapkan benar kita harus menggunakan beberapa istilah matematika. Jika Anda ingat dari geometri kelas lingkaran memiliki radius. Radius adalah jarak dari pusat lingkaran ke tepi lingkaran. Ellipse memiliki dua radiuses. Salah satunya horisontal yang lain vertikal. Sehingga kode untuk elips kami adalah:
' Lets draw an ellipse
objPDF.PDFSetDrawColor = vbYellow
objPDF.PDFSetLineColor = vbBlack
objPDF.PDFSetLineStyle = pPDF_DASHDOT
objPDF.PDFSetLineWidth = 1.25
objPDF.PDFSetDrawMode = DRAW_DRAWBORDER
objPDF.PDFDrawEllipse 300, 150, 75, 25
Semua parameter yang harus akal sekarang. Baris baru adalah panggilan PDFDrawEllipse. Yang sangat sederhana panggilan kecuali bahwa banyak kali Anda berpikir x dan y koordinat akan sesuai dengan pusat lingkaran. Namun, Anda akan salah. Bukan yang pertama untuk parameter sesuai dengan sudut kiri atas dari alun-alun yang batas elips. Dua parameter menentukan radius horisontal dan vertikal radius. Jika ini tampaknya membingungkan hanya menjalankan program dan Anda akan melihat apa maksud saya. X & y parameter untuk elips kami yang sama sebagai x & y parameter untuk titik pertama kami di alun-alun sehingga Anda akan melihat cara kerjanya. Jika Anda menjalankan program Anda harus melihat ini:
Memungkinkan langkah kembali ke teks manipulasi dalam dokumen PDF lagi. Satu hal yang biasanya Anda lihat dalam dokumen profesional adalah header seperti yang kami lakukan di atas. Hal lain adalah biasanya nomor halaman di footer. Kita dapat menggunakan logika yang sama kita digunakan untuk header kami untuk menambah nomor halaman. Saya ingin menambahkan angka-angka di footer halaman pada sisi kanan, seperti kebanyakan dokumen. Aku tidak akan berjalan melalui bagaimana Anda bisa melakukan ini langkah demi langkah, tapi di sini adalah kode untuk subrutin visual basic yang menambahkan nomor halaman ke sudut kanan bawah dari dokumen PDF.
' Adds the page number to the current page
Private Sub AddPageNumber(objPDF As mjwPDF, pageNumber As Integer)
Dim sPageInfo As String
Dim fontSize As Double
Dim margin As Double
fontSize = 10 'Size of font to use
margin = 40 'Size of margin (left, right, bottom)
' Set what we want to print for page info
sPageInfo = "Page " & pageNumber
' Should save these settings and change them back for more robust code
objPDF.PDFSetTextColor = vbBlack
objPDF.PDFSetAlignement = ALIGN_RIGHT
objPDF.PDFSetFont FONT_ARIAL, Conversion.CInt(fontSize), FONT_NORMAL
objPDF.PDFSetFill = False
' Uncomment the below line if you want to see how our formatting works
'objPDF.PDFSetBorder = BORDER_ALL
' Draw the page number at the bottom of the page to the right
objPDF.PDFCell sPageInfo, margin, _
objPDF.PDFGetPageHeight - margin - fontSize, _
objPDF.PDFGetPageWidth - (margin * 2), fontSize
End Sub
Sekarang bahwa kita tahu bagaimana untuk menambahkan nomor halaman bagaimana kita benar-benar membuat beberapa halaman? Sangat sederhana. Ketika Anda selesai dengan halaman pertama, hanya memanggil metode PDFEndPage. Selanjutnya memanggil metode PDFNewPage untuk memulai halaman berikutnya. Daripada hanya memanggil perintah untuk menambahkan teks atau bentuk Anda ke halaman berikutnya. Anda dapat melakukan hal ini sebanyak yang Anda inginkan. Jangan lupa untuk memanggil metode AddPageNumber pada setiap halaman meskipun.
Fitur lain yang berguna dokumen PDF adalah menambahkan bookmark. Bookmark memungkinkan Anda untuk melompat dari satu bagian ke bagian dalam dokumen PDF dengan mudah. Ketika pengguna dilihat dokumen PDF dengan bookmark, mereka mampu melihat tabel isi jenis tab di sisi kiri layar. Catatan: jika Anda ingin bahwa panel dapat dilihat secara default Anda harus menambahkan baris kode ini ke bagian initializing program Anda.
' Lets us set see the bookmark pane when we view the PDF
objPDF.PDFUseOutlines = True
Menambahkan bookmark ini sangat mudah dalam Visual Basic yang menggunakan mjwPDF. Misalnya memungkinkan Tambah Bookmark empat halaman kami terlebih dahulu dokumen kami. Panggilan ini di mana saja dalam kode Anda sebelum Anda memanggil metode PDFEndPage.
'Lets add a bookmark to the start of page 1
objPDF.PDFSetBookmark "A. Page 1", 0, 0
'Now a bookmark half way down page 1
objPDF.PDFSetBookmark "A1. Page 1 Halfway down", 1, 300
'Now one at the end page 1
objPDF.PDFSetBookmark "A2. End of Page 1", 1, 500
'Another one a little further down and shows nesting
objPDF.PDFSetBookmark "A2-Sub1.", 2, 800
Panggilan pertama untuk PDFSetBookmark menciptakan bookmark berlabel "A. Page 1". Parameter berikutnya adalah kedalaman bookmark ini. Catatan: Mulai kedalaman 0. Parameter terakhir adalah posisi y untuk mana bookmark akan berpindah-pindah halaman. Jadi panggilan pertama dibuat bookmark berjudul "A. Page 1" yang menunjuk ke bagian atas page 1. Panggilan berikutnya menciptakan bookmark berjudul "A1. Page 1 setengah jalan". Ini memiliki kedalaman 1 (Jadi ini akan menjadi seorang anak di bawah penanda kami pertama) dan itu akan Gulir Halaman 300 poin ke bawah. Jika Anda menjalankan program Anda akan melihat semua bookmark yang dibuat seperti di bawah ini.
Kebutuhan lain untuk belajar ketika membuat dokumen PDF adalah bagaimana untuk menambahkan gambar ke mereka. Kelas mjwPDF memungkinkan Anda untuk menambahkan gambar jpg ke dokumen PDF. Jika gambar dalam format yang berbeda, Anda akan perlu untuk mengubahnya menjadi .jpg sebelum Anda akan dapat untuk menambahkannya ke PDF file. Namun, jika gambar jpeg sangat mudah untuk menambahkannya ke PDF doc. Dalam kode sumber contoh yang disertakan dengan tutorial ini Anda akan melihat logo.jpg file. Berikut adalah kode untuk mengakhiri kami halaman pertama dan untuk memulai halaman kedua kami. Pada halaman kedua kami menambahkan logo kami ke sudut kiri atas halaman.
objPDF.PDFEndPage
'Start page 2
objPDF.PDFNewPage
'Lets add an image to page 2
objPDF.PDFImage App.Path & "\logo.jpg", _
15, 15, 50, 50, "http://www.rausah.com"
Kode yang disorot adalah apa menambahkan logo. Kita memanggil fungsi PDFImage. Parameter pertama adalah path ke jpeg file. Dua parameter yang x dan y koordinat untuk logo. Dua parameter ini menentukan lebar dan tinggi gambar. Parameter ini bisa terputus dan maka itu hanya akan menampilkan gambar dalam ukuran aslinya. Anda juga dapat menentukan hanya tinggi atau lebar dan itu akan skala sisi lain dari gambar untuk menyimpannya dalam proporsi. Parameter terakhir opsional, tetapi memungkinkan Anda untuk menentukan situs web untuk pergi ke jika seseorang mengklik pada gambar.
Jika Anda menjalankan program Anda, sekarang Anda akan melihat sebuah file PDF yang memiliki semua sifat-sifat lengkap dokumen PDF. Header, bentuk, Gambar, dan nomor halaman. Menggabungkan semua teknik ini Anda harus mampu melakukan apa saja yang Anda ingin. download kode sumber Advanced PDF VB Tutorial untuk yang Malas Membuat Sample seperti di atas..
Ok sekian dari saya semoga artikel ini bermanfaat.