PDF adalah format standar untuk berbagi dokumen melalui internet. Dukungan global dan tata letak yang konsisten menjadikannya pilihan ideal untuk skenario semacam itu. Namun, terkadang ukuran file PDF cenderung bertambah karena konten seperti gambar, gambar, dll. Dalam skenario seperti itu, Anda dapat dengan mudah mengoptimalkan atau mengompres file PDF untuk memperkecil ukurannya tanpa mengurangi kualitasnya. Untuk itu, artikel ini akan mengajarkan Anda berbagai teknik yang dapat Anda gunakan untuk mengompresi dan mengoptimalkan file PDF untuk memperkecil ukurannya menggunakan C++.
- C++ API untuk Mengompresi dan Mengoptimalkan File PDF
- Optimalkan Dokumen PDF untuk Web menggunakan C++
- Kompres dan Ubah Ukuran Gambar dalam File PDF menggunakan C++
- Hapus Embedded Fonts, Unused Streams, dan Link Duplikat Streams menggunakan C++
- Hapus atau Ratakan Anotasi menggunakan C++
- Menghapus Kolom Formulir dari File PDF menggunakan C++
- Ubah Ruang Warna RGB menjadi Skala Abu-abu untuk File PDF menggunakan C++
C++ API untuk Mengompresi dan Mengoptimalkan File PDF
Aspose.PDF for C++ adalah pustaka C++ yang memungkinkan Anda membuat, membaca, dan memperbarui dokumen PDF. Anda dapat menggunakan API ini untuk mengompresi dan mengoptimalkan file PDF berukuran besar untuk mengurangi ukurannya sambil tetap mempertahankan kualitasnya. Anda dapat menginstal API melalui NuGet atau mengunduhnya langsung dari bagian unduhan.
PM> Install-Package Aspose.PDF.Cpp
Optimalkan Dokumen PDF untuk Web menggunakan C++
Jika Anda ingin menampilkan Dokumen PDF di web, mengoptimalkannya akan meningkatkan kecepatan pemuatannya dan dengan demikian meningkatkan pengalaman pengguna. Untuk mengoptimalkan dokumen PDF, ikuti langkah-langkah yang diberikan di bawah ini.
- Muat dokumen PDF menggunakan kelas Document.
- Optimalkan dokumen menggunakan metode Document->Optimize().
- Simpan dokumen PDF menggunakan metode Document->Save(System::String outputFileName).
Kode contoh berikut menunjukkan cara mengoptimalkan dokumen PDF untuk web menggunakan C++.
// Buka dokumen PDF
auto pdfDocument = MakeObject<Document>(u"SourceDirectory\\PDF\\Sample 4.pdf");
// Optimalkan dokumen PDF
pdfDocument->Optimize();
// Simpan dokumen PDF
pdfDocument->Save(u"OutputDirectory\\Optimized_output.pdf");
Kompres dan Ubah Ukuran Gambar dalam File PDF menggunakan C++
Jika file PDF berisi banyak gambar, itu dapat menghasilkan ukuran file yang besar. Dalam file seperti itu, gambar memainkan peran penting dalam meningkatkan ukurannya. Mengompresi dan mengubah ukuran gambar dalam file-file ini akan menghasilkan pengurangan ukuran yang nyata. Berikut ini adalah langkah-langkah untuk mengompres dan mengubah ukuran gambar dalam file PDF.
- Muat file PDF menggunakan kelas Document.
- Buat instance dari kelas OptimizationOptions.
- Tetapkan opsi kompresi, kualitas gambar, dan resolusi objek OptimizationOptions.
- Gunakan Document->OptimizeResources(System::SharedPtrAspose::Pdf::Optimization::OptimizationOptions strategy) metode untuk mengoptimalkan sumber daya.
- Simpan file PDF menggunakan metode Document->Save(System::String outputFileName).
Kode contoh berikut menunjukkan cara mengompres dan mengubah ukuran gambar untuk mengurangi ukuran file PDF menggunakan C++.
// Buka dokumen PDF
auto pdfDocument = MakeObject<Document>(u"SourceDirectory\\PDF\\Sample 4.pdf");
// Buat instance dari kelas OptimizationOptions
System::SharedPtr<Aspose::Pdf::Optimization::OptimizationOptions> options = MakeObject<Aspose::Pdf::Optimization::OptimizationOptions>();
// Kompres dan ubah ukuran gambar serta atur kualitas dan resolusinya
options->get_ImageCompressionOptions()->set_CompressImages(true);
options->get_ImageCompressionOptions()->set_ImageQuality(10);
options->get_ImageCompressionOptions()->set_MaxResolution(150);
options->get_ImageCompressionOptions()->set_ResizeImages(true);
// Optimalkan sumber daya dalam dokumen
pdfDocument->OptimizeResources(options);
// Simpan dokumen PDF
pdfDocument->Save(u"OutputDirectory\\Compressed_PDF_With_Images.pdf");
Hapus Embedded Fonts, Unused Streams, dan Link Duplikat Streams menggunakan C++
Untuk lebih mengurangi ukuran file, Anda juga dapat menghapus font yang disematkan dari file. Ada dua strategi untuk menghapus font tersemat; yang pertama adalah Anda menghapus semua font yang disematkan, dan yang kedua adalah Anda hanya menghapus sebagian dari font yang tidak digunakan. Selain itu, Anda juga dapat menghapus aliran yang tidak digunakan dan menautkan aliran duplikat untuk mengurangi ukuran tambahan. Berikut ini adalah langkah-langkah untuk menerapkan perubahan yang telah dibahas sebelumnya ke file PDF.
- Muat file PDF menggunakan kelas Document.
- Buat instance dari kelas OptimizationOptions.
- Hapus sematan semua font atau subkumpulan font.
- Tautkan aliran duplikat.
- Hapus aliran dan objek yang tidak digunakan.
- Gunakan Document->OptimizeResources(System::SharedPtrAspose::Pdf::Optimization::OptimizationOptions strategy) metode untuk mengoptimalkan sumber daya.
- Simpan file PDF menggunakan metode Document->Save(System::String outputFileName).
Kode contoh berikut menunjukkan cara mengurangi ukuran file PDF dengan menghapus penyematan font dan menghapus aliran dan objek yang tidak digunakan menggunakan C++.
// Buka dokumen PDF
auto pdfDocument = MakeObject<Document>(u"SourceDirectory\\PDF\\Sample 4.pdf");
// Buat instance dari kelas OptimizationOptions
System::SharedPtr<Aspose::Pdf::Optimization::OptimizationOptions> options = MakeObject<Aspose::Pdf::Optimization::OptimizationOptions>();
// Salah satu
// Batalkan penyematan semua font dalam PDF
options->set_UnembedFonts(true);
// ATAU
// Hanya simpan font tersemat untuk karakter yang digunakan
options->set_SubsetFonts(true);
// Tautkan aliran duplikat
options->set_LinkDuplcateStreams(false);
// Hapus aliran yang tidak digunakan
options->set_RemoveUnusedStreams(false);
// Hapus objek yang tidak digunakan
options->set_RemoveUnusedObjects(false);
// Optimalkan sumber daya dalam dokumen
pdfDocument->OptimizeResources(options);
// Simpan dokumen PDF
pdfDocument->Save(u"OutputDirectory\\Remove_Embedded_Fonts_Output.pdf");
Hapus atau Ratakan Anotasi menggunakan C++
Mungkin ada beberapa anotasi dalam file PDF seperti teks, bentuk, dll., yang meningkatkan ukuran file. Anotasi ini dapat dihapus jika tidak diperlukan lagi atau diratakan jika tidak diperlukan perubahan lebih lanjut. Melakukan hal ini akan mengurangi ukuran file PDF. Berikut ini adalah langkah-langkah untuk menghapus atau meratakan anotasi dari file PDF.
- Buat instance dari kelas PdfAnnotationEditor.
- Muat file PDF sumber menggunakan PdfAnnotationEditor->BindPdf (System::SharedPtrAspose::Pdf::Document srcDoc) metode.
- Ratakan atau hapus anotasi.
- Simpan file PDF menggunakan metode PdfAnnotationEditor->Save(System::String destFile).
Kode contoh berikut menunjukkan cara menghapus atau meratakan anotasi dalam file PDF menggunakan C++.
// Buat instance kelas PdfAnnotationEditor
System::SharedPtr<Aspose::Pdf::Facades::PdfAnnotationEditor> annotationEditor = System::MakeObject<Aspose::Pdf::Facades::PdfAnnotationEditor>();
// Muat file PDF sampel
annotationEditor->BindPdf(u"SourceDirectory\\PDF\\AnnotationSample.pdf");
// Salah satu
// Meratakan anotasi
annotationEditor->FlatteningAnnotations();
// Atau
// Hapus Anotasi
//annotationEditor->DeleteAnnotations();
// Simpan dokumen PDF
annotationEditor->Save(u"OutputDirectory\\Remove_Annotations_Output.pdf");
Menghapus Kolom Formulir dari File PDF menggunakan C++
Bidang formulir diperlukan saat Anda perlu mengumpulkan data. Jika pengumpulan data tidak lagi diperlukan, Anda dapat meratakan bidang formulir untuk mengurangi ukuran file PDF. Berikut ini adalah langkah-langkah untuk meratakan form field pada file PDF.
- Muat file PDF menggunakan kelas Document.
- Periksa keberadaan bidang formulir.
- Ulangi melalui bidang formulir dan ratakan setiap bidang.
- Simpan file PDF menggunakan metode Document->Save(System::String outputFileName).
Kode contoh berikut menunjukkan cara meratakan bidang formulir dalam file PDF menggunakan C++.
// Buka dokumen PDF
auto pdfDocument = MakeObject<Document>(u"SourceDirectory\\PDF\\Fillable_PDF_Form.pdf");
if (pdfDocument->get_Form()->get_Fields()->get_Length() > 0)
{
// Ulangi melalui bidang formulir
for (System::SharedPtr<Field> field : pdfDocument->get_Form()->get_Fields())
{
// Ratakan bidang
field->Flatten();
}
}
// Simpan dokumen PDF
pdfDocument->Save(u"OutputDirectory\\Flatten_Form_Fields.pdf");
Ubah Ruang Warna RGB menjadi Skala Abu-abu untuk File PDF menggunakan C++
File PDF dengan informasi tekstual dapat direpresentasikan dengan baik dalam ruang warna skala abu-abu, jadi ketika mengurangi ukuran file sangat penting, file PDF tersebut dapat diubah menjadi skala abu-abu. Selanjutnya, misalkan prioritasnya adalah mengarsipkan file dan memperkecil ukurannya sebanyak mungkin. Dalam hal ini, file PDF dengan gambar juga dapat diubah menjadi skala abu-abu karena tujuan utamanya adalah membuat file sekecil mungkin. Untuk mengubah ruang warna file PDF dari RGB ke skala abu-abu, ikuti langkah-langkah di bawah ini:
- Muat file PDF menggunakan kelas Document.
- Buat instance dari kelas RgbToDeviceGrayConversionStrategy.
- Ulangi halaman-halaman file PDF.
- Gunakan RgbToDeviceGrayConversionStrategy->Convert (System::SharedPtr halaman) metode untuk mengonversi setiap halaman menjadi skala abu-abu.
- Simpan file PDF menggunakan metode Document->Save(System::String outputFileName).
Kode contoh berikut menunjukkan cara mengonversi ruang warna file PDF dari RGB ke skala abu-abu menggunakan C++.
// Buka dokumen PDF
auto pdfDocument = MakeObject<Document>(u"SourceDirectory\\PDF\\Sample 1.pdf");
System::SharedPtr<RgbToDeviceGrayConversionStrategy> strategy = MakeObject<RgbToDeviceGrayConversionStrategy>();
for (int idxPage = 1; idxPage <= pdfDocument->get_Pages()->get_Count(); idxPage++) {
System::SharedPtr<Page> page = pdfDocument->get_Pages()->idx_get(idxPage);
// Ubah ruang warna setiap halaman menjadi Grayscale
strategy->Convert(page);
}
// Simpan dokumen PDF
pdfDocument->Save(u"OutputDirectory\\Grayscale_PDF_Output.pdf");
Dapatkan Lisensi Gratis
Anda dapat mencoba API tanpa batasan evaluasi dengan meminta lisensi sementara gratis.
Kesimpulan
Tujuan artikel ini adalah untuk melihat berbagai cara mengompres dan mengoptimalkan file PDF untuk mengurangi ukurannya. Pertama, kami melihat cara mengoptimalkan file PDF untuk web. Kemudian kami melihat cara mengompres dan mengubah ukuran gambar dalam file PDF. Selain itu, kami telah mempelajari cara menghapus font dan aliran yang disematkan dari file PDF. Selain itu, kami belajar cara meratakan anotasi dan bidang formulir, serta mengubah ruang warna file PDF menjadi skala abu-abu. Kami menjelajahi semua cara ini untuk mengurangi ukuran file PDF tanpa memengaruhi kualitasnya. Aspose.PDF for C++ menyediakan banyak fitur tambahan untuk bekerja dengan file PDF. Anda dapat menjelajahi API secara mendetail dengan mengunjungi dokumentasi resmi. Jika ada pertanyaan, jangan ragu untuk menghubungi kami di [forum dukungan gratis] kami28.