Mampatkan PDF pada Linux: gunakan QPDF dan Ghostscript mengikut keperluan

Pada Linux, anda boleh mengoptimumkan struktur PDF dalam terminal menggunakan arahan QPDF yang didokumenkan atau membinanya semula dengan Ghostscript pdfwrite. Sama ada fail baharu lebih kecil dan masih menyediakan semua fungsi yang anda perlukan hanya dapat dipastikan dengan menyemak output yang disimpan.

Pengoptimuman struktur atau pembinaan semula: alat manakah yang sesuai?

Kedua-dua program menggunakan pendekatan yang berbeza secara asas. Arahan QPDF pada halaman ini mengekalkan kandungan halaman anda dan hanya menyimpan semula objek fail dengan sepadat mungkin. Untuk itu, misalnya, arahan ini mengumpulkan objek dalam aliran objek dan memampatkan semula data Flate. Ia tidak mengurangkan resolusi imej atau mengekodnya semula sebagai JPEG. Pengoptimuman imej pilihan QPDF ialah langkah berasingan yang melibatkan kehilangan kualiti dan diterangkan secara ringkas dalam bahagian seterusnya. Setiap pilihan diterangkan dalam dokumentasi QPDF.

Ghostscript berfungsi dengan cara lain. Dengan peranti output pdfwrite, ia membaca PDF dan menghasilkan fail baharu daripada arahan lukisan setiap halaman. Teks dan grafik vektor biasanya kekal dalam bentuk tersebut, jadi halaman tidak sekadar ditukar menjadi imej. Namun, bergantung pada tetapan, Ghostscript boleh melakukan pensampelan semula pada imej. Selain itu, segala unsur yang bukan sebahagian daripada paparan halaman yang kelihatan boleh berubah. Perkara ini diterangkan dalam manual Ghostscript untuk pdfwrite.

Sesetengah program menawarkan kaedah ketiga: menghasilkan semula setiap halaman sebagai imej. Dengan cara ini, teks asli, carian dan unsur interaktif biasanya hilang. Kedua-dua arahan pada halaman ini tidak menggunakan kaedah tersebut.

Tiga cara mengecilkan PDF dan perubahan yang dibuat pada dokumen
KaedahPerkara yang berlakuImejTeks dan fungsi
QPDF, pengoptimuman strukturObjek dan data Flate disimpan dengan lebih padatResolusi tidak dikurangkan. Pengekodan semula JPEG pilihan boleh menyebabkan kehilangan butiran.Kandungan halaman tidak dibina semula, tetapi hasil tetap perlu disemak
Ghostscript pdfwrite, pembinaan semulaHalaman dihasilkan semula daripada arahan lukisannyaResolusi boleh dikurangkan mengikut pratetapTeks dan vektor biasanya dikekalkan. Pautan, borang dan metadata boleh berubah.
Menghasilkan halaman sebagai imejSetiap halaman menjadi imejBergantung pada resolusi yang dipilihTeks asli, carian dan unsur interaktif biasanya hilang

Tiada satu pun kaedah ini menjamin fail yang lebih kecil. Sebagai panduan umum: jika PDF anda kebanyakannya terdiri daripada teks dan grafik vektor, mulakan dengan QPDF. Ini juga terpakai jika anda mahu meminimumkan perubahan pada imej, pautan atau borang. Ghostscript boleh dipertimbangkan jika foto atau imbasan besar menjadi punca utama saiz fail dan anda sanggup mengorbankan sedikit kualiti imej. Maksud sebenar kaedah tanpa kehilangan kualiti dan kaedah dengan kehilangan kualiti diterangkan dalam panduan Mampatkan PDF tanpa kehilangan kualiti.

Program dengan antara muka grafik menggunakan pendekatan yang sama. Menurut keterangannya sendiri, PDFsam membezakan antara pengoptimuman struktur sahaja dalam edisi Basic dan pemampatan imej khusus dalam edisi Visual serta Enhanced. Panduan lama untuk skrip pengurus fail atau antara muka yang menjalankan Ghostscript di latar belakang kadangkala merujuk kepada versi Ubuntu terdahulu. Oleh itu, jangan ikuti langkah pemasangannya tanpa menyemak terlebih dahulu. Menurut pengeluarnya, PDF24 Creator hanya tersedia untuk Windows; versi Linux tidak ditawarkan.

Jika anda tidak mahu memasang apa-apa, anda boleh menggunakan pemampat PDF dalam pelayar. Ia memproses fail pada peranti anda tanpa memuat naiknya. Namun, kami tidak mengujinya secara khusus dalam pelayar Linux. Perbezaan antara pemprosesan setempat dalam pelayar dengan kerja luar talian sebenar diterangkan dalam panduan Mampatkan PDF tanpa muat naik.

Semak versi dan tulis ke fail output berasingan

Gambaran keseluruhan arahan

Pilih salah satu daripada enam arahan dalam panduan ini. Anda akan melihat arahan dalam bentuk asalnya dan mengetahui maksud setiap bahagiannya.

Arahan ini diambil daripada manual rasmi QPDF dan Ghostscript. Kami tidak menjalankannya sendiri pada Ubuntu atau mana-mana pengedaran lain. Versi yang dipasang pada sistem anda mungkin berbeza daripada versi yang dirujuk dalam dokumentasi dalam talian.

Halaman ini tidak menjalankan arahan dan tidak memaparkan output terminal. Anda hanya akan melihat respons sistem anda apabila anda menjalankan sendiri sesuatu arahan.

Paparkan versi QPDF

Memaparkan versi QPDF yang dipasang. Semak versi tersebut sebelum menggunakan arahan lain.

Memaparkan versi QPDF yang dipasang.
qpdf --version

Anda juga boleh memilih teks arahan terus dalam medan kod dan menyalinnya.

Bahagian arahan
qpdfProgram
Memanggil program baris perintah QPDF.
--versionPaparkan versi
Memaparkan versi QPDF yang digunakan pada sistem anda.

Jika shell melaporkan bahawa arahan tidak ditemui, QPDF mungkin belum dipasang. Nama pakej dan cara pemasangan bergantung pada pengedaran anda.

Bahagian dalam panduan

Paparkan versi Ghostscript dan peranti output

Memaparkan versi Ghostscript dan peranti output yang tersedia.

Memaparkan versi Ghostscript dan peranti output yang tersedia.
gs -h

Anda juga boleh memilih teks arahan terus dalam medan kod dan menyalinnya.

Bahagian arahan
gsProgram
Memanggil Ghostscript. Pada Unix, program ini bernama gs.
-hBantuan
Memaparkan versi, pilihan, format, peranti output yang tersedia dan laluan carian.

Jika shell melaporkan bahawa arahan tidak ditemui, Ghostscript mungkin belum dipasang. Catat pengedaran dan versinya supaya anda boleh menelusuri hasilnya kemudian.

Bahagian dalam panduan

Simpan struktur dengan lebih padat

Menyimpan semula objek dalam fail sepadat yang mungkin. Resolusi imej tidak dikurangkan dan imej tidak dikodkan semula sebagai JPEG.

Arahan QPDF daripada dokumentasi: menyimpan struktur dengan lebih padat tanpa mengurangkan resolusi imej atau mengekodnya semula sebagai JPEG.
qpdf "original.pdf" --object-streams=generate --compress-streams=y --decode-level=generalized --recompress-flate --compression-level=9 "optimiert-qpdf.pdf"

Anda juga boleh memilih teks arahan terus dalam medan kod dan menyalinnya.

Bahagian arahan
qpdfProgram
Memanggil program baris perintah QPDF.
"original.pdf"Fail input
PDF yang dibaca. Hasilnya disimpan dalam fail berasingan.
--object-streams=generateJana aliran objek
Menggabungkan objek yang sesuai ke dalam aliran objek dan memampatkannya. Output yang terhasil menggunakan sekurang-kurangnya versi PDF 1.5.
--compress-streams=yMampatkan aliran
Memampatkan aliran dengan Flate, selagi aliran itu belum dimampatkan menggunakan kaedah lain.
--decode-level=generalizedNyahmampat data dengan penapis umum
Menyahmampat data menggunakan penapis umum yang disokong seperti LZW, Flate, ASCII85 dan ASCIIHex. Data JPEG (DCT) tidak dinyahmampat dalam proses ini.
--recompress-flateMampatkan semula Flate
Menyahmampat aliran Flate sedia ada dan memampatkannya semula. Ini boleh menyebabkan proses penulisan mengambil masa lebih lama.
--compression-level=9Tahap pemampatan
Memilih tahap zlib tertinggi untuk Flate dalam julat terdokumen dari 1 hingga 9. Tahap yang lebih tinggi memerlukan lebih banyak masa. Nilai ini tidak berkaitan dengan kualiti JPEG.
"optimiert-qpdf.pdf"Fail output
Nama fail baharu. Fail ini menjadi input dalam kedua-dua arahan semakan.

Sama ada fail baharu lebih kecil hanya dapat diketahui dengan membandingkan bilangan bait. Nama output yang berasingan tidak menghalang fail sedia ada dengan nama yang sama daripada ditulis ganti. Oleh itu, pilih nama yang belum digunakan. Arahan ini tidak menjamin bahawa tandatangan digital akan kekal sah.

Bahagian dalam panduan

Bina semula PDF dengan pdfwrite

Ghostscript membaca PDF dan menghasilkan fail baharu daripada arahan lukisan bagi setiap halaman, di sini menggunakan pratetapan /ebook.

Contoh Ghostscript dengan pratetap /ebook. Butiran imej dan fungsi dokumen boleh berubah.
gs -dSAFER -dBATCH -dNOPAUSE -sDEVICE=pdfwrite -dPDFSETTINGS=/ebook -sOutputFile="optimiert-gs.pdf" "original.pdf"

Anda juga boleh memilih teks arahan terus dalam medan kod dan menyalinnya.

Bahagian arahan
gsProgram
Memanggil Ghostscript.
-dSAFERKawalan akses
Mengehadkan akses kepada fail dan peranti. Sejak versi 9.50, ini ialah tetapan lalai. Ini bukan jaminan keselamatan umum.
-dBATCHTamatkan selepas itu
Menamatkan Ghostscript sebaik sahaja fail yang ditentukan selesai diproses, tanpa beralih ke mod interaktif.
-dNOPAUSETanpa jeda
Menghalang gesaan dan jeda pada penghujung setiap halaman.
-sDEVICE=pdfwritePeranti output
Memilih pdfwrite, yang menghasilkan PDF baharu. Teks dan grafik vektor biasanya dikekalkan. Apa-apa yang bukan sebahagian daripada paparan halaman yang kelihatan boleh berubah.
-dPDFSETTINGS=/ebookPratetapan
Menetapkan sekumpulan parameter individu dengan resolusi imej sederhana. Namanya menerangkan tujuan penggunaan, bukannya tahap kualiti atau penjimatan yang terjamin.
-sOutputFile="optimiert-gs.pdf"Fail output
Menetapkan nama fail baharu.
"original.pdf"Fail input
PDF yang dibaca oleh Ghostscript.

Butiran imej dan fungsi dokumen boleh berubah walaupun halaman kelihatan sama. Saiz atau kualiti tertentu tidak dijamin. Semak output yang disimpan dan pilih nama output yang belum digunakan.

Bahagian dalam panduan

Semak struktur output

Menyemak sintaks output yang disimpan. Untuk hasil Ghostscript, gantikan nama fail.

Menyemak sintaks output yang disimpan. Untuk hasil Ghostscript, gantikan nama fail.
qpdf "optimiert-qpdf.pdf" --check

Anda juga boleh memilih teks arahan terus dalam medan kod dan menyalinnya.

Bahagian arahan
qpdfProgram
Memanggil program baris perintah QPDF.
"optimiert-qpdf.pdf"Fail untuk disemak
Output arahan QPDF yang telah disimpan sebelum ini.
--checkSemak struktur
Menyemak struktur, penyulitan, pelinearan dan pengekodan aliran.

Nilai pulangan 0 menandakan semakan tanpa ralat, 2 menandakan ralat, 3 menandakan amaran. Semakan ini hanya melibatkan struktur fail. Semakan ini tidak menunjukkan sama ada paparannya betul, sama ada borang dan pautan berfungsi atau sama ada fail itu selamat.

Bahagian dalam panduan

Paparkan bilangan halaman

Memaparkan bilangan halaman dalam output yang disimpan. Jalankan semula arahan dengan nama fail asal dan bandingkan kedua-dua bilangannya.

Memaparkan bilangan halaman output yang disimpan. Jalankan semula arahan dengan nama fail asal dan bandingkan.
qpdf "optimiert-qpdf.pdf" --show-npages

Anda juga boleh memilih teks arahan terus dalam medan kod dan menyalinnya.

Bahagian arahan
qpdfProgram
Memanggil program baris perintah QPDF.
"optimiert-qpdf.pdf"Fail untuk dikira halamannya
Output arahan QPDF yang telah disimpan sebelum ini.
--show-npagesKira halaman
Memaparkan bilangan halaman dalam fail yang ditentukan.

Bilangan halaman yang sama tidak bermakna kandungan, imej dan fungsi tidak berubah. Periksa sendiri halaman tersebut.

Bahagian dalam panduan

Butang ini hanya menulis arahan yang dipaparkan ke papan klip selepas anda mengkliknya. Butang ini tidak membaca papan klip, tidak menyimpan apa-apa dan tidak menghantar apa-apa.

Arahan pada halaman ini diambil daripada manual rasmi QPDF dan Ghostscript. Kami tidak menjalankannya sendiri pada Ubuntu atau pengedaran lain, jadi ini bukan panduan Ubuntu yang telah diuji. Semak dahulu versi yang dipasang pada sistem anda. Pakej pengedaran anda mungkin berbeza daripada versi dalam dokumentasi dalam talian semasa.

Paparkan versi yang dipasang

Memaparkan versi QPDF yang dipasang.
qpdf --version
Memaparkan versi Ghostscript dan peranti output yang tersedia.
gs -h

Jika shell melaporkan bahawa arahan tidak ditemukan, program itu mungkin belum dipasang. Nama pakej dan cara memasangnya bergantung pada pengedaran anda. Catat pengedaran dan versi supaya anda boleh menelusuri semula sesuatu hasil kemudian.

Peraturan asas untuk setiap percubaan

  • Biarkan fail asal tanpa perubahan. Fail input dan output mesti sentiasa mempunyai nama yang berbeza.
  • Berikan setiap output nama baharu yang belum digunakan supaya anda tidak menulis ganti fail terdahulu.
  • Mulakan setiap percubaan seterusnya daripada fail asal, bukan hasil percubaan sebelumnya.
  • Jangan gunakan pilihan atau skrip yang menggantikan fail input secara langsung.

QPDF: optimumkan struktur penyimpanan

Arahan QPDF daripada dokumentasi: menyimpan struktur dengan lebih padat tanpa mengurangkan resolusi imej atau mengekodnya semula sebagai JPEG.
qpdf "original.pdf" --object-streams=generate --compress-streams=y --decode-level=generalized --recompress-flate --compression-level=9 "optimiert-qpdf.pdf"

Arahan ini membaca original.pdf dan menulis fail baharu bernama optimiert-qpdf.pdf. Pilihannya memastikan objek dikumpulkan dalam aliran objek, aliran data dimampatkan dan data Flate dimampatkan semula pada tahap tertinggi. Pensampelan semula imej tidak termasuk dalam proses ini. Aliran objek memerlukan PDF 1.5. Jika penerima secara jelas memerlukan versi PDF yang lebih lama, arahan ini tidak boleh digunakan begitu sahaja.

QPDF juga boleh mengoptimumkan imej dan mengekod semula data JPEG dengan kualiti yang boleh dipilih. Pilihan kualiti JPEG tersedia mulai versi 12.1. Kedua-duanya melibatkan kehilangan kualiti dan boleh menjejaskan lagi kualiti imej JPEG yang telah dimampatkan. Gunakannya hanya jika anda akan menyemak imej secara khusus selepas itu.

Ghostscript: tulis semula PDF menggunakan pratetap

Contoh Ghostscript dengan pratetap /ebook. Butiran imej dan fungsi dokumen boleh berubah.
gs -dSAFER -dBATCH -dNOPAUSE -sDEVICE=pdfwrite -dPDFSETTINGS=/ebook -sOutputFile="optimiert-gs.pdf" "original.pdf"

-sDEVICE=pdfwrite memilih output PDF, -sOutputFile menetapkan nama fail baharu, dan fail input diletakkan pada penghujung. -dBATCH dan -dNOPAUSE menghalang Ghostscript daripada menunggu input. -dSAFER turut digunakan seperti ini dalam contoh panduan baris perintah Ghostscript. Pratetap /ebook hanyalah titik permulaan, bukan cadangan untuk setiap fail.

Fahami pratetap Ghostscript dengan betul

Dengan -dPDFSETTINGS, anda memilih sekumpulan parameter individu serentak. Nama pratetap menerangkan tujuan penggunaannya. Ia tidak mewakili tahap kualiti atau jumlah penjimatan tertentu.

Pratetap untuk -dPDFSETTINGS menurut manual Ghostscript semasa (versi 10.09.0). Versi yang dipasang pada sistem anda mungkin berbeza.
PratetapTujuan yang dimaksudkanPengurangan resolusi imej berwarna dan skala kelabu
/screenPaparan skrin, resolusi rendahAktif. Nilai sasaran 72 dpi, hanya untuk imej dengan resolusi melebihi 1.5 kali nilai tersebut.
/ebookResolusi sederhanaAktif. Nilai sasaran 150 dpi, hanya untuk imej dengan resolusi melebihi 1.5 kali nilai tersebut.
/printerPencetakanTidak diaktifkan secara lalai
/prepressPracetakTidak diaktifkan secara lalai. Bukan secara automatik pilihan yang paling setia kepada fail asal.
/defaultKegunaan umumTidak diaktifkan secara lalai

Jadi, adakah /prepress memberikan kualiti terbaik? Tidak. Manual menyatakan dengan jelas bahawa /prepress bukan tetapan yang paling setia kepada fail asal. Tanpa -dPDFSETTINGS, hasil mungkin lebih hampir kepada fail asal. /prepress juga tidak menjamin fail yang paling kecil.

Nilai sasaran bagi /screen dan /ebook tidak bermakna setiap imej selepas itu mempunyai tepat 72 atau 150 dpi. Resolusi imej di bawah ambang tidak dikurangkan dan kekal seperti asal. Namun, ini tidak semestinya bermakna imej itu langsung tidak berubah kerana parameter pratetap lain, misalnya pengekodan imej atau warna, masih boleh mengubahnya. Pilihan -r bukan pengganti pengurangan resolusi. Ia hanya mengawal resolusi apabila Ghostscript perlu merender bahagian tertentu sebagai kaedah gantian dan tidak mengecilkan imej terbenam. Menurut manual, menetapkan parameter individu secara khusus selalunya lebih baik daripada bergantung pada pratetap.

Jangan gunakan satu pratetap untuk semua fail. Dokumen teks, katalog foto dan imbasan memberikan tindak balas yang berbeza. Untuk imbasan, sebaik-baiknya mulakan penambahbaikan semasa mengimbas. Caranya diterangkan dalam panduan Kecilkan PDF imbasan.

Semak teks, pautan, borang dan tandatangan

PDF yang kelihatan sama selepas pemampatan tidak membuktikan bahawa semua kandungan yang disimpan telah dikekalkan. Ghostscript membina semula fail. Menurut penerangan Ghostscript tentang pengoptimuman PDF, rupa yang sama boleh menyembunyikan perubahan pada arahan dan metadata. Selepas menggunakan QPDF juga, semak fungsi yang penting untuk anda:

  • Pilih dan salin teks serta cuba fungsi carian.
  • Klik pautan dan penanda buku.
  • Isi medan borang dan cuba menyimpannya jika fail itu ialah borang.
  • Semak maklumat seperti tajuk atau pengarang jika penerima menilainya.
  • Jika piawaian tertentu seperti PDF/A diperlukan, semaknya menggunakan alat yang direka untuk tujuan itu. Tiada arahan di sini menjamin status tersebut.

PDF yang ditandatangani secara digital

Tiada satu pun daripada kedua-dua arahan boleh menjamin bahawa tandatangan digital masih sah selepas fail ditulis semula. Oleh itu, pemampatan bukan cara untuk mengecilkan PDF yang ditandatangani. Kekalkan fail asal yang ditandatangani tanpa perubahan. Jika orang lain menandatangani dokumen itu dan anda memerlukan versi yang lebih kecil, dapatkan fail asal yang belum ditandatangani atau berbincang dengan penandatangan. Selaraskan penandatanganan semula dengan pihak yang mengeluarkan dokumen atau penerima. Maklumat latar belakang tersedia dalam penerangan Adobe tentang sekatan PDF yang ditandatangani. Tandatangan yang diimbas dan kelihatan pada halaman bukan tandatangan digital.

Membuang perlindungan kata laluan atau sekatan penyuntingan bukan sebahagian daripada pengecilan fail, dan tiada arahan untuk tujuan itu di sini. Sebaliknya, minta pengirim memberikan versi yang sesuai. Maklumat lanjut tentang pengendalian dokumen sedemikian terdapat dalam panduan Memahami tandatangan dan borang.

Bandingkan saiz hasil dan simpan fail asal

Arahan yang selesai tanpa mesej ralat belum memberikan maklumat tentang hasilnya. Bandingkan saiz tepat fail asal dan fail output dalam bait, bukan sekadar nilai MB yang dibundarkan. Kira peratus penjimatan anda menggunakan kalkulator kadar pemampatan.

Semak sintaks dan bilangan halaman

Menyemak sintaks output yang disimpan. Untuk hasil Ghostscript, gantikan nama fail.
qpdf "optimiert-qpdf.pdf" --check

QPDF melaporkan semakan tanpa ralat dengan kod pulangan 0, ralat dengan 2 dan amaran dengan 3. Semakan ini hanya meliputi struktur fail. Ia tidak menunjukkan sama ada borang, pautan dan imej masih berfungsi serta kelihatan seperti sebelumnya.

Memaparkan bilangan halaman output yang disimpan. Jalankan semula arahan dengan nama fail asal dan bandingkan.
qpdf "optimiert-qpdf.pdf" --show-npages

Semak dalam pemapar PDF

  1. Buka semula fail output yang disimpan daripada foldernya.
  2. Semak semua halaman dan bandingkan format halaman serta orientasinya dengan fail asal.
  3. Periksa imej, tulisan kecil dan garisan halus pada pembesaran tinggi.
  4. Uji carian, pautan dan borang seperti yang diterangkan dalam bahagian sebelumnya.
  5. Jika boleh, buka fail itu dalam pemapar kedua juga.

Lebih besar, tidak berubah atau kosong?

Ghostscript juga boleh menjadikan PDF lebih besar. Fail dibina semula dan dikodkan dengan cara berbeza, dan arahan baharu kadangkala memerlukan lebih banyak ruang daripada yang lama. QPDF juga mungkin tidak banyak membantu jika fail sudah disimpan dengan padat.

Hasil yang lebih besar atau hanya sedikit lebih kecil tetap boleh menjadi hasil yang sah. Sama ada ia sah hanya dapat dipastikan melalui semakan fail tersimpan yang sama seperti bagi output lain kerana saiz sahaja tidak menunjukkan ralat atau kehilangan fungsi. Akhirnya, simpan fail yang lebih sesuai; selalunya fail itu ialah fail asal. Keadaannya berbeza bagi output yang kosong, tidak boleh dibaca atau rosak. Itu ialah percubaan yang gagal, bukan pemampatan yang luar biasa kuat. Jangan hantar fail tersebut; baca mesej dalam terminal dan mulakan semula dengan fail asal serta nama output baharu.

Jika PDF masih terlalu besar untuk had penerima, langkah seterusnya tersedia dalam panduan PDF tidak menjadi lebih kecil. Dalam apa jua keadaan, simpan fail asal sehingga versi baharu telah sampai dan diterima.

Keutamaan privasi

Pilih sama ada untuk membenarkan analitis dan pengiklanan pilihan. Dalam pratonton yang belum diterbitkan ini, kedua-duanya kekal dinyahaktifkan walaupun anda membenarkannya. Alat dokumen berfungsi tanpa mengira pilihan anda. Anda boleh mengubah pilihan pada bila-bila masa melalui bahagian bawah halaman.

Tetapan perlu

Diperlukan

Pilihan dan tema warna anda disimpan dalam pelayar ini. Alat dokumen masih tersedia tanpa perkhidmatan pilihan.

Tidak aktif

Pengukuran penggunaan secara pilihan. Tidak aktif buat masa ini: membenarkannya akan menyimpan pilihan anda, tetapi tidak mengaktifkan sebarang perkhidmatan analitis dalam pratonton ini.

Tidak aktif

Pengiklanan secara pilihan. Tidak aktif buat masa ini: membenarkannya akan menyimpan pilihan anda, tetapi tidak mengaktifkan sebarang perkhidmatan pengiklanan dalam pratonton ini.

Analitis dan pengiklanan pilihan dinyahaktifkan.