Różne organizacje używają plików PDF do bezpiecznej i zorganizowanej wymiany informacji. Jednak czasami pliki PDF stają się ogromne dzięki osadzonej zawartości, takiej jak obrazy, filmy, rysunki itp. Możesz łatwo zoptymalizować lub skompresować taki rozmiar pliku PDF bez uszczerbku dla jakości. Przyjrzyjmy się następującym scenariuszom kompresji i optymalizacji rozmiaru plików PDF, które możesz zastosować w swoich aplikacjach Java:

Interfejs API optymalizacji i kompresji plików PDF — instalacja

Możesz wykorzystać wydajne i niezawodne procedury API Aspose.PDF for Java do optymalizacji lub kompresji ogromnych plików PDF przy zachowaniu tej samej jakości. Możesz pobrać pliki JAR z Downloads lub z Maven configurations w swoim projekcie.

Zoptymalizuj dokumenty PDF na potrzeby Internetu za pomocą języka Java

Dokument PDF można zoptymalizować, gdy trzeba go użyć na swoich stronach internetowych. Ta optymalizacja jest pomocna w jak najszybszym wyświetlaniu pierwszej strony dokumentu PDF. Zoptymalizowany plik PDF można uzyskać, wykonując poniższe czynności:

  1. Plik PDF o otwartym kodzie źródłowym
  2. Zadzwoń do metoda optymalizacji, aby uzyskać optymalizację PDF
  3. Zapisz wyjściowy plik PDF

Poniższy fragment kodu jest przykładem optymalizacji dokumentów PDF na potrzeby Internetu w środowisku Java:

// Otwórz dokument
Document pdfDocument = new Document("Original.pdf");

// Zoptymalizuj pod kątem internetu
pdfDocument.optimize();

// Zapisz dokument wyjściowy
pdfDocument.save("Optimized_output.pdf");

Kompresuj lub optymalizuj rozmiar plików PDF zawierających obrazy za pomocą języka Java

Tutaj będziemy głównie omawiać scenariusze, w których pliki PDF zawierają wiele obrazów, a zatem mają ogromne rozmiary. Na przykład plik PDF zawierający rysunki różnych modeli samolotów i informacje o każdej części, mniejszej lub większej, zawarte jako obrazy lub obrazy wszystkich komponentów. Ponadto wiele profesjonalnych dokumentów może zawierać obrazy jako główne artefakty pliku. W takich scenariuszach możemy skompresować pliki PDF za pomocą następujących metod:

Zmniejszanie, kompresowanie i zmiana rozmiaru wszystkich obrazów przy użyciu języka Java

Możesz zminimalizować rozmiar pliku PDF zawierającego wiele obrazów, zmniejszając, kompresując i zmieniając rozmiar obrazów. Poprawa rozmiaru może być zauważalna, ponieważ większość rozmiaru pliku zajmują obrazy, które teraz zamierzamy zmniejszyć. Aby zmniejszyć, skompresować i zmienić rozmiar obrazów lub obrazów w pliku PDF, wykonaj poniższe czynności:

  1. Załaduj wejściowy plik PDF
  2. Zainicjuj obiekt OptimizationOptions.
  3. Ustaw jakość i rozdzielczość obrazu
  4. Wywołaj metodę optimizeResources.
  5. Zapisz wyjściowy dokument PDF

Poniższy fragment kodu pokazuje, jak zmniejszać lub kompresować obrazy w celu zmniejszenia i zminimalizowania rozmiaru pliku PDF za pomocą języka Java:

// Załaduj dokument wejściowy
Document doc = new Document(dataDir + "Test.pdf");

// Zainicjuj obiekt OptimizationOptions
OptimizationOptions opt = new OptimizationOptions();

// Włącz kompresję obrazu
// Ustaw jakość i rozdzielczość obrazów w pliku PDF
opt.getImageCompressionOptions().setCompressImages(true);
opt.getImageCompressionOptions().setImageQuality(10);
opt.getImageCompressionOptions().setMaxResolution(150);
opt.getImageCompressionOptions().setResizeImages(true);
doc.optimizeResources(opt);

// Zapisz zaktualizowany plik
doc.save(dataDir + "compressingPDFWithImages_out.pdf");

Usuwanie osadzonych czcionek, nieużywanych strumieni i łączenie zduplikowanych strumieni przy użyciu języka Java

Kiedy musisz zmniejszyć rozmiar pliku PDF, każdy bajt ma znaczenie. Czcionki osadzone mogą pomóc zmniejszyć rozmiar pliku przy użyciu różnych metod. Na przykład można cofnąć osadzenie wszystkich czcionek lub zachować tylko podzbiór znaków czcionek używanych w pliku PDF. Byłoby to częściowe usunięcie czcionek, które nadal pomogłoby w zminimalizowaniu rozmiaru pliku. Co więcej, możesz usunąć nieużywane strumienie lub połączyć zduplikowane strumienie, aby zaoszczędzić miejsce. Te optymalizacje PDF znacznie zmniejszą rozmiar pliku. Musisz wykonać następujące kroki, aby zoptymalizować i zmniejszyć rozmiar pliku PDF:

  1. Załaduj wejściowy dokument PDF
  2. Zainicjuj obiekt klasy OptimizationOptions.
  3. Usuń osadzanie wszystkich czcionek lub podzbioru czcionek
  4. Połącz zduplikowane strumienie
  5. Usuń nieużywane strumienie

Poniższy kod wyjaśnia, jak kompresować pliki PDF w celu optymalizacji, zmniejszania i minimalizowania rozmiaru dokumentów PDF:

Document doc = new Document(dataDir + "Test.pdf");
OptimizationOptions opt = new OptimizationOptions();

// Zarówno
// Usuń osadzanie wszystkich czcionek w pliku PDF
opt.setUnembedFonts(true);

//LUB
// zachowaj tylko osadzone czcionki dla używanych znaków
opt.setSubsetFonts(true);

// połącz zduplikowane strumienie
opt.setLinkDuplcateStreams(false);

// Usuń nieużywane strumienie
opt.setRemoveUnusedStreams(false);

// Usuń nieużywane przedmioty
opt.setRemoveUnusedObjects(false);

doc.optimizeResources(opt);

// Zapisz zaktualizowany plik
doc.save(dataDir + "compressingPDF.pdf");

Do tej pory omówiliśmy podejścia optymalizacyjne głównie dla plików PDF z obrazami. Przejdźmy teraz do kolejnych sposobów optymalizacji plików PDF.

Kompresuj lub zmniejszaj rozmiar dokumentu PDF za pomocą języka Java

Pliki PDF często zawierają adnotacje, edytowalne pola formularzy i artefakty kolorów, które łącznie zajmują miejsce. Przyjrzyjmy się następującym procedurom kompresji rozmiaru pliku PDF.

Usuwanie lub spłaszczanie adnotacji w celu zmniejszenia rozmiaru za pomocą języka Java

Pliki PDF mogą zawierać wiele adnotacji. Na przykład znak wodny, komentarze, kształty itp. Możesz usunąć adnotacje, jeśli nie są już potrzebne, lub uzupełnić adnotacje, jeśli dalsze zmiany nie są potrzebne. Wykonaj poniższe czynności, aby usunąć lub spłaszczyć adnotacje, aby zoptymalizować rozmiar pliku PDF:

  1. Dokument PDF typu open source
  2. Przejrzyj każdą stronę
  3. Spłaszcz lub usuń adnotacje
  4. Zapisz wyjściowy dokument PDF

Poniższy fragment kodu jest przykładem usuwania lub spłaszczania adnotacji w dokumentach PDF przy użyciu języka Java:

// Otwórz dokument
Document pdfDocument = new Document(dataDir + "OptimizeDocument.pdf");

// Przejrzyj każdą stronę i adnotację
for (Page page : pdfDocument.getPages())
{
   for (Annotation annotation : page.getAnnotations())
    {
        // Spłaszcz adnotację
        annotation.flatten();
        
        // LUB usuń adnotację
        // page.getAnnotations().delete(adnotacja);        
    }
}
// Zapisz zoptymalizowany dokument PDF
pdfDocument.save(dataDir + "OptimizeDocument_out.pdf");

Usuwanie pól formularzy w celu zminimalizowania rozmiaru pliku PDF za pomocą języka Java

Formularze PDF do wypełnienia są powszechne tam, gdzie wymagane jest przesyłanie danych na dużą skalę. Po przesłaniu danych pola formularzy, które można wypełnić, można usunąć, aby zoptymalizować i zminimalizować rozmiar pliku PDF. Aby usunąć pola formularza, wykonaj poniższe czynności:

  1. Załaduj wejściowy dokument PDF
  2. Sprawdź pola formularza w dokumencie PDF
  3. Iteruj przez każde pole i spłaszcz je
  4. Zapisz zaktualizowany skompresowany plik PDF
// Załaduj źródłowy formularz PDF
Document doc = new Document(dataDir + "input.pdf");

// Spłaszcz pola formularza
if (doc.getForm().getFields().length > 0)
{
   for (Field item : doc.getForm().getFields())
    {
        item.flatten();
    }
}

dataDir = dataDir + "FlattenForms_out.pdf";
// Zapisz zaktualizowany dokument
doc.save(dataDir);

Konwertuj przestrzeń kolorów RGB na skalę szarości w celu kompresji i optymalizacji plików PDF za pomocą języka Java

Większość plików PDF zawiera treści tekstowe, które można dobrze przedstawić również w przestrzeni kolorów w skali szarości. Co więcej, gdy celem i priorytetem jest zapisanie każdego bajtu, nawet obrazy można przekonwertować na skalę szarości, ponieważ nacisk kładziony jest na archiwizację danych. Możesz wykonać poniższe kroki, aby skompresować i zoptymalizować rozmiar pliku PDF, konwertując przestrzeń kolorów RGB na skalę szarości:

  1. Uzyskaj dostęp do źródłowego dokumentu PDF
  2. Zainicjuj instancję RgbToDeviceGrayConversionStrategy.
  3. Konwertuj przestrzeń kolorów każdego koloru na skalę szarości
  4. Zapisz zoptymalizowany plik PDF

Poniższy fragment kodu pokazuje, jak skompresować i zoptymalizować rozmiar pliku PDF poprzez zmianę przestrzeni kolorów w środowisku Java:

// Załaduj wejściowy dokument PDF
Document document = new Document("input.pdf");

// Zainicjuj instancję RgbToDeviceGrayConversionStrategy
RgbToDeviceGrayConversionStrategy strategy = new RgbToDeviceGrayConversionStrategy();
for (int idxPage = 1; idxPage <= document.getPages().size(); idxPage++) {
	Page page = document.getPages().get_Item(idxPage);
        
        // Konwertuj przestrzeń kolorów każdej strony na skalę szarości
	strategy.convert(page);
}
// Zapisz wyjściowy dokument PDF
document.save("output.pdf");

Wniosek

W tym artykule omówiliśmy różne sposoby i podejścia do optymalizacji i kompresji plików PDF w celu zmniejszenia rozmiaru. Przede wszystkim zoptymalizowaliśmy rozmiar pliku PDF dla Internetu przy użyciu języka Java. Następnie nauczyliśmy się zmniejszać, kompresować i zmieniać rozmiar obrazów w pliku PDF zawierającym kilka obrazów. Co więcej, zbadaliśmy również pracę z czcionkami, strumieniami, adnotacjami, polami formularzy, a także konwersję przestrzeni kolorów dokumentu PDF na skalę szarości, aby można było utworzyć plik PDF o mniejszej wielkości, ale o tej samej jakości przy użyciu języka Java. Ponadto, w przypadku jakichkolwiek pytań związanych z tym tematem, możesz skontaktować się z nami za pośrednictwem Bezpłatne forum pomocy.

Zobacz też

Informacje: Korzystając z nowej aplikacji internetowej firmy Aspose, możesz przekształcić zestaw obrazów w wideo. Możesz też sprawdzić inną usługę, która pobiera dźwięki z filmów.