Olika organisationer använder PDF-filer för säkert och organiserat utbyte av information. Men ibland blir PDF-filer enorma i storlek på grund av inbäddat innehåll som bilder, videor, ritningar etc. Du kan enkelt optimera eller komprimera en sådan PDF-filstorlek utan att kompromissa med kvaliteten. Låt oss utforska följande scenarier för PDF-storlekskomprimering och optimering som du kan integrera i dina Java-applikationer:

PDF-storleksoptimering och komprimerings-API – Installation

Du kan använda de effektiva och pålitliga rutinerna i Aspose.PDF for Java API för att optimera eller komprimera stora PDF-filer samtidigt som du behåller samma kvalitet. Du kan ladda ner JAR-filerna från Nedladdningar eller med Maven-konfigurationer i ditt projekt.

Optimera PDF-dokument för webben med Java

PDF-dokument kan optimeras när du behöver använda dem på dina webbsidor. Denna optimering är till hjälp för att visa den första sidan i PDF-dokumentet så snabbt som möjligt. Du kan få den optimerade PDF-filen genom att följa stegen nedan:

  1. PDF-fil med öppen källkod
  2. Ring optimize method för PDF-optimering
  3. Spara den utgående PDF-filen

Kodavsnittet nedan är ett exempel på hur du kan optimera PDF-dokument för webben i din Java-miljö:

// Öppna dokumentet
Document pdfDocument = new Document("Original.pdf");

// Optimera för webben
pdfDocument.optimize();

// Spara utdatadokument
pdfDocument.save("Optimized_output.pdf");

Komprimera eller optimera storleken på PDF-bilder med hjälp av Java

Här kommer vi främst att diskutera scenarierna där PDF-filer innehåller många bilder och därmed är enorma i storlek. Till exempel en PDF-fil som innehåller ritningar för olika flygplansmodeller och information om varje del, mindre eller större, inkluderad som bilder eller bilder av alla komponenter. Dessutom kan många professionella dokument innehålla bilder som viktiga artefakter av filen. I sådana scenarier kan vi komprimera PDF-filerna med följande tillvägagångssätt:

Krympa, komprimera och ändra storlek på alla bilder med Java

Du kan minimera storleken på en PDF-fil som innehåller många bilder genom att krympa, komprimera och ändra storlek på bilderna. Storleksförbättringarna kan vara märkbara eftersom det mesta av filstorleken täcks av bilderna som vi nu tänker krympa. Du måste följa stegen nedan för att krympa, komprimera och ändra storlek på bilderna eller bilderna i en PDF-fil:

  1. Ladda inmatad PDF-fil
  2. Initiera objektet OptimizationOptions
  3. Ställ in bildkvalitet och upplösning
  4. Anropa metoden optimizeResources
  5. Spara det utgående PDF-dokumentet

Kodavsnittet nedan visar hur man förminskar eller komprimerar bilder för att minska och minimera PDF-filstorleken med Java:

// Ladda inmatningsdokument
Document doc = new Document(dataDir + "Test.pdf");

// Initiera OptimizationOptions-objekt
OptimizationOptions opt = new OptimizationOptions();

// Aktivera bildkomprimering
// Ställ in kvaliteten och upplösningen för bilder i PDF-fil
opt.getImageCompressionOptions().setCompressImages(true);
opt.getImageCompressionOptions().setImageQuality(10);
opt.getImageCompressionOptions().setMaxResolution(150);
opt.getImageCompressionOptions().setResizeImages(true);
doc.optimizeResources(opt);

// Spara den uppdaterade filen
doc.save(dataDir + "compressingPDFWithImages_out.pdf");

Ta bort inbäddade teckensnitt, oanvända strömmar och länka dubbletter av strömmar med Java

När du behöver minska PDF-filstorleken är varje byte viktig. Inbäddade teckensnitt kan hjälpa till att minska filstorleken med olika tillvägagångssätt. Till exempel kan du antingen ta bort alla teckensnitt eller så kan du bara behålla den delmängd av teckensnittstecken som används i PDF-filen. Det skulle vara en partiell inbäddning av teckensnitt som fortfarande skulle hjälpa till att minimera filstorleken. Dessutom kan du ta bort oanvända strömmar eller länka dubbletter av strömmar för att spara ytterligare utrymme. Dessa PDF-optimeringar kommer att minska filstorleken avsevärt. Du måste följa följande steg för att optimera och minska PDF-filstorleken:

  1. Ladda inmatat PDF-dokument
  2. Initiera klassobjektet OptimizationOptions
  3. Antingen bädda in alla teckensnitt eller underuppsättningen av teckensnitt
  4. Länka dubbletter av strömmar
  5. Ta bort oanvända strömmar

Följande kod utvecklar hur man komprimerar PDF-filer för att optimera, minska och minimera storleken på PDF-dokument:

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

// Antingen
// Ta bort alla teckensnitt i PDF
opt.setUnembedFonts(true);

//ELLER
// behåll bara inbäddade teckensnitt för använda tecken
opt.setSubsetFonts(true);

// länka dubbletter av strömmar
opt.setLinkDuplcateStreams(false);

// Ta bort oanvända strömmar
opt.setRemoveUnusedStreams(false);

// Ta bort oanvända föremål
opt.setRemoveUnusedObjects(false);

doc.optimizeResources(opt);

// Spara den uppdaterade filen
doc.save(dataDir + "compressingPDF.pdf");

Hittills har vi diskuterat optimeringsmetoderna huvudsakligen för PDF-filer med bilder. Låt oss nu fortsätta med några fler sätt för PDF-optimering.

Komprimera eller minska PDF-dokumentstorleken med Java

PDF-filer innehåller ofta anteckningar, redigerbara formulärfält och färgartefakter som tillsammans tar upp plats. Låt oss utforska följande procedurer för att komprimera PDF-filstorlek.

Ta bort eller förenkla kommentarer för att minska storleken med Java

PDF-filer kan innehålla många kommentarer. Till exempel vattenstämpel, kommentarer, former, etc. Du kan ta bort kommentarer om de inte behövs längre eller göda kommentarerna om inga ytterligare ändringar behövs. Följ stegen nedan för att ta bort eller förenkla kommentarer för att optimera PDF-filstorleken:

  1. PDF-dokument med öppen källkod
  2. Iterera genom varje sida
  3. Platta till eller ta bort kommentarer
  4. Spara det utgående PDF-dokumentet

Kodavsnittet nedan är ett exempel på hur man tar bort eller plattar ut kommentarer i PDF-dokument med Java:

// Öppna dokumentet
Document pdfDocument = new Document(dataDir + "OptimizeDocument.pdf");

// Iterera igenom varje sida och anteckning
for (Page page : pdfDocument.getPages())
{
   for (Annotation annotation : page.getAnnotations())
    {
        // Antingen platta till anteckningen
        annotation.flatten();
        
        // ELLER radera anteckningen
        // page.getAnnotations().delete(annotation);        
    }
}
// Spara optimerat PDF-dokument
pdfDocument.save(dataDir + "OptimizeDocument_out.pdf");

Ta bort formulärfält för att minimera PDF-filstorleken med Java

Ifyllbara PDF-formulär är vanliga där du behöver lämna in data i stor skala. Efter inlämning av data kan ifyllbara formulärfält tas bort för att optimera och minimera PDF-filstorleken. Du måste följa stegen nedan för att ta bort formulärfält:

  1. Ladda inmatat PDF-dokument
  2. Sök efter formulärfält i PDF-dokument
  3. Iterera genom varje fält och platta till det
  4. Spara den uppdaterade komprimerade PDF-filen
// Ladda käll-PDF-formulär
Document doc = new Document(dataDir + "input.pdf");

// Platta ut formulärfält
if (doc.getForm().getFields().length > 0)
{
   for (Field item : doc.getForm().getFields())
    {
        item.flatten();
    }
}

dataDir = dataDir + "FlattenForms_out.pdf";
// Spara det uppdaterade dokumentet
doc.save(dataDir);

Konvertera RGB-färgrymd till gråskala för PDF-komprimering och optimering med Java

De flesta av PDF-filerna innehåller textinnehåll som också kan representeras väl i gråskalefärgrymden. Dessutom, när syftet och prioritet är att spara varje byte kan även bilderna konverteras till gråskala eftersom fokus ligger på att arkivera data. Du kan följa stegen nedan för att komprimera och optimera PDF-filstorlek genom att konvertera RGB-färgrymd till gråskala:

  1. Få tillgång till PDF-källdokument
  2. Initiera RgbToDeviceGrayConversionStrategy instans
  3. Konvertera färgrymden för varje färg till gråskala
  4. Spara utdataoptimerad PDF-fil

Följande kodavsnitt visar hur man komprimerar och optimerar PDF-storlek genom att ändra färgrymden i Java-miljö:

// Ladda inmatat PDF-dokument
Document document = new Document("input.pdf");

// Initiera RgbToDeviceGrayConversionStrategy-instansen
RgbToDeviceGrayConversionStrategy strategy = new RgbToDeviceGrayConversionStrategy();
for (int idxPage = 1; idxPage <= document.getPages().size(); idxPage++) {
	Page page = document.getPages().get_Item(idxPage);
        
        // Konvertera färgrymden för varje sida till gråskala
	strategy.convert(page);
}
// Spara PDF-dokument
document.save("output.pdf");

Slutsats

I den här artikeln har vi täckt olika sätt och tillvägagångssätt för att optimera och komprimera PDF-filer för minskad storlek. Först och främst har vi optimerad PDF-filstorlek för webben med hjälp av Java. Sedan har vi lärt oss att krympa, komprimera och ändra storlek för bilder i en PDF-fil som innehåller flera bilder. Dessutom har vi också utforskat att arbeta med typsnitt, strömmar, anteckningar, formulärfält samt konvertera färgrymden för PDF-dokument till gråskala så att en PDF-fil med mindre storlek men samma kvalitet kan skapas med Java. Dessutom kan du kontakta oss via Free Support Forum om du har frågor som rör detta ämne.

Se även

Info: Genom att använda en ny webbapp online från Aspose kan du omvandla en uppsättning bilder till en video. Du kanske också vill kolla in en annan tjänst, en som extraherar ljuden från videor.