PDF ist ein Standardformat für die gemeinsame Nutzung von Dokumenten über das Internet. Seine globale Unterstützung und sein konsistentes Layout machen es zur idealen Wahl für solche Szenarien. Manchmal wächst die Größe von PDF Dateien jedoch aufgrund von Inhalten wie Bildern, Zeichnungen usw. In solchen Szenarien können Sie PDF Dateien einfach optimieren oder komprimieren, um ihre Größe zu reduzieren, ohne ihre Qualität zu beeinträchtigen. Zu diesem Zweck lernen Sie in diesem Artikel verschiedene Techniken kennen, mit denen Sie PDF Dateien komprimieren und optimieren können, um ihre Größe mit C++ zu reduzieren.
- C++-API zum Komprimieren und Optimieren von PDF Dateien
- Optimieren Sie PDF Dokumente für das Web mit C++
- Bilder in PDF Dateien mit C++ komprimieren und skalieren
- Entfernen Sie eingebettete Schriftarten, ungenutzte Streams und verknüpfen Sie doppelte Streams mit C++
- Anmerkungen mit C++ entfernen oder reduzieren
- Formularfelder aus PDF Dateien mit C++ entfernen
- Konvertieren Sie den RGB-Farbraum in Graustufen für PDF Dateien mit C++
C++-API zum Komprimieren und Optimieren von PDF Dateien
Aspose.PDF for C++ ist eine C++ Bibliothek, mit der Sie PDF Dokumente erstellen, lesen und aktualisieren können. Sie können diese API verwenden, um große PDF Dateien zu komprimieren und zu optimieren, um ihre Größe zu reduzieren und gleichzeitig ihre Qualität beizubehalten. Sie können die API entweder über NuGet installieren oder direkt aus dem Abschnitt downloads herunterladen.
PM> Install-Package Aspose.PDF.Cpp
Optimieren Sie PDF Dokumente für das Web mit C++
Wenn Sie die PDF Dokumente im Web anzeigen möchten, verbessert eine Optimierung deren Ladegeschwindigkeit und damit das Benutzererlebnis. Um PDF Dokumente zu optimieren, gehen Sie bitte wie folgt vor.
- Laden Sie das PDF Dokument mit der Klasse Document.
- Optimieren Sie das Dokument mit der methode Dokument->Optimieren().
- Speichern Sie das PDF Dokument mit der methode Document->Save(System::String outputFileName).
Der folgende Beispielcode zeigt, wie PDF Dokumente mit C++ für das Web optimiert werden.
// Öffnen Sie das PDF Dokument
auto pdfDocument = MakeObject<Document>(u"SourceDirectory\\PDF\\Sample 4.pdf");
// Optimieren Sie das PDF Dokument
pdfDocument->Optimize();
// Speichern Sie das PDF Dokument
pdfDocument->Save(u"OutputDirectory\\Optimized_output.pdf");
Bilder in PDF Dateien mit C++ komprimieren und skalieren
Wenn PDF Dateien eine große Anzahl von Bildern enthalten, kann dies zu erheblichen Dateigrößen führen. In solchen Dateien spielen Bilder eine wichtige Rolle bei der Erhöhung ihrer Größe. Das Komprimieren und Ändern der Größe von Bildern in diesen Dateien würde zu einer merklichen Reduzierung ihrer Größe führen. Im Folgenden finden Sie die Schritte zum Komprimieren und Ändern der Größe von Bildern in einer PDF Datei.
- Laden Sie die PDF Datei mit der Klasse Document.
- Erstellen Sie eine Instanz der Klasse OptimizationOptions.
- Legen Sie die Komprimierungs, Bildqualitäts und Auflösungsoptionen des OptimizationOptions objekts fest.
- Verwenden Sie das Document->OptimizeResources(System::SharedPtrAspose::Pdf::Optimization::OptimizationOptions Strategie) Methode zur Optimierung der Ressourcen.
- Speichern Sie die PDF Datei mit der methode Document->Save(System::String outputFileName).
Der folgende Beispielcode zeigt, wie Bilder komprimiert und in der Größe geändert werden, um die PDF Dateigröße mit C++ zu reduzieren.
// Öffnen Sie das PDF Dokument
auto pdfDocument = MakeObject<Document>(u"SourceDirectory\\PDF\\Sample 4.pdf");
// Erstellen Sie eine Instanz der OptimizationOptions Klasse
System::SharedPtr<Aspose::Pdf::Optimization::OptimizationOptions> options = MakeObject<Aspose::Pdf::Optimization::OptimizationOptions>();
// Komprimieren und skalieren Sie Bilder und stellen Sie deren Qualität und Auflösung ein
options->get_ImageCompressionOptions()->set_CompressImages(true);
options->get_ImageCompressionOptions()->set_ImageQuality(10);
options->get_ImageCompressionOptions()->set_MaxResolution(150);
options->get_ImageCompressionOptions()->set_ResizeImages(true);
// Ressourcen im Dokument optimieren
pdfDocument->OptimizeResources(options);
// Speichern Sie das PDF Dokument
pdfDocument->Save(u"OutputDirectory\\Compressed_PDF_With_Images.pdf");
Entfernen Sie eingebettete Schriftarten, ungenutzte Streams und verknüpfen Sie doppelte Streams mit C++
Um die Dateigröße weiter zu reduzieren, können Sie auch eingebettete Schriftarten aus der Datei entfernen. Es gibt zwei Strategien zum Entfernen eingebetteter Schriftarten; Die erste besteht darin, dass Sie alle eingebetteten Schriftarten entfernen, und die zweite besteht darin, dass Sie nur die Teilmenge nicht verwendeter Schriftarten entfernen. Darüber hinaus können Sie auch ungenutzte Streams entfernen und doppelte Streams verknüpfen, um zusätzliche Größe zu reduzieren. Im Folgenden finden Sie die Schritte zum Anwenden der zuvor besprochenen Änderungen auf eine PDF Datei.
- Laden Sie die PDF Datei mit der Klasse Document.
- Erstellen Sie eine Instanz der Klasse OptimizationOptions.
- Entfernen Sie entweder alle Schriftarten oder die Teilmenge der Schriftarten.
- Doppelte Streams verknüpfen.
- Entfernen Sie ungenutzte Streams und Objekte.
- Verwenden Sie das Document->OptimizeResources(System::SharedPtrAspose::Pdf::Optimization::OptimizationOptions Strategie) Methode zur Optimierung der Ressourcen.
- Speichern Sie die PDF Datei mit der methode Document->Save(System::String outputFileName).
Der folgende Beispielcode zeigt, wie Sie die PDF Dateigröße reduzieren, indem Sie die Einbettung von Schriftarten aufheben und nicht verwendete Streams und Objekte mit C++ entfernen.
// Öffnen Sie das PDF Dokument
auto pdfDocument = MakeObject<Document>(u"SourceDirectory\\PDF\\Sample 4.pdf");
// Erstellen Sie eine Instanz der OptimizationOptions Klasse
System::SharedPtr<Aspose::Pdf::Optimization::OptimizationOptions> options = MakeObject<Aspose::Pdf::Optimization::OptimizationOptions>();
// Entweder
// Heben Sie die Einbettung aller Schriftarten in PDF auf
options->set_UnembedFonts(true);
// ODER
// Behalten Sie eingebettete Schriftarten nur für verwendete Zeichen bei
options->set_SubsetFonts(true);
// Doppelte Streams verknüpfen
options->set_LinkDuplcateStreams(false);
// Entfernen Sie ungenutzte Streams
options->set_RemoveUnusedStreams(false);
// Entfernen Sie unbenutzte Objekte
options->set_RemoveUnusedObjects(false);
// Ressourcen im Dokument optimieren
pdfDocument->OptimizeResources(options);
// Speichern Sie das PDF Dokument
pdfDocument->Save(u"OutputDirectory\\Remove_Embedded_Fonts_Output.pdf");
Anmerkungen mit C++ entfernen oder reduzieren
PDF Dateien können mehrere Anmerkungen wie Text, Formen usw. enthalten, die die Dateigröße erhöhen. Diese Anmerkungen können entfernt werden, wenn sie nicht mehr benötigt werden, oder reduziert werden, wenn keine weiteren Änderungen erforderlich sind. Dadurch wird die Größe der PDF Datei reduziert. Im Folgenden finden Sie die Schritte zum Entfernen oder Reduzieren von Anmerkungen aus PDF Dateien.
- Erstellen Sie eine Instanz der Klasse PdfAnnotationEditor.
- Laden Sie die PDF quelldatei mit PdfAnnotationEditor->BindPdf (System::SharedPtrAspose::Pdf::Document srcDoc) methode.
- Reduzieren oder löschen Sie die Anmerkungen.
- Speichern Sie die PDF Datei mit der methode PdfAnnotationEditor->Save(System::String destFile).
Der folgende Beispielcode zeigt, wie Anmerkungen in PDF Dateien mit C++ gelöscht oder vereinfacht werden.
// Erstellen Sie eine Instanz der PdfAnnotationEditor Klasse
System::SharedPtr<Aspose::Pdf::Facades::PdfAnnotationEditor> annotationEditor = System::MakeObject<Aspose::Pdf::Facades::PdfAnnotationEditor>();
// Laden Sie die Beispiel-PDF Datei
annotationEditor->BindPdf(u"SourceDirectory\\PDF\\AnnotationSample.pdf");
// Entweder
// Anmerkungen glätten
annotationEditor->FlatteningAnnotations();
// Oder
// Anmerkungen löschen
//annotationEditor->DeleteAnnotations();
// Speichern Sie das PDF Dokument
annotationEditor->Save(u"OutputDirectory\\Remove_Annotations_Output.pdf");
Formularfelder aus PDF Dateien mit C++ entfernen
Formularfelder sind erforderlich, wenn Sie Daten erfassen müssen. Wenn die Datenerfassung nicht mehr erforderlich ist, können Sie die Formularfelder reduzieren, um die PDF Dateigröße zu reduzieren. Im Folgenden finden Sie die Schritte zum Reduzieren von Formularfeldern in PDF Dateien.
- Laden Sie die PDF Datei mit der Klasse Document.
- Prüfen Sie, ob Formularfelder vorhanden sind.
- Durchlaufen Sie die Formularfelder und reduzieren Sie jedes Feld.
- Speichern Sie die PDF Datei mit der methode Document->Save(System::String outputFileName).
Der folgende Beispielcode zeigt, wie Formularfelder in PDF Dateien mit C++ vereinfacht werden.
// Öffnen Sie das PDF Dokument
auto pdfDocument = MakeObject<Document>(u"SourceDirectory\\PDF\\Fillable_PDF_Form.pdf");
if (pdfDocument->get_Form()->get_Fields()->get_Length() > 0)
{
// Iterieren Sie durch die Formularfelder
for (System::SharedPtr<Field> field : pdfDocument->get_Form()->get_Fields())
{
// Feld glätten
field->Flatten();
}
}
// Speichern Sie das PDF Dokument
pdfDocument->Save(u"OutputDirectory\\Flatten_Form_Fields.pdf");
Konvertieren Sie den RGB-Farbraum in Graustufen für PDF Dateien mit C++
PDF Dateien mit Textinformationen können gut im Graustufen-Farbraum dargestellt werden, wenn also eine Reduzierung der Dateigröße unerlässlich ist, können solche PDF Dateien in Graustufen konvertiert werden. Nehmen Sie außerdem an, dass die Priorität darin besteht, Dateien zu archivieren und die Größe so weit wie möglich zu reduzieren. In diesem Fall können auch PDF Dateien mit Bildern in Graustufen konvertiert werden, da das primäre Ziel darin besteht, die Dateien so klein wie möglich zu machen. Um den Farbraum von PDF Dateien von RGB in Graustufen zu ändern, gehen Sie wie folgt vor:
- Laden Sie die PDF Datei mit der Klasse Document.
- Erstellen Sie eine Instanz der Klasse RgbToDeviceGrayConversionStrategy.
- Durchlaufen Sie die Seiten der PDF Datei.
- Verwenden Sie die RgbToDeviceGrayConversionStrategy->Convert (System::SharedPtr page), um jede Seite in Graustufen umzuwandeln.
- Speichern Sie die PDF Datei mit der methode Document->Save(System::String outputFileName).
Der folgende Beispielcode zeigt, wie der Farbraum einer PDF Datei mit C++ von RGB in Graustufen konvertiert wird.
// Öffnen Sie das PDF Dokument
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);
// Konvertieren Sie den Farbraum jeder Seite in Graustufen
strategy->Convert(page);
}
// Speichern Sie das PDF Dokument
pdfDocument->Save(u"OutputDirectory\\Grayscale_PDF_Output.pdf");
Holen Sie sich eine kostenlose Lizenz
Sie können die API ohne Evaluierungseinschränkungen testen, indem Sie eine kostenlose temporäre Lizenz anfordern.
Fazit
Das Ziel dieses Artikels war es, verschiedene Möglichkeiten zum Komprimieren und Optimieren von PDF Dateien zu untersuchen, um ihre Größe zu reduzieren. Zuerst haben wir uns angesehen, wie man PDF Dateien für das Web optimiert. Dann haben wir gesehen, wie man Bilder in PDF Dateien komprimiert und in der Größe ändert. Außerdem haben wir gelernt, wie man eingebettete Schriften und Streams aus PDF Dateien entfernt. Darüber hinaus haben wir gelernt, Anmerkungen und Formularfelder zu reduzieren und den Farbraum von PDF Dateien in Graustufen umzuwandeln. Wir haben all diese Möglichkeiten untersucht, um die Größe der PDF Dateien zu reduzieren, ohne ihre Qualität zu beeinträchtigen. Aspose.PDF for C++ bietet viele zusätzliche Funktionen für die Arbeit mit PDF Dateien. Sie können die API im Detail erkunden, indem Sie die offizielle Dokumentation besuchen. Bei Fragen können Sie sich gerne in unserem kostenlosen Support-Forum an uns wenden.