Jak kompresować pliki PDF w Javie | IronPDF

Jak skompresować pliki PDF w Java

This article was translated from English: Does it need improvement?
Translated
View the article in English

IronPDF umożliwia programistom Java kompresję plików PDF poprzez redukcję jakości obrazów i skalowanie rozdzielczości, co pomaga zmniejszyć rozmiar plików w celu łatwiejszego udostępniania i przechowywania.

Szybki start: Kompresja Pliku PDF w Java

```java {title="Kompresja plików PDF w Javie"} //:path=/static-assets/pdf/content-code-examples/java/how-to/compress-pdf-java-tutorial/quickstart-compress.java import com.ironsoftware.IronPDF.*; import java.nio.file.Paths;

// Załaduj dokument PDF PdfDocument pdf = PdfDocument.fromFile(Paths.get("source.pdf"));

// Kompresuj obrazy do 60% jakości pdf.compressImages(60);

// Zapisz skompresowany PDF pdf.saveAs(Paths.get("compressed.pdf"));


<div class="hsg-featured-snippet">
<h3>Minimalny proces (5 kroków)</h3>

1. Dodaj IronPDF do swojego Maven `pom.xml` jako zależność
2. Załaduj plik PDF za pomocą `PdfDocument.fromFile()`
3. Kompresuj obrazy za pomocą `pdf.compressImages(60)`
4. Opcjonalnie skaluj rozdzielczość obrazu za pomocą `pdf.compressImages(90, true)`
5. Zapisz skompresowany plik PDF za pomocą `pdf.saveAs()`
</div>

Dokumenty PDF są szeroko używane do udostępniania i przechowywania informacji, ale pliki z dużą ilością obrazów mogą szybko osiągnąć dziesiątki megabajtów. Duże rozmiary plików komplikują dostarczanie e-mail, spowalniają przesyłanie i zwiększają koszty przechowywania. Java API kompresji z IronPDF rozwiązuje ten problem, umożliwiając redukcję jakości osadzonego obrazu i skalowanie rozdzielczości w kilku liniach kodu.

Ten artykuł obejmuje, jak skompresować pliki PDF w Java używając IronPDF. Przykłady pokazują zarówno prostą kompresję opartą na jakości, jak i skalowanie rozdzielczości, dzięki czemu można dopasować podejście do swoich specyficznych wymagań dotyczących rozmiaru i jakości. Jeśli pracujesz również z [PDF z dużą ilością obrazów](https://ironpdf.com/java/how-to/java-pdf-to-image-tutorial/) lub potrzebujesz obsłużyć [scalane dokumenty](https://ironpdf.com/java/how-to/java-merge-pdf-tutorial/), kompresja jest niezbędnym krokiem przed dystrybucją.

## Co to jest biblioteka IronPDF Java PDF?

IronPDF to [biblioteka PDF dla Java](/java/), która programowo tworzy, czyta i manipuluje dokumentami PDF. Biblioteka obsługuje [konwersję HTML do PDF](https://ironpdf.com/java/tutorials/html-to-pdf/), wypełnianie formularzy, osadzanie obrazów i kompresję plików bez potrzeby przeglądarki PDF lub zewnętrznego silnika renderującego. Obsługuje różne środowiska wdrożeniowe, w tym [AWS Lambda](https://ironpdf.com/java/get-started/aws/), [Azure Functions](https://ironpdf.com/java/get-started/azure/) i [Google Cloud](https://ironpdf.com/java/get-started/google-cloud/).

Kompresja w IronPDF działa poprzez ponowne próbkowanie osadzonych obrazów do niższego poziomu jakości JPEG i, opcjonalnie, redukowania ich rozdzielczości, aby pasowały do rozmiaru wyświetlania w PDF. Tekst, grafika wektorowa i struktura dokumentu nie są zmieniane. Czyni to IronPDF praktycznym wyborem dla dużych dokumentów, które muszą być szybko przesyłane przez e-mail lub przechowywane w systemach opartych na chmurze.

Biblioteka dobrze współpracuje również z innymi operacjami na dokumentach: można kompresować plik PDF, który już ma [znaki wodne](https://ironpdf.com/java/how-to/custom-watermark/), [warstwy tła](https://ironpdf.com/java/how-to/background-foreground/) i [zakładki](https://ironpdf.com/java/how-to/bookmarks/), a wszystkie te funkcje zostają zachowane po kompresji.

Zwróć uwagęKompresja jest najskuteczniejsza w przypadku plików PDF, które zawierają osadzone obrazy JPEG lub PNG. Dokumenty składające się głównie z tekstu i grafiki wektorowej uzyskają minimalne zmniejszenie rozmiaru.
## Jak skonfigurować IronPDF w projekcie Java Maven? Przed kompresją plików PDF dodaj IronPDF do konfiguracji projektu Maven. Pełne instrukcje konfiguracji znajdziesz w [Przeglądzie Rozpoczęcia](https://ironpdf.com/java/docs/). - Aby zainstalować IronPDF w [projekcie](/java/docs/) [Maven](/java/docs/), dodaj repozytorium Maven `IronPDF` oraz zależność do pliku `pom.xml`. - Dodaj zależność do sekcji `<dependencies>`: ```xml //:path=/static-assets/pdf/content-code-examples/java/how-to/compress-pdf-java-tutorial/maven-dependency.xml <dependency> <groupId>com.ironsoftware</groupId> <artifactId>ironpdf</artifactId> <version>your_version_here</version> </dependency>
  • Zapisz pom.xml i uruchom mvn install, aby pobrać zależność IronPDF.

Po rozwiązaniu zależności można zaimportować i używać klas IronPDF w swoim projekcie. Najnowsza opublikowana wersja artefaktu Java IronPDF jest dostępna w serwisie Maven Central. Aby wdrożyć w produkcji, skonfiguruj swój klucz licencyjny przed uruchomieniem.

Jak skompresować plik PDF w Java?

IronPDF kompresuje pliki PDF, skupiając się na obrazach osadzonych w dokumencie. Metoda compressImages() przyjmuje liczbę całkowitą w zakresie od 0 do 100, przy czym niższe wartości powodują tworzenie mniejszych plików kosztem ostrości obrazu. Opcjonalny drugi parametr instruuje bibliotekę, aby zmniejszyła rozdzielczość obrazu w oparciu o rozmiar wyświetlenia na stronie PDF.

//:path=/static-assets/pdf/content-code-examples/java/how-to/compress-pdf-java-tutorial/compress-pdf-images.java
import com.ironsoftware.IronPDF.*;
import java.io.IOException;
import java.nio.file.Paths;

public class App {
    public static void main(String[] args) throws IOException {
        // Load the source PDF from disk
        String src = "C:\\Image based PDF.pdf";
        PdfDocument pdf = PdfDocument.fromFile(Paths.get(src));

        // First pass: compress images to 60% quality
        // Lower values produce smaller files with more visible quality loss
        pdf.compressImages(60);
        pdf.saveAs(Paths.get("assets/document_compressed.pdf"));

        // Second pass (optional): compress to 90% quality with resolution scaling
        // The second parameter scales image resolution down to match display size,
        // which can reduce file size further but may cause distortion in some PDFs
        pdf.compressImages(90, true);
        pdf.saveAs(Paths.get("C:\\Compressed.pdf"));
    }
}
//:path=/static-assets/pdf/content-code-examples/java/how-to/compress-pdf-java-tutorial/compress-pdf-images.java
import com.ironsoftware.IronPDF.*;
import java.io.IOException;
import java.nio.file.Paths;

public class App {
    public static void main(String[] args) throws IOException {
        // Load the source PDF from disk
        String src = "C:\\Image based PDF.pdf";
        PdfDocument pdf = PdfDocument.fromFile(Paths.get(src));

        // First pass: compress images to 60% quality
        // Lower values produce smaller files with more visible quality loss
        pdf.compressImages(60);
        pdf.saveAs(Paths.get("assets/document_compressed.pdf"));

        // Second pass (optional): compress to 90% quality with resolution scaling
        // The second parameter scales image resolution down to match display size,
        // which can reduce file size further but may cause distortion in some PDFs
        pdf.compressImages(90, true);
        pdf.saveAs(Paths.get("C:\\Compressed.pdf"));
    }
}
JAVA

Kod ładuje plik PDF z dysku i stosuje kompresję w dwóch przebiegach, aby zademonstrować różne strategie. Pierwsze wywołanie compressImages(60) zmniejsza jakość obrazu do 60% i zapisuje wynik. Drugie wywołanie używa 90% jakości, ale umożliwia skalowanie rozdzielczości, co dostosowuje wymiary pikseli każdego obrazu do jego widocznego obszaru na stronie.

Metoda compressImages() ma dwie sygnatury:

  • compressImages(int quality) — Przetwarza wszystkie osadzone obrazy do podanego poziomu jakości JPEG. Użyj wartości między 40 a 80, aby silnie zmniejszyć rozmiar przy zachowaniu rozpoznawalności obrazów.
  • compressImages(int quality, boolean scaleImageResolutionToVisibleSize) — Dodaje skalowanie rozdzielczości. Gdy true, biblioteka wykrywa obrazy renderowane w ułamku ich natywnej rozdzielczości i odpowiednio je zmniejsza. Ta opcja oferuje najbardziej agresywne zmniejszenie rozmiaru, ale nieznacznie zwiększa czas przetwarzania.

PoradyZastosuj wielokrotne przebiegi, aby precyzyjnie dostroić równowagę pomiędzy rozmiarem a jakością. Zacznij od umiarkowanego ustawienia jak 70%, sprawdź rozmiar wyjściowego pliku, a następnie zdecyduj, czy drugi przebieg przy niższej jakości jest uzasadniony.

Przeprowadzenie przebiegu kompresji na poziomie 60% dla PDF z dużą ilością obrazów zazwyczaj zmniejsza rozmiar pliku o 50-70% w zależności od źródłowych obrazów. Dokument składający się głównie z tekstu uzyska znacznie mniejsze zyski. Porównaj rozmiary plików przed i po w katalogu wyjściowym, aby ocenić wynik dla swoich konkretnych dokumentów.

W przypadku dokumentów, które oprócz kompresji wymagają innego przetwarzania, IronPDF obsługuje wyodrębnianie tekstu, wyodrębnianie obrazów oraz dzielenie plików PDF.

Jak wygląda oryginalny PDF?

Eksplorator plików pokazujący oryginalny plik PDF o rozmiarze 458 KB przed kompresją using IronPDF

Jakie są wyniki po kompresji?

Eksplorator plików pokazujący skompresowany plik wyjściowy PDF o zauważalnie zmniejszonym rozmiarze po zastosowaniu funkcji IronPDF compressImages przy jakości 60%

Jak wybrać odpowiednie ustawienie jakości kompresji?

Wybór odpowiedniego poziomu jakości wymaga zrównoważenia rozmiaru pliku z wiernością wizualną. Odpowiednie ustawienie zależy od celu dokumentu i wrażliwości osadzonych obrazów.

Poniżej tabela przedstawia praktyczne wytyczne dla typowych przypadków użycia:

Przewodnik poziomu jakości kompresji obrazów w IronPDF
Poziom jakości Przybliż. Redukcja rozmiaru Najlepsze dla
80–100% 10–30% Dokumenty do druku, dokumentacja medyczna, akta prawne
60–79% 40–60% Raporty wewnętrzne, pliki PDF do pobrania z internetu, załączniki e-mail
40–59% 60–75% Podglądy miniatur, dokumenty robocze, kopie archiwalne
Poniżej 40% 75%+ Zasadniczo zdegradowana jakość wyjściowa; zazwyczaj nie zalecana do dystrybucji

Skalowanie rozdzielczości najlepiej działa, gdy źródłowy plik PDF został złożony z obrazów o wysokiej rozdzielczości lub skanowanych stron, ale dokument jest przeznaczony tylko do wyświetlania na ekranie. W takich przypadkach skalowanie rozdzielczości może zmniejszyć rozmiar pliku bez zauważalnej zmiany jakości przy normalnych poziomach powiększenia. Aby poznać kontekst dotyczący standardów kodowania obrazów PDF, proszę odnieść się do dokumentacji formatu JPEG 2000 w Bibliotece Kongresu oraz dyskusji o kompresji obrazów PDF na Stack Overflow.

WażneUnikaj kompresji plików PDF, które zawierają podpisy cyfrowe. Modyfikowanie osadzonych obrazów zmienia binarną treść dokumentu, co unieważni istniejące podpisy.

Jak dodatkowo zmniejszyć rozmiar pliku PDF poza kompresją obrazów?

Kompresja obrazów radzi sobie z największym czynnikiem przyczyniającym się do rozmiarów plików w większości plików PDF, ale dodatkowe techniki mogą jeszcze bardziej zmniejszyć rozmiar po połączeniu. IronPDF obsługuje kilka podejść, które uzupełniają compressImages():

Usuń niepotrzebne strony. Usuwanie stron przed kompresją zmniejsza zarówno dane obrazowe, jak i nadmiarowej struktury stron. Użyj przykłady usuwania stron, aby najpierw usunąć puste lub zbędne strony.

Usuń adnotacje. Obiekty adnotacji dodają dane binarne do pliku. Usunięcie ich za pomocą API zarządzania adnotacjami przed zapisaniem może zauważalnie zmniejszyć rozmiar pliku w dokumentach z ciężkimi oznaczeniami.

Przetwarzaj dokumenty zbiorczo. W przypadku przepływów pracy, które kompresują wiele plików PDF, przechodź przez listę ścieżek plików i stosuj compressImages() w pętli. IronPDF obsługuje każdy dokument niezależnie, więc przetwarzanie wsadowe nie wymaga specjalnej konfiguracji — jako punkt wyjścia zobacz przykład kompresji plików PDF.

Dla szerszej dyskusji na temat strategii optymalizacji PDF, specyfikacja formatu pliku PDF w Bibliotece Kongresu dokumentuje elementy strukturalne, które przyczyniają się do rozmiaru plików i jak można je zmniejszyć.

Jakie są następne kroki przy kompresji plików PDF w Java?

Metoda IronPDF's compressImages() zapewnia praktyczny sposób na zmniejszenie rozmiaru plików PDF w aplikacjach Java. Jedno wywołanie metody z wartością jakości pokrywa większość przypadków użycia, a opcjonalny parametr skalowania rozdzielczości obsługuje źródłowe pliki z dużą ilością obrazów, które wymagają najbardziej spekulatywnej redukcji.

Rozpocznij od darmowego okresu próbnego, aby przetestować kompresję na własnych dokumentach:

Chcesz zobaczyć, co jeszcze potrafi IronPDF? Sprawdź pełną bibliotekę samouczków PDF Java tutaj: Przewodniki IronPDF Java Jak-To

Często Zadawane Pytania

Czym jest kompresja plików PDF i dłączego jest ważna?

Kompresja PDF zmniejsza rozmiar pliku poprzez ponowne próbkowanie wbudowanych obrazów i opcjonalnie dostosowanie ich rozdzielczości wyświetlania. Mniejsze pliki są łatwiejsze do wysyłania e-mailem, przesyłania i przechowywania — metoda compressImages() IronPDF obsługuje to w aplikacjach Java za pomocą jednego wywołania metody.

Jak szybko skompresować plik PDF w Javie?

Załaduj swój PDF z PdfDocument.fromFile(), wywołaj compressImages(60), aby zmniejszyć jakość obrazu do 60%, a następnie zapisz wynik z saveAs(). Te trzy linie obsługują podstawowy przepływ pracy kompresji.

Jakiego poziomu jakości kompresji powinienem używać dla moich plików PDF?

Wartość 60-70% zapewnia dobrą równowagę między rozmiarem pliku a jakością wizualną dla większości dokumentów. Użyj 80-100% dla jakości drukowania lub rejestrów prawnych, a 40-59% tylko dla szkiców lub miniatur, gdzie wierność obrazu nie jest kluczowa.

Czy mogę skompresować pliki PDF zawierające wiele połączonych dokumentów?

Tak, IronPDF kompresuje dowolny PDF niezależnie od tego, w jaki sposób został złożony. Metoda compressImages() kieruje się do wszystkich osadzonych obrazów w dokumencie, niezależnie od tego, czy pochodzą z jednego źródła, czy z wielu scalonych plików.

Czy kompresja wpływa na inne funkcje plików PDF, takie jak znaki wodne lub formularze?

Nie — kompresja IronPDF dotyczy tylko osadzonych obrazów rastrowych. Tekst, grafika wektorowa, znaki wodne, tła, zakładki i pola formularza są zachowywane w końcowym dokumencie.

Jakie środowiska wdrożeniowe obsługują kompresję PDF z IronPDF?

IronPDF obsługuje kompresję PDF na AWS Lambda, Azure Functions, Google Cloud i standardowych wdrożeniach serwerowych. Żaden zewnętrzny silnik renderowania ani przeglądarka PDF nie jest wymagana w żadnym z tych środowisk.

Co robi parametr scaleImageResolutionToVisibleSize?

Gdy ustawione na true, IronPDF wykrywa obrazy renderowane w ułamkowej rozdzielczości natywnej i skaluje ich wymiary pikseli w dół, aby dopasować do widocznego rozmiaru wyświetlania. Zmniejsza to bardziej rozmiar pliku niż sama redukcja jakości, ale nieznacznie wydłuża czas przetwarzania.

Czy skompresowanie PDF unieważnia jego podpisy cyfrowe?

Tak. Zmiana osadzonych obrazów zmienia binarną zawartość dokumentu, co łamie istniejące podpisy cyfrowe. Skompresuj pliki PDF przed dodaniem podpisów, a nie po.

Curtis Chau
Autor tekstów technicznych

Curtis Chau posiada tytuł licencjata z informatyki (Uniwersytet Carleton) i specjalizuje się w front-endowym rozwoju, z ekspertką w Node.js, TypeScript, JavaScript i React. Pasjonuje się tworzeniem intuicyjnych i estetycznie przyjemnych interfejsów użytkownika, Curtis cieszy się pracą z nowoczesnymi frameworkami i tworzeniem dobrze zorganizowanych, atrakcyjnych wizualnie podrę...

Czytaj więcej
Gotowy, aby rozpocząć?
Wersja: 2026.5 just released
Still Scrolling Icon

Wciąż przewijasz?

Czy chcesz szybko dowodu?
Uruchom przykład i zobacz, jak Twój kod HTML zamienia się w plik PDF.