// Copyright � 2004-2005 ASERT. Released under the Canoo Webtest license. package com.canoo.webtest.plugins.pdftest; import java.util.Iterator; import java.util.List; import org.apache.log4j.Logger; import com.canoo.webtest.engine.ContextHelper; import com.canoo.webtest.plugins.pdftest.htmlunit.PDFLink; import com.canoo.webtest.plugins.pdftest.htmlunit.PDFPage; /** * Extracts all links from within the current PDF document. * * @author Paul King * @author Marc Guillemot * @webtest.step category="PDF" * name="pdfToLinksFilter" * description="Extracts all links from within the current <key>pdf</key> document." */ public class PdfToLinksFilter extends AbstractPdfFilter { private static final Logger LOG = Logger.getLogger(PdfToLinksFilter.class); public void doFilter(final PDFPage pdfPage) { final StringBuffer buf = new StringBuffer(); final List links = pdfPage.getLinks(); final String lineSep = System.getProperty("line.separator"); LOG.debug(links.size() + " links found"); for (final Iterator iter = links.iterator(); iter.hasNext();) { final PDFLink link = (PDFLink) iter.next(); buf.append(link.getPage()).append("|"); buf.append(link.getText()).append("|"); buf.append(link.getHref()).append(lineSep); } LOG.debug("Defining current response with: " + buf.toString()); ContextHelper.defineAsCurrentResponse(getContext(), buf.toString(), "text/plain", getClass()); } }