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>
</span></span></span><span><span>
</span></span><span><span>
</span></span><span><span> <h1 id="Hello-Dompdf">Hello Dompdf</h1>
</span></span><span><span>
</span></span><span><span>
</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></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>
</span></span></span><span><span>
</span></span><span><span>
</span></span><span><span> <h1 id="Hello-Dompdf">Hello Dompdf</h1>
</span></span><span><span>
</span></span><span><span>
</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></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!

Beban mengimbangi mempengaruhi pengurusan sesi, tetapi dapat diselesaikan dengan replikasi sesi, ketegangan sesi, dan penyimpanan sesi berpusat. 1. Sesi Replikasi Salinan Data Sesi Antara Pelayan. 2. Sesi Stickiness mengarahkan permintaan pengguna ke pelayan yang sama. 3. Penyimpanan Sesi Pusat menggunakan pelayan bebas seperti Redis untuk menyimpan data sesi untuk memastikan perkongsian data.

Sessionlockingisatechniqueusedtoensureauserererersessionremainsexclusivetooneuseratatime.IScrucialFreventingDataCorruptionSandsecuritybreachesinmulti-userapplications.SessionLockingISimplementedusingserverververveChan

Alternatif untuk sesi PHP termasuk kuki, pengesahan berasaskan token, sesi berasaskan pangkalan data, dan redis/memcached. 1.Cookies Menguruskan sesi dengan menyimpan data pada klien, yang mudah tetapi rendah dalam keselamatan. 2. Pengesahan berasaskan token menggunakan token untuk mengesahkan pengguna, yang sangat selamat tetapi memerlukan logik tambahan. 3.Database-berasaskan data menyimpan data dalam pangkalan data, yang mempunyai skalabilitas yang baik tetapi boleh menjejaskan prestasi. 4. Redis/Memcached menggunakan cache yang diedarkan untuk meningkatkan prestasi dan skalabiliti, tetapi memerlukan pemadanan tambahan

SessionHijacking merujuk kepada penyerang yang menyamar sebagai pengguna dengan mendapatkan sessionId pengguna. Kaedah pencegahan termasuk: 1) menyulitkan komunikasi menggunakan HTTPS; 2) mengesahkan sumber sessionId; 3) menggunakan algoritma generasi sesi yang selamat; 4) Secara kerap mengemas kini sessionId.

Artikel ini membincangkan PHP, memperincikan bentuk penuhnya, kegunaan utama dalam pembangunan web, perbandingan dengan Python dan Java, dan kemudahan pembelajarannya untuk pemula.

PHP mengendalikan data borang menggunakan $ \ _ post dan $ \ _ mendapatkan superglobals, dengan keselamatan memastikan melalui pengesahan, sanitisasi, dan interaksi pangkalan data yang selamat.

Artikel ini membandingkan PHP dan ASP.NET, memberi tumpuan kepada kesesuaian mereka untuk aplikasi web berskala besar, perbezaan prestasi, dan ciri keselamatan. Kedua-duanya berdaya maju untuk projek besar, tetapi PHP adalah sumber terbuka dan bebas platform, sementara ASP.NET,

Kepekaan kes PHP berbeza -beza: Fungsi tidak sensitif, manakala pembolehubah dan kelas sensitif. Amalan terbaik termasuk penamaan yang konsisten dan menggunakan fungsi kes-insensitif untuk perbandingan.


Alat AI Hot

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

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

Undress AI Tool
Gambar buka pakaian secara percuma

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

mPDF
mPDF ialah perpustakaan PHP yang boleh menjana fail PDF daripada HTML yang dikodkan UTF-8. Pengarang asal, Ian Back, menulis mPDF untuk mengeluarkan fail PDF "dengan cepat" dari tapak webnya dan mengendalikan bahasa yang berbeza. Ia lebih perlahan dan menghasilkan fail yang lebih besar apabila menggunakan fon Unicode daripada skrip asal seperti HTML2FPDF, tetapi menyokong gaya CSS dsb. dan mempunyai banyak peningkatan. Menyokong hampir semua bahasa, termasuk RTL (Arab dan Ibrani) dan CJK (Cina, Jepun dan Korea). Menyokong elemen peringkat blok bersarang (seperti P, DIV),

Pelayar Peperiksaan Selamat
Pelayar Peperiksaan Selamat ialah persekitaran pelayar selamat untuk mengambil peperiksaan dalam talian dengan selamat. Perisian ini menukar mana-mana komputer menjadi stesen kerja yang selamat. Ia mengawal akses kepada mana-mana utiliti dan menghalang pelajar daripada menggunakan sumber yang tidak dibenarkan.

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

SecLists
SecLists ialah rakan penguji keselamatan muktamad. Ia ialah koleksi pelbagai jenis senarai yang kerap digunakan semasa penilaian keselamatan, semuanya di satu tempat. SecLists membantu menjadikan ujian keselamatan lebih cekap dan produktif dengan menyediakan semua senarai yang mungkin diperlukan oleh penguji keselamatan dengan mudah. Jenis senarai termasuk nama pengguna, kata laluan, URL, muatan kabur, corak data sensitif, cangkerang web dan banyak lagi. Penguji hanya boleh menarik repositori ini ke mesin ujian baharu dan dia akan mempunyai akses kepada setiap jenis senarai yang dia perlukan.

Penyesuai Pelayan SAP NetWeaver untuk Eclipse
Integrasikan Eclipse dengan pelayan aplikasi SAP NetWeaver.
