Rumah >pembangunan bahagian belakang >masalah PHP >Bagaimana untuk melaksanakan fungsi pratonton fail pdf applet WeChat berdasarkan PHP

Bagaimana untuk melaksanakan fungsi pratonton fail pdf applet WeChat berdasarkan PHP

WBOY
WBOYke hadapan
2022-08-26 14:05:283210semak imbas

(Tutorial disyorkan: Tutorial video PHP)

Penerangan masalah

Beberapa masa lalu, jenis perpustakaan Applet WeChat Saya menghadapi masalah semasa pembangunan, iaitu untuk melihat pratonton fail PDF dalam Alibaba Cloud OSS dalam program mini. Terdapat hanya satu penyelesaian rasmi yang disediakan oleh WeChat, iaitu untuk cache dokumen secara tempatan dan kemudian membukanya dengan pengurus sumber.

Masalah menulis dengan cara ini adalah jelas . Dan saya hanya perlu pratonton beberapa halaman pertama, dan saya juga perlu cache semua dokumen dan membukanya dalam penjelajah fail. Pengalaman yang sangat teruk.

Proses penerokaan

  • Pilihan 1: Gunakan paparan web program mini untuk pratonton pada halaman web. Pengalaman masih okey, tetapi masalah yang dihadapi ialah masalah merentas domain tidak dapat diselesaikan.

  • Pilihan 2: pdf.js. Banyak penyelesaian di Internet mengatakan untuk menggunakan ini dan menulis halaman statik pada pelayan untuk pratonton. Dengan penyelesaian ini, tidak mengapa jika fail pdf berada pada pelayan nama domain anda sendiri. Walau bagaimanapun, jika fail berada dalam oss pihak ketiga, anda masih akan menghadapi masalah merentas domain. Selain itu, program mini dalam talian akan mengeluarkan gesaan lompat. Dokumen pdf.js sukar dibaca, dengan pelbagai isu keserasian dan masalah tidak diketahui yang tidak dapat diramalkan.

  • Pilihan 3: Tukar fail pdf kepada imej, applet hanya memuatkan imej yang sepadan. Penyelesaian ini adalah yang paling sempurna, tetapi ia lebih sesuai untuk pembangun back-end pascasiswazah. Bahagian belakang kami terlalu menyusahkan, jadi saya tiada pilihan selain memperbaikinya. Saya hanya boleh melakukannya sendiri.

Idea pelaksanaan

Lulus pautan fail pdf untuk dipratonton dan bilangan halaman yang akan dipratonton ke bahagian belakang. Bahagian belakang menghuraikan fail pdf mengikut parameter yang diluluskan dan mengembalikan halaman yang diperlukan sebagai gambar.

  • Pelayan perlu memasang perisian pemprosesan imej (ImageMagick) untuk menjana imej
  • php perlu memasang sambungan yang sepadan dengan ImageMagick
  • Pelayan perlu memasang ghostscript untuk membuka dan menghuraikan fail pdf

Kesan akhir

Selepas menentukan nombor halaman yang sepadan melalui parameter p, gambar nombor halaman yang sepadan akan dipaparkan di sebelah kiri.

Langkah pelaksanaan

  • Muat turun, susun dan pasang ImageMagick
wget https://netix.dl.sourceforge.net/project/imagemagick/im7-src/ImageMagick-7.0.7-25.tar.gz
tar -zxvf ImageMagick-7.0.7-25.tar.gz
cd ImageMagick-7.0.7-25
./configure
make && make install

Operasi yang sepadan bagi lima arahan ialah: Muat turun, ekstrak, buka direktori , konfigurasikan, susun dan pasang

  • Pasang extension imagemagick untuk php (saya memasangnya dengan satu klik di pagoda)

Anda juga boleh menyusun dan memasangnya, ini ialah Abaikan buat masa ini.

  • Pasang ghostscript
wget https://github.com/ArtifexSoftware/ghostpdl-downloads/releases/download/gs925/ghostscript-9.25.tar.gz
tar zxvf ghostscript-9.25.tar.gz
cd ghostscript-9.25
./configure --prefix=/usr
make && make install

Operasi yang sepadan bagi lima arahan itu ialah: muat turun, nyahmampat, buka direktori, konfigurasi, susun dan pasang

  • Arahan konfigurasi ke Dalam Linux
echo "/usr/local/lib" >> /etc/ld.so.conf 
ldconfig
  • kod penghuraian fail php
<?php
try{
    $url = !empty($_GET[&#39;url&#39;]) ? $_GET[&#39;url&#39;] : die(&#39;error&#39;);
    $page = isset($_GET[&#39;p&#39;]) ? $_GET[&#39;p&#39;]-1 : &#39;0&#39;;
    $file_name = &#39;temp_&#39; . mt_rand(1000,9999) . &#39;pdf&#39;;
    file_put_contents( &#39;./&#39;.$file_name,file_get_contents($url));
    $imagePreview = new imagick(&#39;./&#39;. $file_name . &#39;[&#39;.$page.&#39;]&#39;);
    $imagePreview->setImageFormat( "jpg" );
    // $imagePreview->setResolution( 900, 900 );
    header( "Content-Type: image/jpeg" );
    echo $imagePreview;
    unlink(&#39;./&#39;. $file_name);
}catch(\Exception $e){
    echo &#39;发生错误&#39;;
}

Nota: Laluan fail pdf boleh jadi itu pelayan anda sendiri, atau anda boleh melaraskannya sendiri.

(Tutorial disyorkan: Tutorial video PHP)

Atas ialah kandungan terperinci Bagaimana untuk melaksanakan fungsi pratonton fail pdf applet WeChat berdasarkan PHP. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Artikel ini dikembalikan pada:jb51.net. Jika ada pelanggaran, sila hubungi admin@php.cn Padam