Як обробляти великі PDF-файли в Java

Цей підручник зосереджується на тому, як обробляти великі PDF файли в Java за допомогою розширених потоків, щоб запобігти проблемам із великою пам’яттю та обмеженням під час обробки великих файлів PDF за допомогою класу MemoryStream. Ви можете завантажувати та обробляти величезні PDF-документи в середовищах на основі Java, створених у Windows, Linux або macOS, використовуючи прості виклики API.

Кроки для обробки великих PDF-файлів у Java

  1. Налаштуйте середовище для додавання Aspose.PDF for Java зі сховища для обробки великих PDF-файлів
  2. Отримайте доступ до великих байтів PDF-файлу з диска за допомогою методу Files.readAllBytes
  3. Створіть екземпляр об’єкта класу OptimizedMemoryStream і скопіюйте в нього масив байтів
  4. Ініціалізуйте об’єкт класу Document за допомогою конструктора на основі InputStream, щоб завантажити PDF
  5. Обробіть або змініть документ PDF відповідно до ваших вимог
  6. Збережіть змінений і оброблений PDF-документ на диску

Наведені вище дії дозволяють використовувати розширені потоки для завантаження величезного PDF-файлу в Java. Клас OptimizedMemoryStream дає змогу обробляти величезний PDF-документ за допомогою потоку пам’яті в Java, визначаючи MemoryStream, який має ємність більше стандартної, що дозволяє обробляти величезні PDF-файли розміром більше 2,5 ГБ.

Код для обробки великих PDF-файлів у 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();
}
}
}

Під час роботи з MemoryStream для керування PDF-документами великого розміру існують обмеження, які викликають великі проблеми з пам’яттю під час обробки PDF-файлів через відсутність можливості пошуку. Ви можете розглянути рішення використання розширених потоків для завантаження величезних документів PDF у потік пам’яті за допомогою Java та збереження їх на диску після завершення обробки.

У цьому прикладі ми навчилися завантажувати великі файли PDF у Java за допомогою простих викликів API. Якщо ви хочете дізнатися про стиснення файлу PDF, зверніться до теми про те, як стискати PDF в Java.

 Українська