Apakah yang diuji dan yang tidak diuji?
Ujian menggunakan kod pemampatan yang sama, tanpa sebarang perubahan, seperti yang digunakan oleh Pemampat PDF di laman web ini. Namun, untuk pengukuran ini, kod tersebut tidak dijalankan dalam pelayar, sebaliknya dipanggil terus dalam Node.js. Dengan cara ini, input, tetapan dan hasil yang disimpan bagi setiap larian dapat direkodkan dengan tepat.
- Modul pemampatan: QPDF 12.2.0 sebagai WebAssembly, versi pembalut 0.3.0. Skrip binaan pembalut menetapkan QPDF 12.2.0, dan modul yang dipasang turut melaporkan 12.2.0 apabila disemak.
- Persekitaran: Node.js 24.18.1 pada Windows 11, Build 26200, x64.
- Skop: tiga fail input sintetik, sembilan larian pemampatan dan satu fail ujian dengan ruang letak tandatangan yang sepatutnya ditolak.
- Pemeriksaan susulan: dua belas PDF yang disimpan dengan jumlah keseluruhan 24 halaman, setiap satunya diperiksa dari segi struktur dan paparan halaman yang dirender.
Perkara yang tidak termasuk dalam pengukuran ini:
- masa pemprosesan; tiada pengukuran masa dibuat,
- tingkah laku dalam pelayar tertentu atau pada telefon pintar dan tablet sebenar,
- foto sebenar, imbasan, fail besar atau dokumen pengguna,
- program pemampatan atau perkhidmatan dalam talian lain,
- purata penjimatan yang boleh kamu jangkakan untuk fail kamu.
Fail ujian, tetapan dan muat turun
Ujian ini hanya menggunakan PDF yang dihasilkan sendiri. Tiada dokumen pelanggan, foto dunia sebenar atau tandatangan orang sebenar digunakan. Imej dalam fail imej juga dijana: imej itu memaparkan tekstur dengan gradien warna dan bukan foto atau imbasan.
- Fail teks, 3,029 bait: dua halaman dengan teks, medan borang yang telah diisi, pautan, putaran halaman dan penandaan dalam pepohon struktur.
- Fail imej, 1,359,079 bait: komponen yang sama, ditambah imej yang dijana berukuran 640 × 800 piksel. Fail teks tanpa imej hanya bersaiz 3,029 bait, jadi sebahagian besar saiz fail ini datang daripada imej tersebut.
- Fail teks yang sudah dioptimumkan, 2,721 bait: fail ini digunakan sebagai kes yang tidak lagi dapat dikecilkan.
- Fail dengan ruang letak tandatangan, 3,139 bait: fail ini hanya mengandungi struktur tandatangan, tanpa tandatangan digital sebenar. Fail ini digunakan untuk memeriksa sama ada pemampat menolak fail yang ditandatangani.
Keadaan permulaan yang sama bagi setiap larian
- Setiap larian bermula dengan bait asal yang tidak diubah. Jika sesuatu larian memerlukan beberapa percubaan, setiap percubaan seterusnya juga bermula semula daripada fail asal, bukan daripada hasil sebelumnya.
- Semua hasil mengandungi kedua-dua halaman yang lengkap. Tiada halaman dibuang, tiada apa-apa dibungkus sebagai ZIP, tiada imej dikurangkan bilangan pikselnya dan tiada halaman penuh ditukar menjadi imej. Hanya dengan cara ini bilangan bait bagi mod yang berbeza boleh dibandingkan.
- Setiap hasil disimpan dengan nama fail tersendiri. Bilangan bait dan jumlah semak SHA-256 direkodkan bagi input dan output. Jumlah semak ialah cap jari fail: walaupun hanya satu bait berubah, jumlah semak turut berubah.
- Mod, saiz sasaran jika berkenaan dan kualiti JPEG yang benar-benar digunakan direkodkan bagi setiap larian.
Cara ketiga-tiga mod berfungsi dari segi teknikal
Dalam log dan jadual, mod dinamakan lossless, balanced dan small. Dalam alat, kamu akan menemuinya dengan nama berikut: lossless ialah Pengoptimuman tanpa kehilangan data, balanced ialah Seimbang dan small ialah Fail yang lebih kecil. Pengoptimuman tanpa kehilangan data hanya mengoptimumkan struktur fail, iaitu objek dan aliran data termampat. Seimbang turut mengekod semula imej yang sesuai sebagai JPEG pada tahap kualiti 80. Jika saiz sasaran tidak dicapai, percubaan pada tahap 70 menyusul. Fail yang lebih kecil bermula pada tahap 65 dan, jika sasaran tidak dicapai, beralih ke 50 dan kemudian ke 40. Jika kamu menetapkan saiz sasaran dan fail asal atau versi yang dioptimumkan strukturnya sudah memenuhi sasaran ini, percubaan JPEG dengan kehilangan data tidak diperlukan. Pada akhirnya, versi terkecil yang diperiksa akan digunakan. Jika tiada versi yang lebih kecil daripada fail asal, fail asal dikekalkan. Ini tidak menjamin jumlah penjimatan tertentu.
Menurut dokumentasi QPDF 12.2, QPDF tidak mengurangkan resolusi imej dalam proses ini. Namun, pengekodan semula JPEG boleh menghasilkan artifak yang kelihatan, dan QPDF hanya menggunakan data imej yang dikod semula jika saiznya lebih kecil. Panduan Mampatkan PDF tanpa kehilangan kualiti menerangkan kesannya terhadap kualiti imej.
Fail dan jumlah semak untuk pengesahan
Jadual berikut menyediakan pautan kepada semua fail ujian dan hasil. Selepas memuat turun, bandingkan jumlah semak SHA-256 menggunakan alat jumlah semak pilihan kamu. Jika sepadan, kamu mempunyai fail yang sama tepat seperti yang diukur. Log dalam bahasa Inggeris reproducibility-manifest.json mengandungi panggilan dan tetapan tepat bagi semua larian.
Hasil: saiz fail dipaparkan secara jujur
Rajah pengukuran 13 Oktober 2026
Rajah memaparkan kesemua sembilan pengukuran kami menggunakan QPDF 12.2.0 (WASM) dalam Node.js pada Windows 11. Tapis mengikut fail ujian atau kaedah, kemudian pilih bilangan bait tepat atau peratus saiz yang tinggal.
9 daripada 9 pengukuran dipaparkan
Teks · Tanpa kehilangan kualiti
dikecilkan
- Asal
- 3,029 Bait · 100 %
- Hasil
- 2,721 Bait · 89.83 %
- Had yang ditentukan
- Tiada had ditentukan
Imej · Tanpa kehilangan kualiti
dikecilkan
- Asal
- 1,359,079 Bait · 100 %
- Hasil
- 1,358,764 Bait · 99.98 %
- Had yang ditentukan
- Tiada had ditentukan
Imej · Seimbang
dikecilkan
- Asal
- 1,359,079 Bait · 100 %
- Hasil
- 179,708 Bait · 13.22 %
- Had yang ditentukan
- Tiada had ditentukan
Imej · Seimbang, ulangan
saiz sama, jumlah semak berbeza
- Asal
- 1,359,079 Bait · 100 %
- Hasil
- 179,708 Bait · 13.22 %
- Had yang ditentukan
- Tiada had ditentukan
Imej · Kuat
dikecilkan
- Asal
- 1,359,079 Bait · 100 %
- Hasil
- 125,710 Bait · 9.25 %
- Had yang ditentukan
- Tiada had ditentukan
Imej · Kuat
Sasaran dicapai
- Asal
- 1,359,079 Bait · 100 %
- Hasil
- 125,710 Bait · 9.25 %
- Had yang ditentukan
- 250,000 Bait
Imej · Kuat
Sasaran tidak dicapai, PDF lengkap diberikan
- Asal
- 1,359,079 Bait · 100 %
- Hasil
- 74,707 Bait · 5.5 %
- Had yang ditentukan
- 128 Bait
Imej · Kuat
Sasaran sudah dipenuhi sebelumnya
- Asal
- 1,359,079 Bait · 100 %
- Hasil
- 1,358,764 Bait · 99.98 %
- Had yang ditentukan
- 1,359,079 Bait
Teks yang sudah dioptimumkan · Tanpa kehilangan kualiti
Fail asal dikekalkan tanpa perubahan
- Asal
- 2,721 Bait · 100 %
- Hasil
- 2,721 Bait · 100 %
- Had yang ditentukan
- Tiada had ditentukan
Tidak berubah — fail asal dikekalkan
Pengukuran bersejarah ini tidak membuktikan perilaku pelayar, telefon, versi semasa atau alat lain. Peratus menunjukkan saiz tinggal, bukan penjimatan. Had yang dimasukkan ialah sasaran angka, bukan jaminan. Jadual di bawah sentiasa memaparkan kesemua sembilan pengukuran tanpa mengira penapis.
Ujian ini tidak dapat meramalkan sejauh mana PDF kamu sendiri akan mengecil. Hal itu bergantung pada kandungan fail kamu. Tiga fail ujian ini sahaja sudah menunjukkan julat hasilnya: fail teks kecil menjadi 10.17 peratus lebih kecil dalam mod lossless, manakala fail imej hanya 0.02 peratus lebih kecil dalam mod yang sama. Hanya pengekodan semula JPEG memberikan penjimatan sebanyak 86.78 peratus bagi fail imej. Jadual ini mengandungi kesemua sembilan larian, termasuk larian tanpa penjimatan yang ketara.
Penjimatan sentiasa dikira daripada bilangan bait sebenar: bait yang dijimatkan dibahagikan dengan saiz asal. Bagi larian balanced, nilainya ialah 1,179,371 daripada 1,359,079 bait, iaitu 86.78 peratus. Untuk fail kamu sendiri, kamu boleh menyemak pengiraan ini menggunakan Kalkulator kadar pemampatan.
Kualiti JPEG bukan peratus penjimatan
Nilai 80, 65 atau 40 ialah tetapan pengekod JPEG, bukan peratus pengecilan. Dalam ujian ini, tahap kualiti 80 menjimatkan 86.78 peratus, manakala tahap 65 menjimatkan 90.75 peratus. Bagi fail lain, tahap yang sama boleh memberikan hasil yang sangat berbeza.
Mengapa kes tanpa penjimatan turut disertakan
Ujian yang hanya menunjukkan penjimatan terbaik menyembunyikan satu kes penting: apakah yang berlaku apabila fail tidak lagi dapat dikecilkan? Bagi fail teks yang sudah dioptimumkan dengan saiz 2,721 bait, mod lossless tidak menghasilkan versi yang lebih kecil. Oleh itu, pemampat mengekalkan fail asal: output 2,721 bait, penjimatan 0 bait, dan input serta output mempunyai jumlah semak SHA-256 yang sama. Dengan modul pemampatan sebenar, ini membuktikan bahawa dalam kes ini, kamu tidak menerima fail yang ditulis semula tanpa manfaat. Panduan PDF tidak menjadi lebih kecil menerangkan perkara yang boleh kamu lakukan seterusnya.
Saiz sasaran dicapai, tidak dicapai atau sudah dipenuhi
- Sasaran 250,000 bait: percubaan pertama pada tahap 65 sudah menghasilkan 125,710 bait. Dengan itu, sasaran dicapai, malah hasilnya sama hingga ke setiap bait dengan larian tanpa sasaran.
- Sasaran 128 bait: saiz ini terlalu kecil dan tidak realistik untuk dua halaman dengan imej. Malah tahap terakhir 40 hanya berjaya mencapai 74,707 bait. Pemampat melaporkan bahawa sasaran tidak dicapai dan tetap memberikan fail. Bagi fail ujian ini, fail hasil yang disimpan dengan saiz 74,707 bait mengandungi kedua-dua halaman dan lulus pemeriksaan fungsi yang diterangkan di bawah. Data imej dikod semula dengan kehilangan data dalam proses ini. Larian ini tidak membuktikan bahawa semua kandungan akan dikekalkan bagi setiap fail lain.
- Sasaran 1,359,079 bait, iaitu tepat sama dengan saiz asal: sasaran dianggap sudah dipenuhi. Hanya pengoptimuman struktur tanpa kehilangan data dijalankan. Hasilnya ialah 1,358,764 bait, sama saiz dengan larian lossless. Imej tidak dikod semula sebagai JPEG, kerana panggilan yang direkodkan tidak mengandungi tetapan JPEG.
Saiz sama, jumlah semak berbeza
Ulangan larian balanced sekali lagi menghasilkan tepat 179,708 bait, tetapi dengan jumlah semak SHA-256 yang berbeza. Larian dengan sasaran yang sudah dipenuhi juga mempunyai saiz yang sama seperti larian lossless, namun mempunyai jumlah semaknya sendiri. Salah satu sebab yang mungkin ialah pengecam dokumen baharu boleh dihasilkan, contohnya ketika PDF ditulis. Sebaliknya, larian small tanpa sasaran dan dengan sasaran 250,000 bait sepadan hingga ke setiap bait. Oleh itu, jumlah semak mengenal pasti satu fail tertentu yang disimpan. Jika kamu mengulangi sesuatu larian, termasuk dalam pelayar, kamu tidak semestinya mendapat fail yang sama hingga ke setiap bait, walaupun saiznya kekal sama.
Paparan dan fungsi diperiksa secara berasingan
Fail yang lebih kecil belum membuktikan bahawa teks, borang dan pautan masih dikekalkan. Pratonton yang baik juga tidak membuktikannya. Oleh itu, fail yang disimpan diperiksa menggunakan dua pustaka yang saling bebas: pdf-lib membaca struktur dalaman yang disimpan, manakala PDF.js 6.4.299 merender halaman serta membaca teks dan anotasi. Untuk tujuan ini, PDF.js dijalankan dalam persekitaran Chromium versi 151.0.7922.34 yang terasing. Pemeriksaan fail siap ini berasingan daripada pemampatan yang diukur dalam Node.js pada Windows 11. Pemampatan dalam pelayar atau pada peranti mudah alih tidak diukur, dan pemeriksaan ini tidak memberikan maklumat tentang tingkah laku program PDF lain. Setiap pemeriksaan mempunyai kaedah tersendiri dan hanya terpakai pada fail ujian ini.
Satu butiran tentang medan borang: nilainya tidak muncul secara konsisten dalam pengekstrakan teks biasa PDF.js, sebaliknya dibaca melalui anotasi. Oleh itu, jika kamu mencari nilai borang yang telah diisi dalam PDF termampat dan tidak menemuinya, itu tidak semestinya bermaksud nilai tersebut tiada.
Dalam balanced dan small, imej dikod semula sebagai JPEG dengan kehilangan data, kecuali dalam larian small dengan sasaran yang sudah dipenuhi sebelumnya. Arahan kandungan yang dinyahkod untuk teks dan garisan kekal sama, tetapi data imej tekstur berubah. Pada halaman hasil yang dirender daripada fail imej, kedudukan dan dimensi imej serta putaran halaman kekal seperti dalam fail asal. Perkara penting apabila kamu melihat sendiri fail tersebut: dalam fail asal pun, imej yang dijana sudah menutupi beberapa baris teks. Pertindihan ini memang sebahagian daripada fail ujian dan bukan kerosakan akibat pemampatan. Pertindihan itu kekal dalam hasil. Ini tidak memberikan kesimpulan tentang kebolehbacaan setiap baris atau gred kualiti. Imej yang dijana dengan tekstur dan gradien warna juga tidak banyak menjelaskan cara foto, imbasan atau tulisan kecil dalam imbasan akan terkesan pada tahap yang sama. Panduan Kecilkan PDF imbasan berkaitan dengan perkara ini.
Ruang letak tandatangan hanya menunjukkan bahawa pemampat mengenali fail dengan struktur tandatangan dan tidak memprosesnya. Menurut kod pemampatan, fail yang disulitkan dan diperakui juga ditolak. Ujian ini tidak memeriksa sama ada tandatangan sebenar sah, dan tidak memintas sebarang perlindungan. Maklumat lanjut terdapat dalam panduan Mampatkan PDF dengan tandatangan dan borang.
Batasan dan pemeriksaan sendiri
Adakah alat ini lebih baik daripada PDF24 atau Adobe?
Halaman ini tidak memberikan jawapan kepada soalan tersebut. Kami tidak menjalankan program atau perkhidmatan dalam talian lain menggunakan fail yang sama. Oleh itu, penilaian perbandingan tentang kualiti, kelajuan atau harga tidak akan mempunyai bukti sokongan. Senarai kedudukan dengan peratusan atau peluncur juga tidak dapat menggantikan perbandingan sedemikian. Perbandingan yang adil memerlukan fail input lengkap yang sama, halaman yang sama, tetapan yang direkodkan, bilangan bait tepat dan pemeriksaan fungsi yang sama bagi semua hasil.
Cara memeriksa PDF kamu sendiri
- Simpan satu salinan fail asal kamu tanpa sebarang perubahan.
- Buka Pemampat PDF dan pilih fail. Jika butiran imej penting, mulakan dengan mod tanpa kehilangan data.
- Catat saiz tepat dalam bait bagi fail asal dan hasil, contohnya daripada sifat fail, dan kira penjimatan menggunakan Kalkulator kadar pemampatan.
- Mulakan setiap percubaan seterusnya semula dengan fail asal, bukan dengan hasil yang telah dimampatkan. Simpan setiap hasil dengan nama fail baharu supaya tiada fail ditulis ganti.
- Buka fail yang disimpan dalam program yang turut digunakan oleh penerima. Semak semua halaman, cari perkataan yang kamu kenali, semak nilai borang dan pautan, serta lihat imej dan tulisan kecil pada saiz asal.
- Jika PDF kamu ditandatangani secara digital, disulitkan atau diperakui, jangan mampatkannya dengan alat ini. Sebaliknya, dapatkan penjelasan tentang prosedur yang perlu diikuti daripada pihak yang mengeluarkannya.