--- title: "PDF \u0026 Screenshot" url: https://docs.catalyst.zoho.com/en/sdk/java/v1/smartbrowz/generate-pdfnscreenshot/ description: "This page describes the method to generate PDF and Screenshot" last_updated: 2025-12-16T05:01:39Z service: SmartBrowz type: general related_links: - name: "PDF \u0026 Screenshot - API" url: /en/api/code-reference/smartbrowz/generate-pdfnscreenshoturl/#PDF%26ScreenshotwithHTML%2fURLasInput --- # PDF & Screenshot Catalyst SmartBrowz offers you the [PDF & Screenshot](https://docs.catalyst.zoho.com/en/smartbrowz/help/pdfnscreenshot/introduction/) component to generate your prefered visual docuemnts through code. You can incorporate this functionality in your application by copying the code below and pasting it in your application logic. Using the SDK below, you can generate visual documents by using HTML, URL or [Templates](https://docs.catalyst.zoho.com/en/smartbrowz/help/templates/create-templates/) as your input. #### Sample Code Snippet **Package Imports** ```java import com.zc.component.smartbrowz.ZCSmartBrowz; import com.zc.component.smartbrowz.ZCSmartBrowzConvertDetails; ``` ### Generate Visual Document From a Predefined Template ```java // Initialize SmartBrowz ZCSmartBrowz smartBrowz = ZCSmartBrowz.getInstance(); // Generate output from a predefined template ObjectMapper mapper = new ObjectMapper(); JsonNode templateData = mapper.createObjectNode(); ((ObjectNode)templateData).put("name", "Amelia Burrows"); ((ObjectNode)templateData).put("age", "34"); ((ObjectNode)templateData).put("address", "Houstan"); ((ObjectNode)templateData).put("country", "USA"); ((ObjectNode)templateData).put("email", "emma@zylker.com"); ZCSmartBrowzPDFOptions pdfOptions = ZCSmartBrowzPDFOptions.getInstance(); pdfOptions.setDisplayHeaderFooter(true); pdfOptions.setFormat("A4"); pdfOptions.setPageRanges("1-2"); pdfOptions.setPrintBackground(true);; pdfOptions.setPassword("Siva123"); // set password after enabling template password setting in UI pdfOptions.setLandscape(true); pdfOptions.setScale(new BigDecimal("1.0")); pdfOptions.setWidth("100"); pdfOptions.setHeight("100"); ZCSmartBrowzNavigationOptions navigationOptions = new ZCSmartBrowzNavigationOptions(); navigationOptions.setWaitUntil("domcontentloaded"); navigationOptions.setTimeout(30000); ZCSmartBrowzPageOptions pageOptions = new ZCSmartBrowzPageOptions(); ContentDetails contentDetails = new ContentDetails(); contentDetails.setContent("<html><body>Hello World</body></html>"); pageOptions.setCss(contentDetails); pageOptions.setDevice("Blackberry PlayBook"); pageOptions.setJavaScriptEnabled(true); ViewportDetails viewportDetails = new ViewportDetails(); viewportDetails.setHeight(800); viewportDetails.setWidth(600); pageOptions.setViewport(viewportDetails); ZCSmartBrowzTemplateOptions templateOptions = ZCSmartBrowzTemplateOptions.getInstance(); templateOptions.setPdfDetails(pdfOptions); templateOptions.setNavigationDetails(navigationOptions); templateOptions.setOutputType(ZC_CONVERT_OUTPUT_TYPE.PDF); templateOptions.setPageDetails(pageOptions); templateOptions.setTemplateInput(templateData); templateOptions.setTemplateId(2075000000021001L); InputStream outputStream = smartBrowz.generateFromTemplate(templateOptions); ``` ### Convert to PDF from HTML ```java // Initialize SmartBrowz ZCSmartBrowz smartBrowz = ZCSmartBrowz.getInstance(); // Convert to PDF from HTML ZCSmartBrowzConvertDetails convertDetailsForPDF = ZCSmartBrowzConvertDetails.getInstance(); ZCSmartBrowzPDFOptions pdfOptions = ZCSmartBrowzPDFOptions.getInstance(); pdfOptions.setDisplayHeaderFooter(true); pdfOptions.setFormat("A4"); MarginDetails marginDetails = new MarginDetails(); marginDetails.setTop("10"); marginDetails.setRight("10"); marginDetails.setLeft("10"); marginDetails.setBottom("10"); pdfOptions.setMargin(marginDetails); pdfOptions.setPageRanges("1-2"); pdfOptions.setPrintBackground(true);; pdfOptions.setPassword("Siva123"); pdfOptions.setLandscape(true); pdfOptions.setScale(new BigDecimal("1.0")); pdfOptions.setWidth("100"); pdfOptions.setHeight("100"); ZCSmartBrowzNavigationOptions navigationOptions = new ZCSmartBrowzNavigationOptions(); navigationOptions.setWaitUntil("domcontentloaded"); navigationOptions.setTimeout(30000); ZCSmartBrowzPageOptions pageOptions = new ZCSmartBrowzPageOptions(); ContentDetails contentDetails = new ContentDetails(); contentDetails.setContent("<html><body>Hello World</body></html>"); pageOptions.setCss(contentDetails); pageOptions.setDevice("Blackberry PlayBook"); pageOptions.setJavaScriptEnabled(true); ViewportDetails viewportDetails = new ViewportDetails(); viewportDetails.setHeight(800); viewportDetails.setWidth(600); pageOptions.setViewport(viewportDetails); convertDetailsForPDF.setPdfDetails(pdfOptions); convertDetailsForPDF.setNavigationDetails(navigationOptions); convertDetailsForPDF.setPageDetails(pageOptions); convertDetailsForPDF.setHtml("<html>Hello</html>"); InputStream outPutStream = smartBrowz.convertToPdf(convertDetailsForPDF); ``` ### Take a screenshot from URL ```java // initialize SmartBrowz ZCSmartBrowz smartBrowz = ZCSmartBrowz.getInstance(); // convert to PDF from URL ZCSmartBrowzConvertDetails convertDetailsForPDF = ZCSmartBrowzConvertDetails.getInstance(); ZCSmartBrowzPDFOptions pdfOptions = ZCSmartBrowzPDFOptions.getInstance(); pdfOptions.setDisplayHeaderFooter(true); pdfOptions.setFormat("A4"); MarginDetails marginDetails = new MarginDetails(); marginDetails.setTop("10"); marginDetails.setRight("10"); marginDetails.setLeft("10"); marginDetails.setBottom("10"); pdfOptions.setMargin(marginDetails); pdfOptions.setPageRanges("1-2"); pdfOptions.setPrintBackground(true);; pdfOptions.setPassword("Siva123"); pdfOptions.setLandscape(true); pdfOptions.setScale(new BigDecimal("1.0")); pdfOptions.setWidth("100"); pdfOptions.setHeight("100"); ZCSmartBrowzNavigationOptions navigationOptions = new ZCSmartBrowzNavigationOptions(); navigationOptions.setWaitUntil("domcontentloaded"); navigationOptions.setTimeout(30000); ZCSmartBrowzPageOptions pageOptions = new ZCSmartBrowzPageOptions(); ContentDetails contentDetails = new ContentDetails(); contentDetails.setContent("<html><body>Hello World</body></html>"); pageOptions.setCss(contentDetails); pageOptions.setDevice("Blackberry PlayBook"); pageOptions.setJavaScriptEnabled(true); ViewportDetails viewportDetails = new ViewportDetails(); viewportDetails.setHeight(800); viewportDetails.setWidth(600); pageOptions.setViewport(viewportDetails); convertDetailsForPDF.setPdfDetails(pdfOptions); convertDetailsForPDF.setNavigationDetails(navigationOptions); convertDetailsForPDF.setPageDetails(pageOptions); convertDetailsForPDF.setUrl("http://www.example.com"); InputStream outPutStream = smartBrowz.convertToPdf(convertDetailsForPDF); ``` In the PDF & Screenshot section of the console, you can directly test this component using the [Playground feature](https://docs.catalyst.zoho.com/en/smartbrowz/help/pdfnscreenshot/implementation/#generating-pdf--screenshots-through-playground), and you can also [copy the SDK](https://docs.catalyst.zoho.com/en/smartbrowz/help/pdfnscreenshot/implementation/#generating-pdf--screenshots-through-code) directly from the console. > **Note:** Any Browser action or operation that you code using the Browser Logic function, or any browser automation or web scraping task that you perform using any component of **Catalyst SmartBrowz** is at your own risk. We strongly recommend you use the SmartBrowz components to perform operations on domains that permit the actions, or with proper approval. Additionally, while Catalyst does provide a secure infrastructure to code your functions, any consequence of the logic you code using Catalyst functions is yours alone.