Как получить изображение в виде потока из PDF-файла с помощью Hummus.js?
Я пытаюсь извлечь поток / буфер изображения PNG из PDF. Я могу получить объект ePDFObjectName, но любая попытка фактически получить базовый ссылочный поток приводит к segfault.
По сути, я превратил один из авторских тестов в класс, вынул часть логгера и добавил метод findComponentInPDFDictionary
,
Мой класс создается с двумя аргументами: - componentType = имя значения PDFName, которое я ищу (в данном случае "Изображение") - callback = предоставленный обратный вызов, по которому я надеялся получить возможность получить поток.
вот сокращенный пример:
module.exports = function findPDFPage (componentType, callback) {
let _this = this
...
function findComponentInPDFDictionary (aDictionary, inReader) {
const dict = aDictionary.toJSObject()
Object.getOwnPropertyNames(dict).forEach(
function (element, index, array) {
if (componentType !== 'all' && callback &&
dict[element].value &&
typeof dict[element].value === 'string' &&
dict[element].value.search(componentType) > -1) {
if (aDictionary.exists(element)) {
// DO SOMETHING WITH THE REQUESTED COMPONENT TYPE HERE
// E.G. componentType = 'Image'
// vvvvvvvvvvvvvvvvvvvvvvvvvvv
callback(
inReader.queryDictionaryObject(aDictionary, element),
aDictionary, inReader)
}
} else _this.iterateObjectTypes(dict[element], inReader)
})
}
...
this.iterateObjectTypes = function (inObject, inReader) {
... logic that recursively iterates through different PDF objects
switch (inObject.getType()) {
case hummus.ePDFObjectDictionary:
findComponentInPDFDictionary(inObject.toPDFDictionary(), inReader)
break
case ...
...
}
}
Я пытался преобразовать значение из inReader.queryDictionaryObject(aDictionary, element) в кучу разных типов, и оно каждый раз просто вызывает ошибки!
документация Hummus.js о разборе немного расплывчата относительно того, поддерживает ли он доступ к потокам изображений; но я бы предположил, что изображение все еще существует так
Пожалуйста, возможно ли получить этот поток? И если да, то как?