Saya menggunakan Mac OS X Snow Leopard. Saya memiliki PDF dengan bidang formulir, anotasi, dan prangko. Saya ingin membekukan (atau "meratakan") PDF itu sehingga bidang formulir tidak dapat diubah dan anotasi / prangko tidak lagi dapat diedit. Karena saya sebenarnya memiliki banyak PDF ini, saya ingin melakukan ini secara otomatis pada baris perintah.
Beberapa hal yang saya coba / pertimbangkan, dengan tingkat keberhasilannya:
- Buka di Pratinjau dan Cetak ke File. Ini menciptakan PDF yang benar-benar rata tanpa mengubah ukuran file. Satu-satunya cara untuk mengotomatiskan tampaknya adalah dengan menulis AppleScript berbasis UI kludgy , yang saya coba hindari.
- Buka di Acrobat Pro dan gunakan fungsi JavaScript untuk meratakan . Sekali lagi, tidak yakin bagaimana mengotomatisasi ini di baris perintah.
- Gunakan
pdftk
denganflatten
opsi. Tapi ini hanya meratakan bidang formulir, bukan perangko dan anotasi lainnya. - Gunakan
cupsfilter
yang dapat membuat PDF dari banyak format file. Sepertipdftk
ini hanya rata bidang formulir. - Gunakan
cups-pdf
untuk menghubungkan ke server cetak Mac dan menyimpan file PDF, bukan cetak. Saya menggunakan versi macports . File yang dihasilkan rata tetapi besar. Saya mencoba ini pada file 8MB; PDF yang diratakan adalah 358MB! Mungkin ini dapat dikombinasikan dengan panggilan ghostscript seperti di Ubuntu Tip: Bagaimana cara mengurangi ukuran file PDF dari baris perintah .
Saran lain akan dihargai.
Jawaban:
Coba gunakan
pdf2ps
danps2pdf
berturut-turut. Agak rumit tapi membantu saya mengurangi dokumen 30MB saya menjadi 17MB. Tidak sebanyak yang saya inginkan tetapi masih lebih baik. Saya mendapat ide ini dari seorang teman yang menggunakan metode ini untuk menyingkirkan izin kata sandi pada pdf.Semoga itu bisa membantu!
sumber
pdf2ps file.pdf - | ps2pdf - file_flat.pdf
. File beralih dari 300K ke 500K yang merupakan persentase kenaikan besar tetapi tidak seperti peningkatan 4400%cups-pdf
metode yang dihasilkan.pdf2ps -q -sOutputFile=- file.pdf | ps2pdf - file_flat.pdf
.brew install ghostscript
.Jadi ini yang saya gunakan belakangan ini. Saya pikir secara fungsional itu melakukan hal yang sama
pdf2ps file.pdf - | ps2pdf - file_flat.pdf
, tetapi tampaknya bekerja lebih baik untuk saya.sumber
Ini mungkin sub-opsional, tetapi apakah Anda mempertimbangkan chaining cups-pdf dengan pdftk atau cupsfilter? Seperti yang Anda sebutkan, cups-pdf akan menghasilkan file pdf datar dan kemudian meneruskannya melalui pdftk atau cupsfilter untuk menurunkannya ke ukuran yang dapat diterima?
Sebagai alternatif, lihat
/System/Library/Printers/Libraries/convert
Anda harus dapat melakukan sesuatu sepertisumber
/System/Library/Printers/Libraries/convert
. Saya mencobacupsfilter
. Saat mengkonversi dari PDF ke PDF, tidak ada perubahan yang dilakukan pada file tersebut. Ketika mengkonversi dari PDF ke PS dan kemudian ke PDF penjelasannya hilang.PERINGATAN: gs dan pdf2ps | ps2pdf JANGAN Ratakan PDF!
Menggunakan gs atau pdf2ps diikuti oleh ps2pdf akan menghasilkan PDF multi-layer dengan konten di bawah anotasi hadir dalam bentuk asli . Anda dapat memverifikasi cacat ini di Pratinjau dengan menggunakan Pilih Semua, lalu Salin, lalu Rekatkan ke jendela TextEdit (dalam mode teks kaya). Anda akan melihat teks atau grafik di bawah penjelasan redaksi misalnya. Ini jelas sangat buruk jika Anda secara hukum membutuhkan konten tersebut untuk hilang dari output.
Solusi yang Berfungsi
ImageMagick dapat menghasilkan kualitas PDF yang bisa dikonfigurasi, multi-halaman, satu-lapis dengan raster dari setiap halaman menggunakan perintah berikut:
Perintah ini merasterisasi document_original.pdf, membuat gambar berbasis pixel dari setiap halaman, pada 150 DPI, dan menampilkan hasilnya sebagai document_flat.pdf.
Catatan tentang Kualitas Gambar
Karena rasterisasi , ini menghasilkan PDF yang tidak dapat diskalakan (zoom dan Anda akan melihat teks atau gambar vektor asli menjadi ter-pixelisasi). Ini kemungkinan akan memiliki ukuran file yang lebih besar kecuali jika aslinya memiliki konten vektor yang sangat kompleks seperti sejuta plot plot.
Dengan mengubah kepadatan , Anda dapat memperdagangkan ukuran file yang lebih besar untuk output resolusi yang lebih tinggi.
Semua teks akan dikonversi ke piksel mentah di setiap gambar halaman. Diagram teks dan vektor paling menderita, jadi bereksperimenlah dengan DPI sampai Anda mendapatkan file output yang dapat digunakan.
sumber
Applescript mungkin adalah cara terbaik / tercepat ke baris perintah. Setelah berfungsi, Anda dapat menyimpannya sebagai aplikasi dan membuat alias di shell perintah untuk menjalankannya. Setelah itu, Anda cukup mengetik alias Anda di baris perintah.
sumber