Šioje mokymo programoje dėmesys sutelkiamas į tai, kaip apdoroti didelius PDF failus Java naudojant pažangius srautus, kad būtų išvengta didelių atminties problemų ir apribojimų apdorojant didelius PDF failus naudojant MemoryStream Class. Galite įkelti ir apdoroti didžiulius PDF dokumentus Java pagrįstose aplinkose, sukurtose Windows, Linux arba MacOS, naudodami paprastus API iškvietimus.
Didelių PDF failų apdorojimo „Java“ veiksmai
- Nustatykite aplinką, kad pridėtumėte Aspose.PDF for Java iš saugyklos ir apdorotumėte didelius PDF failus
- Pasiekite didelius PDF failo baitus iš disko naudodami Files.readAllBytes metodą
- Sukurkite klasės OptimizedMemoryStream objektą ir nukopijuokite jame esantį baitų masyvą
- Inicijuokite Document klasės objektą naudodami InputStream pagrįstą konstruktorių, kad įkeltumėte PDF
- Apdorokite arba modifikuokite PDF dokumentą pagal savo reikalavimus
- Išsaugokite pakeistą ir apdorotą PDF dokumentą diske
Aukščiau atlikti veiksmai leidžia naudoti išplėstinius srautus, kad įkeltumėte didžiulį PDF failą Java. OptimizedMemoryStream klasė leidžia apdoroti didžiulį PDF dokumentą naudojant Java atminties srautą, apibrėžiant MemoryStream, kurios talpa didesnė nei standartinė, kuri leidžia apdoroti didžiulius PDF failus, kurių dydis didesnis nei 2,5 GB.
Kodas dideliems PDF failams apdoroti Java
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(); | |
} | |
} | |
} |
Dirbant su MemoryStream tvarkydami didelio dydžio PDF dokumentus, yra apribojimų, dėl kurių apdorojant PDF failus kyla atminties problemų dėl to, kad trūksta paieškos galimybių. Galite apsvarstyti galimybę naudoti išplėstinius srautus, norėdami įkelti didžiulius PDF dokumentus į atminties srautą naudodami Java ir išsaugoti juos diske po apdorojimo.
Šiame pavyzdyje mes išmokome kaip įkelti didelius PDF failus Java naudojant paprastus API iškvietimus. Jei norite sužinoti apie PDF failo suglaudinimą, skaitykite temą, kaip suspausti PDF Java..