| import org.apache.commons.io.IOUtils; |
| | import org.apache.felix.scr.annotations.Component; |
| | import org.apache.felix.scr.annotations.Properties; |
| | import org.apache.felix.scr.annotations.Property; |
| | import org.apache.felix.scr.annotations.Reference; |
| | import org.apache.felix.scr.annotations.Service; |
| | import org.apache.sling.api.SlingHttpServletRequest; |
| | import org.apache.sling.api.SlingHttpServletResponse; |
| | import org.apache.sling.api.servlets.SlingSafeMethodsServlet; |
| | |
| | import com.day.cq.commons.Externalizer; |
| | |
| | @Component(label = "acs PDF Generation Servlet", description = "ACS PDF Generation Servlet") |
| | @Service |
| | @Properties({@Property(name = "sling.servlet.resourceTypes", value = {"cq/Page"}), |
| | @Property(name = "sling.servlet.methods", value = {"GET"}), |
| | @Property(name = "service.description", value = "PDF Generation Servlet"), |
| | @Property(name = "service.vendor", value = "AGS"), |
| | @Property(name = "sling.servlet.selectors", value = {"pdf"})}) |
| | public class PDFGenerationServlet extends SlingSafeMethodsServlet { |
| | |
| | /** |
| | * |
| | */ |
| | private static final long serialVersionUID = 3537924656080668802L; |
| | @Reference |
| | private Externalizer externalizer; |
| | protected void doGet(SlingHttpServletRequest request, SlingHttpServletResponse response) { |
| | String htmlPagePath=request.getPathInfo(); |
| | String fullLinkPath=!htmlPagePath.startsWith("http")?externalizer.publishLink(request.getResourceResolver(), htmlPagePath):htmlPagePath; |
| | ProcessBuilder pb = new ProcessBuilder("wkhtmltopdf.exe", fullLinkPath, "-"); |
| | try { |
| | Process process = pb.start(); |
| | response.setContentType("application/pdf"); |
| | response.setHeader("Content-disposition", "attachment; filename=\"name.pdf\""); |
| | |
| | IOUtils.copy(process.getInputStream(), response.getOutputStream()); |
| | process.waitFor(); |
| | } |
| | catch (Exception e) { |
| | // // TODO Auto-generated catch block |
| | e.printStackTrace(); |
| | // response.sendError(403); |
| | } |
| | } |
| | |
| | } |