IRONSOFTWAREHOME

Jak skompresować pliki PDF w Java

Curtis Chau
Curtis Chau
Updated: 9 maja 2026

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
//: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"));
Text

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 lub potrzebujesz obsłużyć scalane dokumenty, kompresja jest niezbędnym krokiem przed dystrybucją.

Co to jest biblioteka IronPDF Java PDF?

IronPDF to biblioteka PDF dla Java, która programowo tworzy, czyta i manipuluje dokumentami PDF. Biblioteka obsługuje konwersję HTML do 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, Azure Functions i 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, warstwy tła i zakładki, 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.

  • Aby zainstalować IronPDF w projekcie Maven, dodaj repozytorium Maven i zależność IronPDF do pliku pom.xml.

  • Dodaj zależność do sekcji <dependencies>:

    //: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>
    XML
  • Zapisz swój pom.xml i uruchom mvn install, aby pobrać zależność IronPDF.

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

Jak skompresować plik PDF w Java?

IronPDF kompresuje pliki PDF, celujac w osadzone obrazy wewnatrz dokumentu. Metoda compressImages() przyjmuje liczbe calkowita od 0 do 100, gdzie nizsze wartosci daja mniejsze pliki kosztem ostrosci 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"));
    }
}
Java

Kod ładuje plik PDF z dysku i stosuje kompresję w dwóch przebiegach, aby zademonstrować różne strategie. Pierwsze wywolanie compressImages(60) redukuje jakosc 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) — Resampluje wszystkie osadzone obrazy do okreslonego poziomu jakosci 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 rozdzielczosci. Gdy true, biblioteka wykrywa obrazy, ktore sa renderowane na czesci swojej natywnej rozdzielczosci i odpowiednio je skaluje. Ta opcja oferuje najbardziej agresywne zmniejszenie rozmiaru, ale nieznacznie zwiększa czas przetwarzania.
Porady: Zastosuj 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.

Dla dokumentow wymagajacych innych przetworzen oprocz kompresji, IronPDF obsluguje wyodrebnianie tekstu, wyodrebnianie obrazow, i dzielenie PDF-ow.

Jak wygląda oryginalny PDF?

Eksplorator plików pokazujący oryginalny plik PDF o rozmiarze 458 KB przed kompresją z użyciem IronPDF

Jakie są wyniki po kompresji?

Eksplorator plików pokazujący skompresowany plik PDF z zauważalnie zmniejszonym rozmiarem po zastosowaniu IronPDF compressImages przy 60% jakości

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ściPrzybliż. Redukcja rozmiaruNajlepsze 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żne: Unikaj 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 obsluguje kilka podejsc, ktore uzupelniaja 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 masowo. Dla procesow kompresujacych wiele PDF-ow, iteruj przez liste sciezek plikow i zastosuj compressImages() w petli. IronPDF obsluguje kazdy dokument niezaleznie, wiec przetwarzanie wsadowe nie wymaga specjalnej konfiguracji — zobacz przyklad kompresji pdf dla punktu wyjscia.

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 compressImages() zapewnia praktyczny sposob na zmniejszenie rozmiaru pliku 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:

Gotowy, aby zobaczyc, 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 dlaczego 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ęczników.

...
Czytaj więcej

Gotowy, aby rozpocząć?

Wersja:2026.6właśnie wydany

Odbierz swój BEZPŁATNY

30-dniowy klucz próbny natychmiast.

bullet_checkedNie wymaga karty kredytowej ani tworzenia konta
test_punktorówTestuj w produkcji
bez znaków wodnych
kalendarz_punktorów30 dni w pełni
funkcjonalny produkt
wsparcie_punktorów24/5 wsparcie techniczne
w trakcie okresu próbnego
Otrzymaj swój darmowy Klucz Próbny na 30 dni natychmiast.
Nie wymaga karty kredytowej ani tworzenia konta
Biblioteka Java Maven dla PDF
Zainstaluj za pomocą Maven

Wersja: 2026.6

<dependency>
   <groupId>com.ironsoftware</groupId>
   <artifactId>ironpdf</artifactId>
   <version>2026.6.1</version>
</dependency>
https://central.sonatype.com/artifact/com.ironsoftware/ironpdf/2026.6.1
lub
Plik JAR PDF Java
Pobierz JAR

Wersja: 2026.6

Pobierz teraz

Ręcznie zainstaluj w swoim projekcie

Key in blue circle

Uzyskaj natychmiast swój darmowy 30-dniowy Klucz Testowy.

Brak ograniczeń. 100% dostępności. Bez karty kredytowej.

bullet_checkedNie wymaga karty kredytowej ani tworzenia kontaBrak ograniczeń. 100% dostępności. Bez karty kredytowej.
  • Logo Aetna
  • Logo NASA
  • Logo GE
  • Logo Porsche
  • Logo USDA
  • Logo Qatar
Join Millions of Engineers who’ve tried IronPDF
Zarezerwuj swoje darmowe Demo na żywo
Booking Badge

Zaufane przez miliony inżynierów na całym świecie

Logotypy klientów Iron Software
Otrzymaj swoje Konsultacja Bez Zobowiązań
Wypełnij poniższy formularz lub wyślij e-mail na sales@ironsoftware.com
Twoje dane zawsze będą utrzymywane w tajemnicy.
Zaufane przez miliony inżynierów na całym świecie
Logotypy klientów Iron Software
Otrzymaj swój darmowy Klucz Próbny na 30 dni natychmiast.
Nie wymaga karty kredytowej ani tworzenia konta