You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
72 lines
2.4 KiB
72 lines
2.4 KiB
-- Register all Toolbar actions and intialize all UI stuff |
|
function initUi() |
|
app.registerUi({["menu"] = "Clone non-background layers to next page", ["callback"] = "clone", ["accelerator"]="<Control><Shift>c"}); |
|
app.registerUi({["menu"] = "Hide all layers except first layers and backgrounds", ["callback"] = "hide"}); |
|
app.registerUi({["menu"] = "Add new top layer on each page", ["callback"] = "add"}); |
|
end |
|
|
|
function clone() |
|
local docStructure = app.getDocumentStructure() |
|
local currentPage = docStructure["currentPage"] |
|
local nextPage = currentPage + 1 |
|
local numPages = #docStructure["pages"] |
|
|
|
-- Make sure there is a next page, it has pdf background and no annotations or the annotations can be overwritten |
|
if currentPage == numPages then |
|
app.msgbox("No next page. ", {[1] = "OK"}) |
|
return |
|
end |
|
|
|
local bgNextPage = docStructure["pages"][nextPage]["pageTypeFormat"] |
|
if bgNextPage ~= ":pdf" then |
|
app.msgbox("Next page has no pdf background. ", {[1] = "OK"}) |
|
return |
|
end |
|
|
|
local nextPdfPage = docStructure["pages"][nextPage]["pdfBackgroundPageNo"] |
|
print(nextPdfPage) |
|
|
|
local isAnnotated = docStructure["pages"][nextPage]["isAnnotated"] |
|
if isAnnotated then |
|
local res = app.msgbox("Next page contains annotations that will be lost, when proceeding. ", {[1]="Cancel", [2]="Proceed"}) |
|
if res == 1 then |
|
return |
|
end |
|
end |
|
|
|
-- Copy the page, change its background to the background of the next pdf page and delete the old page without cloned layers |
|
app.sidebarAction("COPY"); |
|
app.changeBackgroundPdfPageNr(nextPdfPage, false); |
|
app.uiAction({["action"]="ACTION_GOTO_NEXT"}) |
|
app.uiAction({["action"]="ACTION_DELETE_PAGE"}) |
|
if currentPage < numPages -1 then |
|
app.uiAction({["action"]="ACTION_GOTO_BACK"}) |
|
end |
|
end |
|
|
|
function hide() |
|
local docStructure = app.getDocumentStructure() |
|
local page = docStructure["currentPage"] |
|
local numPages = #docStructure["pages"] |
|
|
|
for i=1, numPages do |
|
app.setCurrentPage(i) |
|
app.setCurrentLayer(1, true) -- makes background layer and layer 1 visible and all other layers invisible |
|
end |
|
|
|
app.setCurrentPage(page) |
|
end |
|
|
|
function add() |
|
local docStructure = app.getDocumentStructure() |
|
local numPages = #docStructure["pages"] |
|
local page = docStructure["currentPage"] |
|
|
|
for i=1, numPages do |
|
app.setCurrentPage(i) |
|
app.layerAction("ACTION_GOTO_TOP_LAYER") |
|
app.layerAction("ACTION_NEW_LAYER") |
|
end |
|
|
|
app.setCurrentPage(page) |
|
end
|
|
|