Tento tutoriál se zaměřuje na to, jak zpracovat velké PDF soubory v Javě pomocí pokročilých streamů, aby se předešlo problémům s velkou pamětí a omezením při zpracování velkých souborů PDF pomocí třídy MemoryStream. Pomocí jednoduchých volání API můžete načítat a zpracovávat obrovské dokumenty PDF v prostředích založených na Javě zavedených ve Windows, Linuxu nebo macOS.
Kroky ke zpracování velkých souborů PDF v Javě
- Nastavte prostředí pro přidání Aspose.PDF for Java z úložiště pro zpracování velkých souborů PDF
- Získejte přístup k velkým bajtům souboru PDF z disku pomocí metody Files.readAllBytes
- Vytvořte instanci objektu třídy OptimizedMemoryStream a zkopírujte do něj bajtové pole
- Inicializujte objekt třídy Document pomocí konstruktoru založeného na InputStream k načtení PDF
- Zpracujte nebo upravte dokument PDF podle svých požadavků
- Uložte upravený a zpracovaný dokument PDF na disk
Výše uvedené kroky vám umožňují použít pokročilé proudy k načtení velkého souboru PDF v Javě. Třída OptimizedMemoryStream umožňuje zpracovávat obrovské PDF dokumenty pomocí paměťového toku v Javě tím, že definuje MemoryStream, který má kapacitu větší než standardní, což umožňuje zpracovávat obrovské soubory PDF o velikosti větší než 2,5 GB.
Kód pro zpracování velkých souborů PDF v Javě
import com.aspose.pdf.Document; | |
import com.aspose.pdf.License; | |
import com.aspose.pdf.OptimizedMemoryStream; | |
import java.nio.file.Files; | |
import java.nio.file.Path; | |
import java.nio.file.Paths; | |
public class LargePDF { | |
static void main(String[] args) throws Exception { // Handle exception while processing large PDF files | |
String path= "C:/TestData/"; | |
// Instantiate the license to process the large PDF files | |
License PdfLicense = new License(); | |
PdfLicense.setLicense(path+"Conholdate.Total.Product.Family.lic"); | |
// Initialize the OptimizedMemoryStream object in which large size PDF will be stored for loading | |
OptimizedMemoryStream ms = new OptimizedMemoryStream(); | |
try{ | |
// Access the large PDF in Byte array | |
Path paths = Paths.get(path + "LargePDF.pdf"); | |
byte[] data = Files.readAllBytes(paths); | |
// Write large PDF byte array to OptimizedMemoryStream | |
ms.write(data, 0, (int)data.length); | |
// Use the optimized stream to process large PDF and load it into a Document object | |
Document doc = new Document(ms); | |
// Perform the desired operations and save the output PDF document | |
doc.save(path + "LargeSizePDFProcessed.pdf"); | |
} | |
finally{ | |
ms.close(); | |
} | |
} | |
} |
Při práci s MemoryStream pro správu velkých PDF dokumentů existují omezení, která způsobují velké problémy s pamětí při zpracování souborů PDF kvůli nedostatku schopnosti vyhledávání. Můžete zvážit řešení pomocí pokročilých streamů k načtení velkých PDF dokumentů do paměťového toku pomocí Javy a jejich uložení na disk po dokončení zpracování.
V tomto příkladu jsme se naučili jak načítat velké soubory PDF v Javě pomocí jednoduchých volání API. Pokud se chcete dozvědět o komprimaci souboru PDF, přečtěte si téma komprimovat PDF v Javě.