Různé organizace používají soubory PDF pro bezpečnou a organizovanou výměnu informací. Někdy se však soubory PDF zvětší díky vloženému obsahu, jako jsou obrázky, videa, kresby atd. Takovou velikost souboru PDF můžete snadno optimalizovat nebo komprimovat bez jakéhokoli kompromisu v kvalitě. Pojďme prozkoumat následující scénáře komprese a optimalizace velikosti PDF, které můžete začlenit do svých aplikací Java:

API pro optimalizaci velikosti a komprese PDF – instalace

Můžete využít efektivní a spolehlivé rutiny Aspose.PDF for Java API pro optimalizaci nebo kompresi velkých souborů PDF při zachování stejné kvality. Soubory JAR si můžete stáhnout z Downloads nebo pomocí Maven configurations ve vašem projektu.

Optimalizujte dokumenty PDF pro web pomocí Java

Dokument PDF lze optimalizovat, když je potřebujete použít na svých webových stránkách. Tato optimalizace je užitečná pro co nejrychlejší zobrazení první stránky dokumentu PDF. Optimalizovaný soubor PDF můžete získat podle následujících kroků:

  1. Otevřený zdrojový soubor PDF
  2. Volejte metodu optimalizace pro optimalizaci PDF
  3. Uložte výstupní soubor PDF

Níže uvedený fragment kódu je příkladem optimalizace dokumentů PDF pro web ve vašem prostředí Java:

// Otevřete dokument
Document pdfDocument = new Document("Original.pdf");

// Optimalizovat pro web
pdfDocument.optimize();

// Uložit výstupní dokument
pdfDocument.save("Optimized_output.pdf");

Komprimujte nebo optimalizujte velikost PDF obsahujících obrázky pomocí Java

Zde budeme diskutovat především o scénářích, kdy soubory PDF obsahují velké množství obrázků, a proto mají obrovskou velikost. Například soubor PDF obsahující výkres pro různé modely letadel a informace o každé části, menší nebo větší, zahrnuté jako obrázky nebo obrázky všech součástí. Navíc mnoho profesionálních dokumentů může obsahovat obrázky jako hlavní artefakty souboru. V takových scénářích můžeme komprimovat soubory PDF pomocí následujících postupů:

Zmenšení, komprese a změna velikosti všech obrázků pomocí Java

Velikost souboru PDF obsahujícího mnoho obrázků můžete minimalizovat zmenšením, kompresí a změnou velikosti obrázků. Zlepšení velikosti může být patrné, protože většinu velikosti souboru pokrývají obrázky, které nyní hodláme zmenšit. Chcete-li obrázky nebo obrázky v souboru PDF zmenšit, komprimovat a změnit jejich velikost, musíte postupovat podle následujících kroků:

  1. Načíst vstupní soubor PDF
  2. Inicializujte objekt OptimizationOptions
  3. Nastavte kvalitu a rozlišení obrazu
  4. Zavolejte metodu optimizeResources
  5. Uložte výstupní dokument PDF

Níže uvedený úryvek kódu ukazuje, jak zmenšit nebo komprimovat obrázky, aby se zmenšila a minimalizovala velikost souboru PDF pomocí Java:

// Načíst vstupní dokument
Document doc = new Document(dataDir + "Test.pdf");

// Inicializujte objekt OptimizationOptions
OptimizationOptions opt = new OptimizationOptions();

// Povolit kompresi obrazu
// Nastavte kvalitu a rozlišení obrázků v souboru PDF
opt.getImageCompressionOptions().setCompressImages(true);
opt.getImageCompressionOptions().setImageQuality(10);
opt.getImageCompressionOptions().setMaxResolution(150);
opt.getImageCompressionOptions().setResizeImages(true);
doc.optimizeResources(opt);

// Uložte aktualizovaný soubor
doc.save(dataDir + "compressingPDFWithImages_out.pdf");

Odstranění vložených písem, nepoužívaných streamů a propojení duplicitních streamů pomocí Java

Když potřebujete zmenšit velikost souboru PDF, záleží na každém bajtu. Vložená písma mohou pomoci snížit velikost souboru pomocí různých přístupů. Můžete například buď zrušit vložení všech písem, nebo si můžete ponechat pouze podmnožinu znaků písem, které se používají v souboru PDF. Jednalo by se o částečné zrušení vkládání písem, které by stále pomohlo minimalizovat velikost souboru. Navíc můžete odstranit nepoužívané streamy nebo propojit duplicitní streamy, abyste ušetřili další místo. Tyto optimalizace PDF značně sníží velikost souboru. Chcete-li optimalizovat a zmenšit velikost souboru PDF, musíte provést následující kroky:

  1. Načíst vstupní PDF dokument
  2. Inicializujte objekt třídy OptimizationOptions
  3. Buď zrušte vložení všech písem nebo podmnožiny písem
  4. Propojte duplicitní streamy
  5. Odstraňte nepoužívané streamy

Následující kód vysvětluje, jak komprimovat soubory PDF pro optimalizaci, zmenšení a minimalizaci velikosti dokumentů PDF:

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

// Buď
// Zrušte vložení všech písem v PDF
opt.setUnembedFonts(true);

//NEBO
// ponechejte vložená písma pouze pro použité znaky
opt.setSubsetFonts(true);

// propojit duplicitní streamy
opt.setLinkDuplcateStreams(false);

// Odstraňte nepoužívané streamy
opt.setRemoveUnusedStreams(false);

// Odstraňte nepoužívané předměty
opt.setRemoveUnusedObjects(false);

doc.optimizeResources(opt);

// Uložte aktualizovaný soubor
doc.save(dataDir + "compressingPDF.pdf");

Dosud jsme diskutovali o optimalizačních přístupech především pro soubory PDF s obrázky. Nyní přistoupíme k několika dalším způsobům optimalizace PDF.

Komprimujte nebo zmenšete velikost dokumentu PDF pomocí Java

Soubory PDF často obsahují anotace, upravitelná pole formulářů a barevné artefakty, které společně zabírají místo. Podívejme se na následující postupy pro kompresi velikosti souboru PDF.

Odebrání nebo sloučení anotací pro zmenšení velikosti pomocí Java

Soubory PDF mohou obsahovat mnoho anotací. Například vodoznak, komentáře, tvary atd. Poznámky můžete odstranit, pokud již nejsou vyžadovány, nebo je můžete zvětšit, pokud nejsou potřeba žádné další změny. Při odstraňování nebo sloučení anotací pro optimalizaci velikosti souboru PDF postupujte podle následujících kroků:

  1. Open source PDF dokument
  2. Procházejte každou stránku
  3. Sloučit nebo smazat anotace
  4. Uložte výstupní dokument PDF

Níže uvedený úryvek kódu je příklad, jak odstranit nebo sloučit anotace v dokumentech PDF pomocí Java:

// Otevřete dokument
Document pdfDocument = new Document(dataDir + "OptimizeDocument.pdf");

// Procházejte každou stránku a anotaci
for (Page page : pdfDocument.getPages())
{
   for (Annotation annotation : page.getAnnotations())
    {
        // Buď anotaci zploštit
        annotation.flatten();
        
        // NEBO anotaci smažte
        // page.getAnnotations().delete(anotace);        
    }
}
// Uložit optimalizovaný dokument PDF
pdfDocument.save(dataDir + "OptimizeDocument_out.pdf");

Odebráním polí formuláře pro minimalizaci velikosti souboru PDF pomocí Java

Vyplnitelné formuláře PDF jsou běžné tam, kde potřebujete odeslat data ve velkém měřítku. Po odeslání dat lze vyplnit pole formuláře odstranit, aby se optimalizovala a minimalizovala velikost souboru PDF. Chcete-li odstranit pole formuláře, musíte provést následující kroky:

  1. Načíst vstupní PDF dokument
  2. Zkontrolujte pole formuláře v dokumentu PDF
  3. Iterujte přes každé pole a vyrovnejte je
  4. Uložte aktualizovaný komprimovaný soubor PDF
// Načíst zdrojový formulář PDF
Document doc = new Document(dataDir + "input.pdf");

// Vyrovnat pole formuláře
if (doc.getForm().getFields().length > 0)
{
   for (Field item : doc.getForm().getFields())
    {
        item.flatten();
    }
}

dataDir = dataDir + "FlattenForms_out.pdf";
// Uložte aktualizovaný dokument
doc.save(dataDir);

Převeďte barevný prostor RGB na stupně šedi pro kompresi a optimalizaci PDF pomocí Java

Většina souborů PDF obsahuje textový obsah, který lze dobře znázornit také v barevném prostoru stupňů šedi. Navíc, když je účelem a prioritou uložit každý bajt, lze dokonce i obrázky převést do odstínů šedi, protože důraz je kladen na archivaci dat. Chcete-li komprimovat a optimalizovat velikost souboru PDF převedením barevného prostoru RGB na stupně šedi, můžete postupovat podle následujících kroků:

  1. Přístup ke zdrojovému dokumentu PDF
  2. Inicializujte instanci RgbToDeviceGrayConversionStrategy
  3. Převeďte barevný prostor každé barvy na stupně šedi
  4. Uložit výstupní optimalizovaný soubor PDF

Následující fragment kódu ukazuje, jak komprimovat a optimalizovat velikost PDF změnou barevného prostoru v prostředí Java:

// Načíst vstupní PDF dokument
Document document = new Document("input.pdf");

// Inicializujte instanci RgbToDeviceGrayConversionStrategy
RgbToDeviceGrayConversionStrategy strategy = new RgbToDeviceGrayConversionStrategy();
for (int idxPage = 1; idxPage <= document.getPages().size(); idxPage++) {
	Page page = document.getPages().get_Item(idxPage);
        
        // Převeďte barevný prostor každé stránky na stupně šedi
	strategy.convert(page);
}
// Uložit výstupní PDF dokument
document.save("output.pdf");

Závěr

V tomto článku jsme se zabývali různými způsoby a přístupy k optimalizaci a komprimaci souborů PDF pro zmenšení velikosti. Nejprve jsme optimalizovali velikost souboru PDF pro web pomocí Java. Potom jsme se naučili zmenšovat, komprimovat a měnit velikost obrázků v souboru PDF obsahujícím několik obrázků. Kromě toho jsme také prozkoumali práci s fonty, proudy, anotacemi, poli formulářů a také převod barevného prostoru dokumentu PDF na stupně šedi, aby bylo možné pomocí Java vytvořit soubor PDF s menší velikostí, ale stejnou kvalitou. Kromě toho nás v případě jakéhokoli dotazu souvisejícího s tímto tématem můžete kontaktovat prostřednictvím Free Support Forum.

Viz také

Informace: Pomocí nové online webové aplikace od Aspose můžete přeměnit sadu obrázků na video. Můžete se také podívat na jinou službu, která extrahuje zvuky z videí.