package org.alfresco.extension.pdftoolkit.webscripts; import java.io.IOException; import java.util.HashMap; import java.util.Map; import org.alfresco.model.ContentModel; import org.alfresco.service.ServiceRegistry; import org.alfresco.service.cmr.repository.ContentReader; import org.alfresco.service.cmr.repository.NodeRef; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.springframework.extensions.webscripts.Cache; import org.springframework.extensions.webscripts.DeclarativeWebScript; import org.springframework.extensions.webscripts.Status; import org.springframework.extensions.webscripts.WebScriptRequest; import com.itextpdf.text.pdf.PdfReader; public class GetPageCount extends DeclarativeWebScript { private ServiceRegistry serviceRegistry; private int count = -1; private static final Log logger = LogFactory.getLog(GetPageCount.class); public Map<String, Object> executeImpl(WebScriptRequest req, Status status, Cache cache) { String nodeRef = req.getParameter("nodeRef"); Map<String, Object> model = new HashMap<String, Object>(); try { ContentReader reader = serviceRegistry .getContentService().getReader(new NodeRef(nodeRef), ContentModel.PROP_CONTENT); PdfReader pdfReader = new PdfReader(reader.getContentInputStream()); count = pdfReader.getNumberOfPages(); pdfReader.close(); } catch(IOException ioex) { logger.error("Error fetching page count for document: " + ioex); } model.put("pageCount", count); return model; } public void setServiceRegistry(ServiceRegistry serviceRegistry) { this.serviceRegistry = serviceRegistry; } }