|
|
@ -148,8 +148,23 @@ function CreDocument:getCoverPageImage()
|
|
|
|
if data and size then
|
|
|
|
if data and size then
|
|
|
|
local Mupdf = require("ffi/mupdf")
|
|
|
|
local Mupdf = require("ffi/mupdf")
|
|
|
|
local ok, image = pcall(Mupdf.renderImage, data, size)
|
|
|
|
local ok, image = pcall(Mupdf.renderImage, data, size)
|
|
|
|
|
|
|
|
ffi.C.free(data)
|
|
|
|
|
|
|
|
if ok then
|
|
|
|
|
|
|
|
return image
|
|
|
|
|
|
|
|
end
|
|
|
|
|
|
|
|
end
|
|
|
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
function CreDocument:getImageFromPosition(pos)
|
|
|
|
|
|
|
|
local data, size = self._document:getImageDataFromPosition(pos.x, pos.y)
|
|
|
|
|
|
|
|
if data and size then
|
|
|
|
|
|
|
|
logger.dbg("CreDocument: got image data from position", data, size)
|
|
|
|
|
|
|
|
local Mupdf = require("ffi/mupdf")
|
|
|
|
|
|
|
|
-- wrapped with pcall so we always free(data)
|
|
|
|
|
|
|
|
local ok, image = pcall(Mupdf.renderImage, data, size)
|
|
|
|
|
|
|
|
ffi.C.free(data) -- need that explicite clean
|
|
|
|
|
|
|
|
logger.dbg("Mupdf.renderImage", ok, image)
|
|
|
|
if ok then
|
|
|
|
if ok then
|
|
|
|
ffi.C.free(data)
|
|
|
|
|
|
|
|
return image
|
|
|
|
return image
|
|
|
|
end
|
|
|
|
end
|
|
|
|
end
|
|
|
|
end
|
|
|
@ -250,6 +265,10 @@ function CreDocument:getXPointer()
|
|
|
|
return self._document:getXPointer()
|
|
|
|
return self._document:getXPointer()
|
|
|
|
end
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
function CreDocument:isXPointerInDocument(xp)
|
|
|
|
|
|
|
|
return self._document:isXPointerInDocument(xp)
|
|
|
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
|
|
function CreDocument:getPosFromXPointer(xp)
|
|
|
|
function CreDocument:getPosFromXPointer(xp)
|
|
|
|
return self._document:getPosFromXPointer(xp)
|
|
|
|
return self._document:getPosFromXPointer(xp)
|
|
|
|
end
|
|
|
|
end
|
|
|
|