PDF adalah format standard yang asalnya dicipta oleh Adobe untuk mewakili teks dan imej dalam dokumen lapisan tetap. Ia tidak biasa untuk aplikasi web untuk menyokong data memuat turun, seperti invois atau laporan, dalam format PDF, jadi dalam artikel ini kita akan melalui bagaimana kita boleh dengan mudah menghasilkan dokumen PDF menggunakan PHP.
DOMPDF adalah perpustakaan yang hebat, yang mampu menghasilkan PDF dari gaya HTML dan gaya CSS (kebanyakannya mematuhi CSS 2.1 dan mempunyai sokongan untuk beberapa sifat CSS3). Kita boleh menentukan bagaimana kandungan kita harus melihat menggunakan teknologi yang biasa ini, dan kemudian dengan mudah menukarnya ke dalam dokumen tetap. Perpustakaan ini mempunyai banyak ciri berguna dan menarik juga.
Takeaways Key
Bermula
DOMPDF boleh didapati di GitHub dan boleh dipasang menggunakan komposer. Mendapatkan pemasangan berasaskan komposer dan berjalan dengan betul diakui masih agak rumit, jadi saya cadangkan hanya menggunakan Git untuk memasang DompDF.
Perpustakaan memerlukan php> = 5.0 dengan sambungan MBSTRING dan DOM diaktifkan. Ia juga memerlukan beberapa fon, yang biasanya terdapat pada kebanyakan mesin.
Navigasi ke mana sahaja anda mahu meletakkan perpustakaan dan laksanakan:
git clone https://github.com/dompdf/dompdf.git
git submodule init
git submodule update
Dengan DOMPDF yang dimuat turun, mari tulis contoh ringkas yang akan menghasilkan PDF yang mudah.
<span><span><?php
</span></span><span><span>set_include_path(get_include_path() . PATH_SEPARATOR . "/path/to/dompdf");
</span></span><span>
</span><span><span>require_once "dompdf_config.inc.php";
</span></span><span>
</span><span><span>$dompdf = new DOMPDF();
</span></span><span>
</span><span><span>$html = <span><span><<<'ENDHTML'</span>
</span></span></span><span><span><html>
</span></span><span><span> <body>
</span></span><span><span> <h1>Hello Dompdf</h1>
</span></span><span><span> </body>
</span></span><span><span></html>
</span></span><span><span><span>ENDHTML<span>;</span></span>
</span></span><span>
</span><span><span>$dompdf->load_html($html);
</span></span><span><span>$dompdf->render();
</span></span><span>
</span><span><span>$dompdf->stream("hello.pdf");</span></span>
Untuk menggunakan perpustakaan dalam projek, kami mula -mula menarik DOMPDF_CONFIG.INC.PHP yang mengandungi kebanyakan konfigurasi DOMPDF. Ia juga memuatkan autoloader dan fail konfigurasi tersuai di mana kita boleh mengatasi parameter konfigurasi lalai.
Markup HTML diberikan sebagai rentetan kepada kaedah LOAD_HTML (). Sebagai alternatif, kita boleh memuatkan markup dari fail atau URL menggunakan kaedah LOAD_HTML_FILE (). Ia menerima nama fail atau URL laman web sebagai hujahnya.
Kaedah render () menjadikan HTML ke PDF dan kami bersedia untuk membuang fail PDF. Stream () menghantar PDF yang dihasilkan sebagai lampiran kepada penyemak imbas. Kaedah aliran () mempunyai parameter kedua pilihan, pelbagai pilihan:
Kami telah menjana PDF yang sangat mudah di sini, tetapi itu tidak begitu praktikal. Pada hakikatnya kita sering mempunyai keperluan mengenai saiz kertas, orientasi halaman, pengekodan aksara, dan lain-lain. Terdapat bilangan pilihan konfigurasi yang boleh kita tetapkan untuk menjadikan DOMPDF lebih sesuai untuk keperluan dunia sebenar kita. Semuanya disenaraikan dan dijelaskan dalam dompdf_config.inc.php
yang menetapkan mereka pada nilai lalai mereka. Anda boleh menukar nilai ini dengan mengemas kini fail konfigurasi tersuai DOMPDF_CONFIG.CUSTOM.INC.PHP. Beberapa tetapan penting adalah:
Penggunaan lanjutan
Sekarang mari kita bercakap tentang beberapa kegunaan dOMPDF lanjutan. Mungkin kita mahu menyimpan dokumen PDF yang dihasilkan ke cakera dan bukannya menghantarnya ke pelayar. Begini:
git clone https://github.com/dompdf/dompdf.git
git submodule init
git submodule update
Daripada memanggil aliran () seperti dalam contoh sebelumnya, kami menggunakan output () yang mengembalikan PDF sebagai rentetan. Ia juga menerima pelbagai pilihan pilihan, tetapi satu -satunya pilihan yang tersedia adalah memampatkan (lalai adalah benar).
DOMPDF juga membolehkan kami menambah header atau footer ke PDF yang dihasilkan dengan membenamkan skrip PHP dalam HTML yang menjadikannya. Tetapi kerana pemprosesan kod sewenang -wenangnya boleh menimbulkan risiko keselamatan jika anda tidak berhati -hati, nilai konfigurasi yang mengawal fungsi ini dimatikan secara lalai. Kita perlu terlebih dahulu menetapkan pilihan DOMPDF_ENABLE_PHP BENAR.
Sebaik sahaja kami telah membolehkan pelaksanaan PHP sebaris, objek PDF akan disediakan dalam skrip, yang boleh kita gunakan untuk memanipulasi halaman. Kami boleh menambah teks, garisan, imej, segi empat tepat, dan lain -lain di mana sahaja di dalam halaman.
<span><span><?php
</span></span><span><span>set_include_path(get_include_path() . PATH_SEPARATOR . "/path/to/dompdf");
</span></span><span>
</span><span><span>require_once "dompdf_config.inc.php";
</span></span><span>
</span><span><span>$dompdf = new DOMPDF();
</span></span><span>
</span><span><span>$html = <span><span><<<'ENDHTML'</span>
</span></span></span><span><span><html>
</span></span><span><span> <body>
</span></span><span><span> <h1>Hello Dompdf</h1>
</span></span><span><span> </body>
</span></span><span><span></html>
</span></span><span><span><span>ENDHTML<span>;</span></span>
</span></span><span>
</span><span><span>$dompdf->load_html($html);
</span></span><span><span>$dompdf->render();
</span></span><span>
</span><span><span>$dompdf->stream("hello.pdf");</span></span>
Skrip ini tertanam terus ke dalam markup HTML, dan mula -mula membuka objek supaya kita dapat mempengaruhi rendering. Semua lukisan akan direkodkan ke dalam objek itu dan kami boleh menambah objek ini ke semua atau halaman yang dipilih (walaupun terdapat batasan).
Seterusnya kita mengambil lebar dan ketinggian sebenar halaman untuk mengira koordinat footer yang kita ingin tambah. Juga, kita perlu menyediakan objek fon semasa kita menambah kandungan teks. Font_metrics :: get_font () membolehkan kita membuat objek yang kita perlukan. Kami juga mengambil ketinggian font yang diberikan pada saiz fonnya menggunakan get_font_height () untuk mengira kedudukan untuk kandungan footer. Kaedah get_font_width () mengembalikan lebar teks kami untuk saiz fon dan fon yang diberikan juga digunakan dalam pengiraan kami.
Kaedah garis () menarik garis dari titik (x1, y1) hingga (x2, x2). Perhatikan bahawa nilai warna yang kami berikan bukan nilai RGB sebenar. Kelas PDF yang mendasari memerlukan nilai antara 0 dan 1 dan oleh itu kami menukar nilai RGB ke dalam nilai -nilai baru ini. Untuk mendapatkan penghampiran yang lebih baik, anda boleh membahagikannya dengan 255.
Kami menambah nombor halaman untuk setiap halaman menggunakan kaedah page_text (), yang menerima kedudukan x dan y, teks yang akan ditambah, objek fon, saiz fon, dan warna. Dompdf secara automatik menggantikan nilai untuk {page_num}
dan {page_count} dalam setiap halaman, dan membuat $ pdf tersedia untuk kami.
Apabila PDF membuat, bahagian footer akan kelihatan seperti ini:
Adalah mungkin untuk mengelakkan menggunakan PHP sebaris dan mencapai kesan yang sama secara langsung dari PHP, seperti SO:
git clone https://github.com/dompdf/dompdf.git
git submodule init
git submodule update
Perhatikan bahawa kami meletakkan kod selepas memanggil $ dompdf-> render () kerana kami pada dasarnya mengubahsuai PDF yang diberikan.
Kesimpulan
Dalam artikel ini, kami membincangkan cara menukar HTML dengan mudah menggunakan DOMPDF. Walaupun DOMPDF adalah perpustakaan yang hebat, ia bukan penyelesaian peluru untuk menghasilkan dokumen PDF; Ia mempunyai beberapa batasan dan isu. DOMPDF tidak benar-benar bertolak ansur dengan HTML yang kurang terbentuk, dan jadual besar dapat dengan mudah menyebabkan anda kehabisan ingatan. Sesetengah ciri CSS asas seperti Float tidak disokong sepenuhnya dan hanya ada sokongan terhad untuk CSS3. Jika anda memerlukan ciri -ciri yang tidak disokong oleh DOMPDF, sesuatu seperti WKHTMLTOPDF mungkin penyelesaian yang lebih baik untuk anda. Namun, DompDF agak mudah dan sesuai untuk majoriti keperluan eksport PDF.
Sangat sukar untuk menerangkan semua ciri yang disediakan oleh perpustakaan dalam artikel seperti ini, jadi pastikan untuk menyemak dokumentasi dan kod sumber juga untuk mempelajari ciri -ciri sejuk seperti menambahkan panggilan balik, menggunakan fon tersuai, dan lain -lain. Juga, i Saya gembira dapat membantu anda dalam kepakaran saya yang terhad. Jangan ragu untuk meninggalkan soalan anda dan berkongsi pengalaman anda di bahagian komen.
imej melalui Fotolia
Dan jika anda suka membaca siaran ini, anda akan suka dipelajari; Tempat untuk mempelajari kemahiran dan teknik segar dari Sarjana. Ahli mendapat akses segera ke semua ebook dan kursus dalam talian interaktif SitePoint, seperti Jump Start PHP.
Komen mengenai artikel ini ditutup. Ada soalan mengenai PHP? Mengapa tidak bertanya di forum kami?
Soalan Lazim (Soalan Lazim) Mengenai Menukar HTML ke PDF dengan DompDF
Apa itu DompDF dan mengapa ia digunakan? Ia digunakan kerana ia boleh mengendalikan susun atur HTML yang kompleks, termasuk gaya CSS, JavaScript, dan imej. Ia adalah alat yang berkuasa untuk pemaju yang perlu menghasilkan dokumen PDF dari kandungan HTML. Ia mudah digunakan, fleksibel, dan boleh diintegrasikan ke dalam aplikasi PHP. Anda boleh memasang komposer dan kemudian menjalankan 'komposer perintah memerlukan dompdf/dompdf'. Ini akan memuat turun dan memasang perpustakaan DOMPDF dalam projek anda.
Bolehkah saya menggunakan CSS dengan DOMPDF?
Ya, DompDF menyokong CSS. Anda boleh menggunakan CSS sebaris dalam HTML anda, atau anda boleh menghubungkan ke fail CSS luaran. DOMPDF akan menggunakan gaya apabila menjana PDF. Walau bagaimanapun, sila ambil perhatian bahawa tidak semua sifat CSS disokong.
Bagaimana saya menambah imej ke PDF saya? . Atribut 'SRC' harus menunjuk pada fail imej. DOMPDF akan memasukkan imej dalam PDF yang dihasilkan.
Bolehkah saya menghasilkan PDF dengan beberapa halaman? Sekiranya kandungan HTML anda cukup lama untuk merangkumi beberapa halaman, DOMPDF akan secara automatik memisahkannya ke halaman. Anda juga boleh menambah pecahan halaman secara manual menggunakan CSS.
Bagaimana saya menetapkan saiz dan orientasi halaman?
Anda boleh menetapkan saiz dan orientasi halaman menggunakan kaedah 'set_paper'. Sebagai contoh, anda boleh menggunakan '$ dompdf-> set_paper (' a4 ',' landscape ')' untuk menetapkan saiz halaman ke A4 dan orientasi ke landskap. > Ya, DompDF boleh digunakan dengan Laravel. Terdapat pakej Laravel yang dipanggil 'laravel-dompdf' yang menyediakan cara mudah untuk menggunakan dompdf dalam aplikasi laravel. PDF yang dihasilkan ke fail menggunakan kaedah 'output' dan fungsi 'file_put_contents'. Sebagai contoh, anda boleh menggunakan 'file_put_contents (' mypdf.pdf ', $ dompdf-> output ())' untuk menyimpan pdf ke fail bernama 'mypdf.pdf'. Sebagai respons dalam aplikasi web? Anda boleh menggunakan kaedah 'Stream' untuk menghantar PDF terus ke penyemak imbas. Adalah penting untuk memastikan pemasangan DOMPDF anda terkini dan mengkaji garis panduan keselamatan yang disediakan oleh pasukan DOMPDF.
Atas ialah kandungan terperinci PHP Master | Tukar HTML ke PDF dengan DOMPDF. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Alat AI Hot

Undress AI Tool
Gambar buka pakaian secara percuma

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Clothoff.io
Penyingkiran pakaian AI

Video Face Swap
Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas

TOVERSIONAPHP-berasaskan-berasaskan, UseUrl-berasaskan Forversioningforclarityandeaseofrouting, separateVersionedcodetoavoidconflicts, decrecateoldversionswithclearCommunication, andconsidercustomheadershipshenershipshenershipshenershipshenershinlyhenershinlywenershinly

TosecurelyhandleAuthenticationandauthorizationInphp, ikuti: 1.alwayshashpasswordswithpassword_hash () andverifyUsingPassword_verify (), usePePreparedStatementStopreventsqlInjection, andStoreUserDatain $ _SessionAsLogin.2.implescureRoleRoleRoleRoleRole

Proseduralandobject-orientedprogramming (OOP) inphpdiffers significelyinstructure, kebolehgunaan semula, dandatahandling.1.ProceduralProgrammingusesFunctionsaganediediedieds, sesuai, pemodelan

PHPdoesnothaveabuilt-inWeakMapbutoffersWeakReferenceforsimilarfunctionality.1.WeakReferenceallowsholdingreferenceswithoutpreventinggarbagecollection.2.Itisusefulforcaching,eventlisteners,andmetadatawithoutaffectingobjectlifecycles.3.YoucansimulateaWe

Untuk mengendalikan muat naik fail dengan selamat di PHP, terasnya adalah untuk mengesahkan jenis fail, menamakan semula fail, dan menyekat kebenaran. 1. Gunakan finfo_file () untuk memeriksa jenis mime sebenar, dan hanya jenis tertentu seperti imej/jpeg dibenarkan; 2. Gunakan uniqid () untuk menghasilkan nama fail rawak dan simpannya dalam direktori akar bukan web; 3. Hadkan saiz fail melalui borang php.ini dan html, dan tetapkan kebenaran direktori ke 0755; 4. Gunakan Clamav untuk mengimbas malware untuk meningkatkan keselamatan. Langkah -langkah ini dengan berkesan menghalang kelemahan keselamatan dan memastikan bahawa proses muat naik fail adalah selamat dan boleh dipercayai.

Ya, PHP boleh berinteraksi dengan pangkalan data NoSQL seperti MongoDB dan Redis melalui sambungan atau perpustakaan tertentu. Pertama, gunakan pemacu MongoDBPHP (dipasang melalui PECL atau komposer) untuk membuat contoh pelanggan dan mengendalikan pangkalan data dan koleksi, penyisipan sokongan, pertanyaan, pengagregatan dan operasi lain; Kedua, gunakan perpustakaan predis atau lanjutan phpredis untuk menyambung ke REDIS, lakukan tetapan dan pengambilalihan nilai utama, dan mengesyorkan PHPREDI untuk senario berprestasi tinggi, sementara Predis mudah untuk penempatan pesat; Kedua-duanya sesuai untuk persekitaran pengeluaran dan didokumentasikan dengan baik.

Dalam PHP, perbezaan utama antara == dan == adalah ketat pemeriksaan jenis. == Penukaran jenis akan dilakukan sebelum perbandingan, contohnya, 5 == "5" pulangan benar, dan === meminta nilai dan jenis adalah sama sebelum benar akan dikembalikan, sebagai contoh, 5 === "5" mengembalikan palsu. Dalam senario penggunaan, === lebih selamat dan harus digunakan terlebih dahulu, dan == hanya digunakan apabila penukaran jenis diperlukan.

Kaedah menggunakan operasi matematik asas dalam PHP adalah seperti berikut: 1. Tanda tambahan menyokong bilangan bulat dan nombor terapung, dan juga boleh digunakan untuk pembolehubah. Nombor rentetan akan ditukar secara automatik tetapi tidak disyorkan kepada kebergantungan; 2. Tanda -tanda pengurangan - tanda, pembolehubah adalah sama, dan penukaran jenis juga terpakai; 3. Tanda -tanda pendaraban menggunakan tanda *, yang sesuai untuk nombor dan rentetan yang serupa; 4. Bahagian menggunakan / tanda, yang perlu mengelakkan pembahagian dengan sifar, dan perhatikan bahawa hasilnya mungkin nombor terapung; 5. Mengambil tanda modulus boleh digunakan untuk menilai angka ganjil dan bahkan, dan apabila memproses nombor negatif, tanda -tanda selebihnya selaras dengan dividen. Kunci untuk menggunakan pengendali ini dengan betul adalah untuk memastikan bahawa jenis data adalah jelas dan keadaan sempadan ditangani dengan baik.
