Seperti yang telah saya katakan dalam artikel terdahulu saya, PHP dan WMI - menggali jauh ke Windows dengan PHP, kita hidup di dunia di mana kita php devs harus berurusan dengan sistem operasi Windows dari semasa ke semasa. WMI (Windows Management Interface) adalah satu peristiwa seperti itu dan Microsoft Office Interop adalah satu lagi - yang lebih penting dan lebih kerap digunakan.
Dalam artikel ini, kita akan melihat integrasi mudah antara Word dan PHP: untuk menghasilkan dokumen Microsoft Word berdasarkan input dalam bentuk HTML menggunakan PHP (dan lanjutan interopnya).
Takeaways Key
pemaju PHP boleh menjana dokumen Microsoft Word berdasarkan input dalam bentuk HTML menggunakan PHP dan lanjutan interopnya.
- Untuk integrasi yang berjaya, persekitaran WAMP biasa diperlukan, bersama dengan Microsoft Office dan perpustakaan untuk membangunkan aplikasi interop (PIA, perhimpunan interop primer).
- PHP Extension php_com_dotnet.dll perlu diaktifkan dalam fail php.ini dan pelayan dimulakan semula sebelum meneruskan dengan pengaturcaraan.
- fail php belakang belakang adalah tumpuan proses pengekodan, dengan manipulasi COM dalam PHP yang memerlukan instantiasi "kelas" dalam "perhimpunan".
- Untuk meningkatkan kelajuan pengekodan dan pemahaman PIA, pemaju boleh membangunkan fungsi dalam C# pertama dan kemudian memindahkan kod kembali ke PHP. Dokumentasi rasmi Microsoft di Office PIA adalah bahan rujukan yang berharga.
-
Persediaan
Pertama, sila pastikan persekitaran WAMP tipikal telah ditubuhkan di mesin pembangunan Windows anda. Sebagai Interop semata -mata ciri Windows, kita perlu menjadi tuan rumah Apache dan PHP di bawah Windows. Dalam hal ini, saya menggunakan EasyPhp 14.1, yang agak mudah dipasang dan dikonfigurasikan.
Seterusnya, kita perlu memasang Microsoft Office. Versinya tidak begitu kritikal. Saya menggunakan Office 2013 Pro tetapi mana -mana versi pejabat lewat 2007 harus berfungsi.
Kami perlu memastikan perpustakaan untuk membangunkan aplikasi interop (dipanggil PIA, perhimpunan interop primer) dipasang. Untuk memastikan ini, kami boleh membuka Windows Explorer dan menavigasi ke: Perhimpunan dan kami akan melihat sekumpulan PIA yang dipasang:
kita melihat entri microsoft.office.interop.word (digariskan dalam snapshot). Ini akan menjadi PIA yang kita gunakan dalam demo ini. Sila beri perhatian khusus kepada "nama pemasangan", "versi" dan "token utama awam". Ini akan digunakan dalam skrip PHP kami tidak lama lagi.
Dalam direktori ini, kita juga dapat melihat PIA lain (termasuk seluruh keluarga pejabat) yang tersedia untuk pengaturcaraan (bukan hanya untuk PHP, tetapi juga untuk VB.Net, C#, dll) Jika senarai PIAS tidak termasuk keseluruhan pakej Microsoft.Office.Interop, kami akan memasang semula pejabat kami dan memasukkan ciri-ciri PIA; Atau kita perlu memuat turun pakej secara manual dari Microsoft dan memasangnya. Sila rujuk halaman MSDN ini untuk arahan terperinci.
NOTA: Hanya Microsoft Office 2010 PIA Redistributable tersedia untuk dimuat turun dan dipasang. Versi PIA dalam pakej ini ialah 14.0.0. Versi 15 hanya dilengkapi dengan pemasangan Office 2013.
Akhirnya, kita perlu mengaktifkan pelanjutan php_com_dotnet.dll PHP dalam fail php.ini dan mulakan semula pelayan.
Sekarang kita boleh beralih ke pengaturcaraan.
bentuk html
Sebagai tumpuan demo ini berada di pemprosesan belakang belakang, kami akan membuat hujung depan yang mudah dengan bentuk HTML yang mudah, yang kelihatan seperti angka di bawah:
Kami mempunyai medan teks untuk "nama", kumpulan butang radio untuk "jantina", kawalan jarak untuk "umur" dan kawasan teks untuk "mesej"; Dan akhirnya, tentu saja, butang "Hantar".
Simpan fail ini sebagai "index.html" dalam direktori di bawah direktori akar hos maya supaya kita dapat mengaksesnya dengan URI seperti http: // test/test/interop.
hujung belakang
fail php belakang belakang adalah tumpuan perbincangan kami. Saya akan terlebih dahulu menyenaraikan kod fail ini, dan kemudian menerangkannya langkah demi langkah.
<span><span><?php
</span></span><span>
</span><span><span>$inputs = $_POST;
</span></span><span><span>$inputs['printdate']='';
</span></span><span><span>// A dummy value to avoid a PHP notice as we don't have "printdate" in the POST variables.
</span></span><span>
</span><span><span>$assembly = 'Microsoft.Office.Interop.Word, Version=15.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c';
</span></span><span><span>$class = 'Microsoft.Office.Interop.Word.ApplicationClass';
</span></span><span>
</span><span><span>$w = new DOTNET($assembly, $class);
</span></span><span><span>$w->visible = true;
</span></span><span>
</span><span><span>$fn = __DIR__ . '\template.docx';
</span></span><span>
</span><span><span>$d = $w->Documents->Open($fn);
</span></span><span>
</span><span><span>echo "Document opened.<br><hr>";
</span></span><span>
</span><span><span>$flds = $d->Fields;
</span></span><span><span>$count = $flds->Count;
</span></span><span><span>echo "There are <span><span>$count</span> fields in this document.<br>"</span>;
</span></span><span><span>echo "<ul>";
</span></span><span><span>$mapping = setupfields();
</span></span><span>
</span><span><span>foreach ($flds as $index => $f)
</span></span><span><span>{
</span></span><span> <span>$f->Select();
</span></span><span> <span>$key = $mapping[$index];
</span></span><span> <span>$value = $inputs[$key];
</span></span><span> <span>if ($key == 'gender')
</span></span><span> <span>{
</span></span><span> <span>if ($value == 'm')
</span></span><span> <span>$value = 'Mr.';
</span></span><span> <span>else
</span></span><span> <span>$value = 'Ms.';
</span></span><span> <span>}
</span></span><span>
</span><span> <span>if($key=='printdate')
</span></span><span> <span>$value= date ('Y-m-d H:i:s');
</span></span><span>
</span><span> <span>$w->Selection->TypeText($value);
</span></span><span> <span>echo "<li>Mappig field <span><span>$index</span>: <span>$key</span> with value <span>$value</span></li>"</span>;
</span></span><span><span>}
</span></span><span><span>echo "</ul>";
</span></span><span>
</span><span><span>echo "Mapping done!<br><hr>";
</span></span><span><span>echo "Printing. Please wait...<br>";
</span></span><span>
</span><span><span>$d->PrintOut();
</span></span><span><span>sleep(3);
</span></span><span><span>echo "Done!";
</span></span><span>
</span><span><span>$w->Quit(false);
</span></span><span><span>$w=null;
</span></span><span>
</span><span>
</span><span>
</span><span><span>function setupfields()
</span></span><span><span>{
</span></span><span> <span>$mapping = array();
</span></span><span> <span>$mapping[0] = 'gender';
</span></span><span> <span>$mapping[1] = 'name';
</span></span><span> <span>$mapping[2] = 'age';
</span></span><span> <span>$mapping[3] = 'msg';
</span></span><span> <span>$mapping[4] = 'printdate';
</span></span><span>
</span><span>
</span><span> <span>return $mapping;
</span></span><span><span>}</span></span>
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
selepas menubuhkan pembolehubah input $ untuk memegang nilai yang dipaparkan dari borang kami, dan mencipta nilai dummy untuk printDate - kami akan membincangkan mengapa kami memerlukan ini kemudian - kami menjumpai empat baris kritikal ini:
<span>$assembly = 'Microsoft.Office.Interop.Word, Version=15.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c';
</span><span>$class = 'Microsoft.Office.Interop.Word.ApplicationClass';
</span>
<span>$w = new DOTNET($assembly, $class);
</span><span>$w->visible = true;</span>
Salin selepas log masuk
Manipulasi COM dalam PHP memerlukan instantiasi "kelas" dalam "perhimpunan". Dalam kes kita, kita harus beroperasi dengan Word. Sekiranya kita merenungkan tangkapan skrin pertama yang kami tunjukkan, kita akan dapat membina tandatangan penuh perkataan pia:
"Nama", "Versi", "Token Utama Awam" semuanya diambil dari maklumat yang dipaparkan ketika kami melayari "C: Windowsassembly". -
"Budaya" sentiasa neutrual. -
Kelas yang kita hendak memanggil selalu nama perhimpunan ditambah ".PlicationClass".
Dengan kedua -dua parameter ini ditetapkan, kami akan dapat memberi instantiasi objek perkataan.
Objek ini boleh tinggal di latar belakang atau kita boleh membawanya ke latar depan dengan menetapkan atribut yang kelihatannya benar.
Seterusnya, kami membuka dokumen untuk diproses dan memberikan contoh "dokumen" kepada pembolehubah $ d.
Dalam dokumen itu, untuk membuat kandungan berdasarkan input dari borang HTML, kami mempunyai beberapa pilihan.
Cara yang paling tidak menguntungkan adalah untuk kod keras semua kandungan dalam PHP dan kemudian output ke dalam dokumen Word. Saya sangat tidak menggalakkan ini kerana sebab -sebab berikut:
- tidak akan ada fleksibiliti. Sebarang perubahan dalam output akan memerlukan pengubahsuaian skrip PHP.
- Ia melanggar pemisahan antara kawalan dan persembahan.
- Ia secara drastik akan meningkatkan garis kod jika kita menggunakan gaya kepada kandungan dokumen (penjajaran, fon, gaya, dll). Gaya berubah secara pemrograman terlalu rumit.
cara lain ialah melakukan "carian-tempat". PHP mempunyai keupayaan terbina dalam yang kuat dalam melakukan ini. Kami boleh membuat dokumen Word meletakkan beberapa pembatas khas di sekitar kandungan pemegang tempat yang akan diganti. Sebagai contoh, kita boleh membuat dokumen yang mengandungi sesuatu seperti ini:
{{name}}
Dan dalam PHP, kita hanya dapat menggantikannya dengan nilai "nama" yang kita ambil dari penyerahan borang.
Ini mudah dan mengelakkan semua kelemahan dalam pilihan pertama. Kami hanya perlu mencari pembatas yang betul, dan dalam kes ini, kami lebih suka melakukan rendering templat, kecuali bahawa templat yang digunakan kini merupakan dokumen perkataan.
Pilihan ketiga adalah cadangan saya dan merupakan topik lanjutan dalam Word. Kami akan menggunakan medan untuk mewakili ruang letak, dan dalam kod PHP kami, kami akan mengemas kini bidang secara langsung dengan nilai borang masing -masing.
Pendekatan ini fleksibel, cepat dan sesuai dengan amalan terbaik Word. Ia juga mengelakkan carian teks penuh dalam dokumen, yang membantu prestasi. Perhatikan bahawa pilihan ini juga mempunyai kelemahannya.
perkataan, sejak debutnya, tidak pernah menyokong indeks bernama untuk bidang. Walaupun kami memberikan nama untuk bidang yang kami buat dalam dokumen Word, kami masih perlu menggunakan subskrip nombor untuk mengakses setiap medan. Ini juga menjelaskan mengapa kita perlu menggunakan fungsi khusus (persediaan) untuk melakukan pemetaan manual antara indeks medan dan nama medan borang.
Untuk mengetahui cara memasukkan medan dalam dokumen Word (klik di sini untuk versi siap sedia), sila rujuk topik dan manual bantuan perkataan yang berkaitan. Untuk demo ini, kami mempunyai dokumen dengan 5 Mergefield Fields. Juga, kami meletakkan dokumen itu dalam direktori yang sama dengan skrip PHP untuk akses mudah.
Sila ambil perhatian, medan PrintDate tidak mempunyai medan borang yang sepadan. Itulah sebabnya kami menambah kunci cetakan dummy ke array input $. Tanpa ini, skrip masih boleh dijalankan tetapi akan ada notis mengatakan bahawa indeks printdate tidak dibentangkan dalam array input $.
Setelah mengemas kini medan dengan nilai borang, kami akan mencetak dokumen menggunakan:
<span><span><?php
</span></span><span>
</span><span><span>$inputs = $_POST;
</span></span><span><span>$inputs['printdate']='';
</span></span><span><span>// A dummy value to avoid a PHP notice as we don't have "printdate" in the POST variables.
</span></span><span>
</span><span><span>$assembly = 'Microsoft.Office.Interop.Word, Version=15.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c';
</span></span><span><span>$class = 'Microsoft.Office.Interop.Word.ApplicationClass';
</span></span><span>
</span><span><span>$w = new DOTNET($assembly, $class);
</span></span><span><span>$w->visible = true;
</span></span><span>
</span><span><span>$fn = __DIR__ . '\template.docx';
</span></span><span>
</span><span><span>$d = $w->Documents->Open($fn);
</span></span><span>
</span><span><span>echo "Document opened.<br><hr>";
</span></span><span>
</span><span><span>$flds = $d->Fields;
</span></span><span><span>$count = $flds->Count;
</span></span><span><span>echo "There are <span><span>$count</span> fields in this document.<br>"</span>;
</span></span><span><span>echo "<ul>";
</span></span><span><span>$mapping = setupfields();
</span></span><span>
</span><span><span>foreach ($flds as $index => $f)
</span></span><span><span>{
</span></span><span> <span>$f->Select();
</span></span><span> <span>$key = $mapping[$index];
</span></span><span> <span>$value = $inputs[$key];
</span></span><span> <span>if ($key == 'gender')
</span></span><span> <span>{
</span></span><span> <span>if ($value == 'm')
</span></span><span> <span>$value = 'Mr.';
</span></span><span> <span>else
</span></span><span> <span>$value = 'Ms.';
</span></span><span> <span>}
</span></span><span>
</span><span> <span>if($key=='printdate')
</span></span><span> <span>$value= date ('Y-m-d H:i:s');
</span></span><span>
</span><span> <span>$w->Selection->TypeText($value);
</span></span><span> <span>echo "<li>Mappig field <span><span>$index</span>: <span>$key</span> with value <span>$value</span></li>"</span>;
</span></span><span><span>}
</span></span><span><span>echo "</ul>";
</span></span><span>
</span><span><span>echo "Mapping done!<br><hr>";
</span></span><span><span>echo "Printing. Please wait...<br>";
</span></span><span>
</span><span><span>$d->PrintOut();
</span></span><span><span>sleep(3);
</span></span><span><span>echo "Done!";
</span></span><span>
</span><span><span>$w->Quit(false);
</span></span><span><span>$w=null;
</span></span><span>
</span><span>
</span><span>
</span><span><span>function setupfields()
</span></span><span><span>{
</span></span><span> <span>$mapping = array();
</span></span><span> <span>$mapping[0] = 'gender';
</span></span><span> <span>$mapping[1] = 'name';
</span></span><span> <span>$mapping[2] = 'age';
</span></span><span> <span>$mapping[3] = 'msg';
</span></span><span> <span>$mapping[4] = 'printdate';
</span></span><span>
</span><span>
</span><span> <span>return $mapping;
</span></span><span><span>}</span></span>
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Kaedah cetakan mempunyai beberapa parameter pilihan dan kami menggunakan bentuk yang paling mudah. Ini akan mencetak satu salinan ke pencetak lalai yang disambungkan ke mesin Windows kami.
kita juga boleh memilih untuk menggunakan PrintPreview untuk melihat output sebelum kita memutuskan untuk mencetak dokumen. Dalam persekitaran yang semata -mata automatik, kami akan menggunakan cetakan sebaliknya.
kita perlu menunggu beberapa saat sebelum kita berhenti dari aplikasi kata kerana pekerjaan percetakan memerlukan sedikit masa untuk dibuang sepenuhnya. Tanpa kelewatan (3), $ w-> berhenti dilaksanakan dengan segera dan kerja percetakan juga dibunuh.
Akhirnya, kami panggil $ w-> berhenti (palsu) untuk menutup aplikasi perkataan yang dipanggil oleh skrip PHP kami. Satu -satunya parameter yang disediakan di sini adalah untuk menentukan sama ada kita mahu menyimpan perubahan sebelum berhenti. Kami membuat perubahan pada dokumen tetapi kami benar -benar tidak mahu menyimpannya kerana kami mahu menyimpan templat bersih untuk input pengguna lain.
Selepas kita melengkapkan kod, kita boleh memuatkan halaman borang, memasukkan beberapa nilai dan menyerahkan borang. Imej di bawah menunjukkan output skrip PHP dan juga dokumen perkataan yang dikemas kini:
Meningkatkan kelajuan pengekodan dan memahami lebih lanjut mengenai pia
php adalah bahasa yang lemah. Objek COM adalah objek jenis. Semasa pengekodan PHP kami, tidak ada cara untuk mendapatkan wawasan kod yang bermakna daripada objek, sama ada aplikasi perkataan, dokumen, atau bidang. Kami tidak tahu apa sifatnya, atau kaedah yang menyokongnya.
Ini akan melambatkan kelajuan pembangunan kami. Untuk menjadikannya lebih cepat, saya akan mengesyorkan kami membangunkan fungsi dalam C# pertama dan kemudian memindahkan kod kembali ke PHP. C# IDE percuma yang saya cadangkan dipanggil "#Develop" dan boleh dimuat turun di sini. Saya lebih suka ini untuk siri VS kerana #Develop lebih kecil, lebih bersih, dan lebih cepat.
Penghijrahan kod C# ke PHP tidak menakutkan sama sekali. Izinkan saya menunjukkan kepada anda beberapa baris kod C#:
<span><span><?php
</span></span><span>
</span><span><span>$inputs = $_POST;
</span></span><span><span>$inputs['printdate']='';
</span></span><span><span>// A dummy value to avoid a PHP notice as we don't have "printdate" in the POST variables.
</span></span><span>
</span><span><span>$assembly = 'Microsoft.Office.Interop.Word, Version=15.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c';
</span></span><span><span>$class = 'Microsoft.Office.Interop.Word.ApplicationClass';
</span></span><span>
</span><span><span>$w = new DOTNET($assembly, $class);
</span></span><span><span>$w->visible = true;
</span></span><span>
</span><span><span>$fn = __DIR__ . '\template.docx';
</span></span><span>
</span><span><span>$d = $w->Documents->Open($fn);
</span></span><span>
</span><span><span>echo "Document opened.<br><hr>";
</span></span><span>
</span><span><span>$flds = $d->Fields;
</span></span><span><span>$count = $flds->Count;
</span></span><span><span>echo "There are <span><span>$count</span> fields in this document.<br>"</span>;
</span></span><span><span>echo "<ul>";
</span></span><span><span>$mapping = setupfields();
</span></span><span>
</span><span><span>foreach ($flds as $index => $f)
</span></span><span><span>{
</span></span><span> <span>$f->Select();
</span></span><span> <span>$key = $mapping[$index];
</span></span><span> <span>$value = $inputs[$key];
</span></span><span> <span>if ($key == 'gender')
</span></span><span> <span>{
</span></span><span> <span>if ($value == 'm')
</span></span><span> <span>$value = 'Mr.';
</span></span><span> <span>else
</span></span><span> <span>$value = 'Ms.';
</span></span><span> <span>}
</span></span><span>
</span><span> <span>if($key=='printdate')
</span></span><span> <span>$value= date ('Y-m-d H:i:s');
</span></span><span>
</span><span> <span>$w->Selection->TypeText($value);
</span></span><span> <span>echo "<li>Mappig field <span><span>$index</span>: <span>$key</span> with value <span>$value</span></li>"</span>;
</span></span><span><span>}
</span></span><span><span>echo "</ul>";
</span></span><span>
</span><span><span>echo "Mapping done!<br><hr>";
</span></span><span><span>echo "Printing. Please wait...<br>";
</span></span><span>
</span><span><span>$d->PrintOut();
</span></span><span><span>sleep(3);
</span></span><span><span>echo "Done!";
</span></span><span>
</span><span><span>$w->Quit(false);
</span></span><span><span>$w=null;
</span></span><span>
</span><span>
</span><span>
</span><span><span>function setupfields()
</span></span><span><span>{
</span></span><span> <span>$mapping = array();
</span></span><span> <span>$mapping[0] = 'gender';
</span></span><span> <span>$mapping[1] = 'name';
</span></span><span> <span>$mapping[2] = 'age';
</span></span><span> <span>$mapping[3] = 'msg';
</span></span><span> <span>$mapping[4] = 'printdate';
</span></span><span>
</span><span>
</span><span> <span>return $mapping;
</span></span><span><span>}</span></span>
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
kita dapat melihat bahawa kod C# hampir sama dengan kod PHP yang kami tunjukkan sebelumnya. C# sangat ditaip sehingga kita melihat beberapa jenis penyataan pemutus dan kita harus secara eksplisit memberikan pembolehubah kita jenis.
Dengan jenis pembolehubah yang diberikan, kita dapat menikmati wawasan kod dan penyelesaian kod supaya kelajuan pembangunan lebih cepat.
Satu lagi cara untuk mempercepatkan pembangunan PHP kami adalah untuk mengetuk makro perkataan. Kami melakukan tindakan yang sama yang perlu kita lakukan dan merekodkannya dengan makro. Makro dalam Visual Basic, yang juga boleh diubah dengan mudah ke PHP.
Yang paling penting, dokumentasi rasmi Microsoft di Office PIA, terutama dokumentasi ruang nama untuk setiap aplikasi pejabat, selalu merupakan bahan rujukan yang paling terperinci. Tiga aplikasi yang kebanyakannya digunakan ialah:
- Excel 2013: http://msdn.microsoft.com/en-us/library/microsoft.office.interop.excel (v = office.15) .aspx
- Word 2013: http://msdn.microsoft.com/en-us/library/microsoft.office.interop.word(v=office.15).aspx
- PowerPoint 2013: http://msdn.microsoft.com/en-us/library/microsoft.office.interop.powerpoint (v = office.15) .aspx
Kesimpulan
Dalam artikel ini, kami menunjukkan cara mengisi dokumen perkataan menggunakan perpustakaan PHP COM dan keupayaan Interop Microsoft Office.
Windows dan Office digunakan secara meluas dalam kehidupan seharian. Untuk mempunyai pengetahuan mengenai kuasa kedua -dua pejabat/tingkap dan PHP akan menjadi penting bagi mana -mana pengaturcara Windows PHP.
Dengan sambungan COM PHP, pintu untuk menguasai gabungan ini dibuka.
Jika anda berminat dalam bidang pengaturcaraan ini, sila tinggalkan komen anda dan kami akan mempertimbangkan untuk mempunyai lebih banyak artikel mengenai topik ini. Saya tidak sabar -sabar untuk melihat lebih banyak aplikasi dunia sebenar yang dibangunkan menggunakan pendekatan ini.
Soalan Lazim (Soalan Lazim) Mengenai Membuat Dokumen Microsoft Word dengan PHP
Bagaimana saya boleh menambah imej ke dokumen Word saya menggunakan php?
Menambah imej ke dokumen Word anda menggunakan PHP adalah proses yang mudah. Anda boleh menggunakan fungsi addImage () yang disediakan oleh perpustakaan phpword. Fungsi ini membolehkan anda menentukan laluan ke fail imej yang anda mahu tambah. Anda juga boleh menentukan parameter tambahan seperti lebar, ketinggian, dan penjajaran untuk menyesuaikan penampilan imej dalam dokumen anda. Ingatlah untuk memasukkan tajuk yang diperlukan dalam skrip PHP anda untuk memastikan imej diterjemahkan dengan betul dan dipaparkan dalam dokumen Word. Buat jadual dalam dokumen Word menggunakan PHP. Perpustakaan PHPWORD menyediakan fungsi yang dipanggil AddTable () yang boleh anda gunakan untuk membuat jadual dalam dokumen anda. Anda kemudian boleh menggunakan fungsi AddRow () dan AddCell () untuk menambah baris dan lajur ke meja anda. Anda juga boleh menentukan lebar, ketinggian, dan penjajaran jadual anda dan sel -selnya untuk menyesuaikan penampilannya. Untuk teks dalam dokumen Word anda menggunakan PHP adalah mudah dengan perpustakaan PHPWORD. Anda boleh menggunakan fungsi AddText () untuk menambah teks ke dokumen anda, dan anda boleh menentukan array gaya sebagai parameter kedua untuk fungsi ini. Arahan gaya ini boleh termasuk sifat -sifat seperti saiz fon, warna fon, berani, italik, garis bawah, dan banyak lagi. Anda juga boleh membuat objek gaya menggunakan fungsi addtitLestyle () atau addParraphstyle () dan memohon kepada teks anda.
Bolehkah saya menukar HTML ke dokumen Word menggunakan php?
Ya, anda boleh menukar HTML ke dokumen Word menggunakan php. Perpustakaan PHPWORD menyediakan fungsi yang dipanggil addHtml () yang boleh anda gunakan untuk menambah kandungan HTML ke dokumen anda. Fungsi ini mengutip kandungan HTML dan menukarkannya ke dalam format yang boleh dipaparkan dalam dokumen Word. Walau bagaimanapun, sila ambil perhatian bahawa tidak semua tag HTML disokong, dan beberapa struktur HTML kompleks mungkin tidak ditukar dengan betul. Mewujudkan dokumen Word anda menggunakan PHP, anda boleh menyimpannya ke lokasi tertentu menggunakan fungsi SAVE () yang disediakan oleh Perpustakaan PHPWORD. Fungsi ini mengambil jalan ke lokasi di mana anda ingin menyimpan dokumen sebagai parameter. Jika lokasi yang ditentukan tidak wujud, fungsi itu akan cuba menciptanya. Sekiranya fungsi tidak dapat membuat lokasi atau simpan dokumen, ia akan membuang pengecualian. Header dan Footers ke dokumen Word anda menggunakan PHP. Perpustakaan PHPWORD menyediakan fungsi yang dipanggil AddHeader () dan AddFooter () yang boleh anda gunakan untuk menambah tajuk dan footer ke dokumen anda. Anda kemudian boleh menggunakan fungsi AddText () untuk menambah teks ke tajuk dan footer anda. Anda juga boleh menggunakan gaya untuk tajuk dan kaki anda menggunakan kaedah yang sama seperti yang diterangkan dalam Soalan 3.
Bagaimana saya boleh menambah pecahan halaman ke dokumen Word saya menggunakan php? ke dokumen Word anda menggunakan PHP dengan menggunakan fungsi AddPagebreak () yang disediakan oleh Perpustakaan PHPWORD. Fungsi ini memasukkan rehat halaman pada kedudukan semasa dalam dokumen, menyebabkan semua kandungan berikutnya muncul pada halaman baru.
Bolehkah saya membuat dokumen perkataan dari templat menggunakan php?
Ya , Anda boleh membuat dokumen perkataan dari templat menggunakan PHP. Perpustakaan PHPWORD menyediakan fungsi yang dipanggil LoadTemplate () yang boleh anda gunakan untuk memuatkan templat dokumen perkataan. Anda kemudian boleh menggunakan fungsi setValue () untuk menggantikan teks letak dalam templat dengan kandungan anda sendiri.
Bagaimana saya boleh menambah hiperpautan ke dokumen Word saya menggunakan php? Dokumen Word anda menggunakan PHP dengan menggunakan fungsi AddLink () yang disediakan oleh Perpustakaan PHPWORD. Fungsi ini mewujudkan hiperpautan pada kedudukan semasa dalam dokumen. Anda boleh menentukan URL hyperlink dan teks yang akan dipaparkan sebagai hiperpautan. Dokumen menggunakan PHP. Perpustakaan PHPWORD menyediakan fungsi yang dipanggil AddListItem () yang boleh anda gunakan untuk menambah item senarai ke dokumen anda. Anda boleh menentukan teks item senarai dan kedalaman item dalam senarai. Anda juga boleh menggunakan gaya untuk item senarai anda menggunakan kaedah yang sama seperti yang diterangkan dalam Soalan 3.
Atas ialah kandungan terperinci Cara Membuat Dokumen Microsoft Word dengan PHP. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!