PDF, belgeleri internet üzerinden paylaşmak için standart bir biçimdir. Küresel desteği ve tutarlı düzeni, onu bu tür senaryolar için ideal bir seçim haline getiriyor. Ancak bazen, resimler, çizimler vb. içerik nedeniyle PDF dosyalarının boyutu büyüme eğilimindedir. Bu tür senaryolarda, kalitelerinden ödün vermeden boyutlarını küçültmek için PDF dosyalarını kolayca optimize edebilir veya sıkıştırabilirsiniz. Bu amaçla, bu makale size C++ kullanarak PDF dosyalarını boyutlarını küçültmek üzere sıkıştırmak ve optimize etmek için kullanabileceğiniz farklı teknikleri öğretecektir.

PDF Dosyalarını Sıkıştırmak ve Optimize Etmek için C++ API

Aspose.PDF for C++, PDF belgeleri oluşturmanıza, okumanıza ve güncellemenize olanak tanıyan bir C++ kitaplığıdır. Bu API’yi, kalitelerini korurken boyutlarını küçültmek üzere büyük PDF dosyalarını sıkıştırmak ve optimize etmek için kullanabilirsiniz. API’yi NuGet aracılığıyla yükleyebilir veya doğrudan indirilenler bölümünden indirebilirsiniz.

PM> Install-Package Aspose.PDF.Cpp

C++ kullanarak PDF Belgelerini Web için Optimize Edin

PDF Belgelerini web’de görüntülemek istiyorsanız, bunları optimize etmek yükleme hızlarını artıracak ve böylece kullanıcı deneyimini geliştirecektir. PDF belgelerini optimize etmek için lütfen aşağıda verilen adımları izleyin.

Aşağıdaki örnek kod, C++ kullanarak PDF belgelerinin web için nasıl optimize edileceğini gösterir.

// PDF belgesini aç
auto pdfDocument = MakeObject<Document>(u"SourceDirectory\\PDF\\Sample 4.pdf");

// PDF belgesini optimize edin
pdfDocument->Optimize();

// PDF belgesini kaydedin
pdfDocument->Save(u"OutputDirectory\\Optimized_output.pdf");

C++ Kullanarak PDF Dosyalarındaki Görüntüleri Sıkıştırın ve Yeniden Boyutlandırın

PDF dosyaları çok sayıda resim içeriyorsa, bu önemli dosya boyutlarına neden olabilir. Bu tür dosyalarda, resimler boyutlarının artmasında önemli bir rol oynar. Bu dosyalardaki görüntülerin sıkıştırılması ve yeniden boyutlandırılması, boyutlarının gözle görülür şekilde küçülmesine neden olur. Aşağıdakiler, bir PDF dosyasındaki görüntüleri sıkıştırmak ve yeniden boyutlandırmak için gereken adımlardır.

Aşağıdaki örnek kod, C++ kullanarak PDF dosya boyutunu küçültmek için görüntülerin nasıl sıkıştırılacağını ve yeniden boyutlandırılacağını gösterir.

// PDF belgesini aç
auto pdfDocument = MakeObject<Document>(u"SourceDirectory\\PDF\\Sample 4.pdf");

// OptimizationOptions sınıfının bir örneğini oluşturun
System::SharedPtr<Aspose::Pdf::Optimization::OptimizationOptions> options = MakeObject<Aspose::Pdf::Optimization::OptimizationOptions>();

// Görüntüleri sıkıştırın ve yeniden boyutlandırın, kalitelerini ve çözünürlüklerini ayarlayın
options->get_ImageCompressionOptions()->set_CompressImages(true);
options->get_ImageCompressionOptions()->set_ImageQuality(10);
options->get_ImageCompressionOptions()->set_MaxResolution(150);
options->get_ImageCompressionOptions()->set_ResizeImages(true);

// Belgedeki kaynakları optimize edin
pdfDocument->OptimizeResources(options);

// PDF belgesini kaydedin
pdfDocument->Save(u"OutputDirectory\\Compressed_PDF_With_Images.pdf");

Dosya boyutunu daha da azaltmak için gömülü yazı tiplerini dosyadan da kaldırabilirsiniz. Katıştırılmış yazı tiplerini kaldırmak için iki strateji vardır; ilki, tüm gömülü yazı tiplerini kaldırmanız ve ikincisi, yalnızca kullanılmayan yazı tiplerinin alt kümesini kaldırmanızdır. Ayrıca, ek boyutu azaltmak için kullanılmayan akışları kaldırabilir ve yinelenen akışları bağlayabilirsiniz. Aşağıda, daha önce tartışılan değişiklikleri bir PDF dosyasına uygulama adımları yer almaktadır.

Aşağıdaki örnek kod, C++ kullanarak yazı tiplerini kaldırarak ve kullanılmayan akışları ve nesneleri kaldırarak PDF dosya boyutunun nasıl küçültüleceğini gösterir.

// PDF belgesini aç
auto pdfDocument = MakeObject<Document>(u"SourceDirectory\\PDF\\Sample 4.pdf");

// OptimizationOptions sınıfının bir örneğini oluşturun
System::SharedPtr<Aspose::Pdf::Optimization::OptimizationOptions> options = MakeObject<Aspose::Pdf::Optimization::OptimizationOptions>();

// Herhangi biri
// PDF'deki tüm yazı tiplerini kaldır
options->set_UnembedFonts(true);

// VEYA
// Yalnızca kullanılan karakterler için katıştırılmış yazı tiplerini saklayın
options->set_SubsetFonts(true);

// Yinelenen akışları bağlayın
options->set_LinkDuplcateStreams(false);

// Kullanılmayan akışları kaldır
options->set_RemoveUnusedStreams(false);

// Kullanılmayan nesneleri kaldırın
options->set_RemoveUnusedObjects(false);

// Belgedeki kaynakları optimize edin
pdfDocument->OptimizeResources(options);

// PDF belgesini kaydedin
pdfDocument->Save(u"OutputDirectory\\Remove_Embedded_Fonts_Output.pdf");

C++ kullanarak Ek Açıklamaları Kaldırma veya Düzleştirme

PDF dosyalarında dosya boyutunu artıran metin, şekiller vb. gibi birden çok ek açıklama olabilir. Bu notlar artık gerekmiyorsa kaldırılabilir veya başka değişiklik gerekmiyorsa düzleştirilebilir. Bunu yapmak PDF dosyasının boyutunu küçültür. Aşağıda, açıklamaları PDF dosyalarından kaldırmak veya düzleştirmek için izlenecek adımlar yer almaktadır.

Aşağıdaki örnek kod, C++ kullanılarak PDF dosyalarındaki ek açıklamaların nasıl silineceğini veya düzleştirileceğini gösterir.

// PdfAnnotationEditor sınıfının bir örneğini oluşturun
System::SharedPtr<Aspose::Pdf::Facades::PdfAnnotationEditor> annotationEditor = System::MakeObject<Aspose::Pdf::Facades::PdfAnnotationEditor>();

// Örnek PDF dosyasını yükleyin
annotationEditor->BindPdf(u"SourceDirectory\\PDF\\AnnotationSample.pdf");

// Herhangi biri
// Ek açıklamaları düzleştirme
annotationEditor->FlatteningAnnotations();

// Veya
// Açıklamaları Sil
//annotationEditor->DeleteAnnotations();

// PDF belgesini kaydedin
annotationEditor->Save(u"OutputDirectory\\Remove_Annotations_Output.pdf");

C++ Kullanarak Form Alanlarını PDF Dosyalarından Kaldırma

Veri toplamanız gerektiğinde form alanları gereklidir. Veri toplama artık gerekmiyorsa, PDF dosya boyutunu azaltmak için form alanlarını düzleştirebilirsiniz. Aşağıda, PDF dosyalarındaki form alanlarını düzleştirme adımları yer almaktadır.

  • Belge sınıfını kullanarak PDF dosyasını yükleyin.
  • Form alanlarının varlığını kontrol edin.
  • Form alanlarını yineleyin ve her alanı düzleştirin.
  • Document->Save(System::String outputFileName) yöntemini kullanarak PDF dosyasını kaydedin.

Aşağıdaki örnek kod, C++ kullanılarak PDF dosyalarındaki form alanlarının nasıl düzleştirileceğini gösterir.

// PDF belgesini aç
auto pdfDocument = MakeObject<Document>(u"SourceDirectory\\PDF\\Fillable_PDF_Form.pdf");

if (pdfDocument->get_Form()->get_Fields()->get_Length() > 0)
{
	// Form alanlarını yineleyin
	for (System::SharedPtr<Field> field : pdfDocument->get_Form()->get_Fields())
	{
		// Alanı düzleştir
		field->Flatten();
	}
}

// PDF belgesini kaydedin
pdfDocument->Save(u"OutputDirectory\\Flatten_Form_Fields.pdf");

C++ kullanarak PDF Dosyaları için RGB Renk Alanını Gri Tonlamaya Dönüştürün

Metin bilgisi içeren PDF dosyaları, gri tonlamalı renk uzayında iyi bir şekilde temsil edilebilir, bu nedenle dosya boyutunun küçültülmesi çok önemli olduğunda, bu tür PDF dosyaları gri tonlamaya dönüştürülebilir. Ayrıca, önceliğin dosyaları arşivlemek ve boyutunu olabildiğince küçültmek olduğunu varsayalım. Bu durumda, birincil amaç dosyaları mümkün olduğu kadar küçük yapmak olduğundan, görüntü içeren PDF dosyaları da gri tonlamaya dönüştürülebilir. PDF dosyalarının renk alanını RGB’den gri tonlamaya değiştirmek için aşağıda verilen adımları izleyin:

Aşağıdaki örnek kod, C++ kullanılarak bir PDF dosyasının renk uzayının RGB’den gri tonlamaya nasıl dönüştürüleceğini gösterir.

// PDF belgesini aç
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);

	// Her sayfanın renk alanını Gri Tonlamaya dönüştürün
	strategy->Convert(page);
}

// PDF belgesini kaydedin
pdfDocument->Save(u"OutputDirectory\\Grayscale_PDF_Output.pdf");

Ücretsiz Lisans Alın

Ücretsiz bir geçici lisans talep ederek API’yi değerlendirme sınırlamaları olmaksızın deneyebilirsiniz.

Çözüm

Bu makalenin hedefi, boyutlarını küçültmek için PDF dosyalarını sıkıştırmanın ve optimize etmenin farklı yollarına bakmaktı. İlk olarak, PDF dosyalarını web için nasıl optimize edeceğimize baktık. Ardından, PDF dosyalarındaki görüntülerin nasıl sıkıştırılacağını ve yeniden boyutlandırılacağını gördük. Ayrıca gömülü yazı tiplerini ve akışları PDF dosyalarından nasıl kaldıracağımızı öğrendik. Buna ek olarak, açıklamaları ve form alanlarını düzleştirmeyi ve PDF dosyalarının renk uzayını gri tonlamaya dönüştürmeyi öğrendik. Kalitelerini etkilemeden PDF dosyalarının boyutunu küçültmek için tüm bu yolları araştırdık. Aspose.PDF for C++, PDF dosyalarıyla çalışmak için birçok ek özellik sağlar. Resmi belgeleri ziyaret ederek API’yi ayrıntılı olarak inceleyebilirsiniz. Herhangi bir sorunuz olursa lütfen ücretsiz destek forumumuzdan bize ulaşmaktan çekinmeyin.

Ayrıca bakınız