Можно ли просто узнать расположение страниц PDF в байтовом массиве?
На данный момент я анализирую полный PDF, чтобы узнать байты страницы:
public static List<byte[]> splitPdf(byte[] pdfDocument) throws Exception {
InputStream inputStream = new ByteArrayInputStream(pdfDocument);
PDDocument document = PDDocument.load(inputStream);
Splitter splitter = new Splitter();
List<PDDocument> PDDocs = splitter.split(document);
inputStream.close();
List<byte[]> pages = PDDocs.stream()
.map(PDFUtils::getResult).collect(Collectors.toList());
}
private static byte[] getResult(PDDocument pd) {
ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
pd.save(byteArrayOutputStream);
return byteArrayOutputStream.toByteArray();
}
Мой код работает очень хорошо, но
- Я создал дополнительные Список для сохранения байтов страницы. Я хотел бы просто иметь байтовые местоположения - если я знаю байтовые индексы страницы (начальное местоположение страницы, конечное местоположение страницы) Я извлеку это из основного байтового массива.
Так что, может быть, я найду эту информацию в заголовке PDF или где-нибудь еще ...
Сейчас я пытаюсь оптимизировать память, потому что я анализирую сотни документов параллельно. Поэтому я не хочу создавать дублирующиеся массивы.