当前位置: 首页>>代码示例>>Java>>正文


Java DOMAnalyzer.attributesToStyles方法代码示例

本文整理汇总了Java中org.fit.cssbox.css.DOMAnalyzer.attributesToStyles方法的典型用法代码示例。如果您正苦于以下问题:Java DOMAnalyzer.attributesToStyles方法的具体用法?Java DOMAnalyzer.attributesToStyles怎么用?Java DOMAnalyzer.attributesToStyles使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在org.fit.cssbox.css.DOMAnalyzer的用法示例。


在下文中一共展示了DOMAnalyzer.attributesToStyles方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。

示例1: analyze

import org.fit.cssbox.css.DOMAnalyzer; //导入方法依赖的package包/类
@Override
public ElementBox analyze(DocumentSource docSource, Dimension dim)
        throws Exception
{
    DOMSource parser = new DefaultDOMSource(docSource);
    w3cdoc = parser.parse();

    // Create the CSS analyzer
    DOMAnalyzer da = new DOMAnalyzer(w3cdoc, docSource.getURL());
    da.attributesToStyles();
    da.addStyleSheet(null, CSSNorm.stdStyleSheet(), DOMAnalyzer.Origin.AGENT);
    da.addStyleSheet(null, CSSNorm.userStyleSheet(), DOMAnalyzer.Origin.AGENT);
    da.getStyleSheets();
    
    BufferedImage tmpImg = new BufferedImage(1, 1, BufferedImage.TYPE_INT_RGB);
    canvas = new BrowserCanvas(da.getRoot(), da, docSource.getURL());
    canvas.setImage(tmpImg);
    canvas.getConfig().setLoadImages(true);
    canvas.getConfig().setLoadBackgroundImages(true);
    canvas.createLayout(dim);

    return canvas.getViewport();
}
 
开发者ID:mantlik,项目名称:swingbox-javahelp-viewer,代码行数:24,代码来源:DefaultAnalyzer.java

示例2: main

import org.fit.cssbox.css.DOMAnalyzer; //导入方法依赖的package包/类
/**
 * @param args the command line arguments
 */
public static void main(String args[]) 
{
	if (args.length != 1)
	{
		System.err.println("Usage: SimpleBrowser <url>");
		System.exit(0);
	}
	
    try {
        //Open the network connection 
        DocumentSource docSource = new DefaultDocumentSource(args[0]);
        
        //Parse the input document
        DOMSource parser = new DefaultDOMSource(docSource);
        Document doc = parser.parse();
        
        //Create the CSS analyzer
        DOMAnalyzer da = new DOMAnalyzer(doc, docSource.getURL());
        da.attributesToStyles(); //convert the HTML presentation attributes to inline styles
        da.addStyleSheet(null, CSSNorm.stdStyleSheet(), DOMAnalyzer.Origin.AGENT); //use the standard style sheet
        da.addStyleSheet(null, CSSNorm.userStyleSheet(), DOMAnalyzer.Origin.AGENT); //use the additional style sheet
        da.addStyleSheet(null, CSSNorm.formsStyleSheet(), DOMAnalyzer.Origin.AGENT); //render form fields using css
        da.getStyleSheets(); //load the author style sheets
        
        //Display the result
        SimpleBrowser test = new SimpleBrowser(da.getRoot(), docSource.getURL(), da);
        test.setSize(1275, 750);
        test.setVisible(true);
        
        docSource.close();
        
    } catch (Exception e) {
        System.out.println("Error: "+e.getMessage());
        e.printStackTrace();
    }
}
 
开发者ID:radkovo,项目名称:CSSBox,代码行数:40,代码来源:SimpleBrowser.java

示例3: renderDocument

import org.fit.cssbox.css.DOMAnalyzer; //导入方法依赖的package包/类
private BufferedImage renderDocument(Document doc)
{
    //create the media specification
    MediaSpec media = new MediaSpec(mediaType);
    media.setDimensions(windowSize.width, windowSize.height);
    media.setDeviceDimensions(windowSize.width, windowSize.height);

    //Create the CSS analyzer
    DOMAnalyzer da = new DOMAnalyzer(doc, docSource.getURL());
    da.setMediaSpec(media);
    da.attributesToStyles(); //convert the HTML presentation attributes to inline styles
    da.addStyleSheet(null, CSSNorm.stdStyleSheet(), DOMAnalyzer.Origin.AGENT); //use the standard style sheet
    da.addStyleSheet(null, CSSNorm.userStyleSheet(), DOMAnalyzer.Origin.AGENT); //use the additional style sheet
    da.addStyleSheet(null, CSSNorm.formsStyleSheet(), DOMAnalyzer.Origin.AGENT); //render form fields using css
    da.getStyleSheets(); //load the author style sheets
    
    BrowserCanvas contentCanvas = new BrowserCanvas(da.getRoot(), da, docSource.getURL());
    contentCanvas.setAutoMediaUpdate(false); //we have a correct media specification, do not update
    contentCanvas.getConfig().setClipViewport(cropWindow);
    contentCanvas.getConfig().setLoadImages(loadImages);
    contentCanvas.getConfig().setLoadBackgroundImages(loadBackgroundImages);

    contentCanvas.createLayout(windowSize);
    return contentCanvas.getImage();
}
 
开发者ID:radkovo,项目名称:CSSBox,代码行数:26,代码来源:ReferenceTestCase.java

示例4: createDecoder

import org.fit.cssbox.css.DOMAnalyzer; //导入方法依赖的package包/类
private void createDecoder()
{
    decoder = new DOMAnalyzer(doc, base);
    if (encoding == null)
        encoding = decoder.getCharacterEncoding();
    decoder.setDefaultEncoding(encoding);
    decoder.attributesToStyles();
    decoder.addStyleSheet(null, CSSNorm.stdStyleSheet(), DOMAnalyzer.Origin.AGENT);
    decoder.addStyleSheet(null, CSSNorm.userStyleSheet(), DOMAnalyzer.Origin.AGENT);
    decoder.getStyleSheets();
}
 
开发者ID:radkovo,项目名称:CSSBox,代码行数:12,代码来源:ReplacedText.java

示例5: analyze

import org.fit.cssbox.css.DOMAnalyzer; //导入方法依赖的package包/类
@Override
public Viewport analyze(DocumentSource docSource, Dimension dim)
        throws Exception
{
    DOMSource parser = new DefaultDOMSource(docSource);
    w3cdoc = parser.parse();

    // Create the CSS analyzer
    DOMAnalyzer da = new DOMAnalyzer(w3cdoc, docSource.getURL());
    da.attributesToStyles();
    da.addStyleSheet(null, CSSNorm.stdStyleSheet(), DOMAnalyzer.Origin.AGENT);
    da.addStyleSheet(null, CSSNorm.userStyleSheet(), DOMAnalyzer.Origin.AGENT);
    da.getStyleSheets();
    
    BufferedImage tmpImg = new BufferedImage(1, 1, BufferedImage.TYPE_INT_RGB);
    canvas = new BrowserCanvas(da.getRoot(), da, docSource.getURL());
    canvas.setImage(tmpImg);
    canvas.getConfig().setLoadImages(true);
    canvas.getConfig().setLoadBackgroundImages(true);
    canvas.createLayout(dim);

    return canvas.getViewport();
}
 
开发者ID:radkovo,项目名称:SwingBox,代码行数:24,代码来源:DefaultAnalyzer.java

示例6: main

import org.fit.cssbox.css.DOMAnalyzer; //导入方法依赖的package包/类
/**
 * @param args the command line arguments
 */
public static void main(String args[]) 
{
	if (args.length != 1)
	{
		System.err.println("Usage: SimpleBrowser <url>");
		System.exit(0);
	}
	
    try {
        //Open the network connection 
        DocumentSource docSource = new DefaultDocumentSource(args[0]);
        
        //Parse the input document
        DOMSource parser = new DefaultDOMSource(docSource);
        Document doc = parser.parse();
        
        //Create the CSS analyzer
        DOMAnalyzer da = new DOMAnalyzer(doc, docSource.getURL());
        da.attributesToStyles(); //convert the HTML presentation attributes to inline styles
        da.addStyleSheet(null, CSSNorm.stdStyleSheet(), DOMAnalyzer.Origin.AGENT); //use the standard style sheet
        da.addStyleSheet(null, CSSNorm.userStyleSheet(), DOMAnalyzer.Origin.AGENT); //use the additional style sheet
        da.getStyleSheets(); //load the author style sheets
        
        //Display the result
        SimpleBrowser test = new SimpleBrowser(da.getRoot(), docSource.getURL(), da);
        test.setSize(1275, 750);
        test.setVisible(true);
        
        docSource.close();
        
    } catch (Exception e) {
        System.out.println("Error: "+e.getMessage());
        e.printStackTrace();
    }
}
 
开发者ID:mantlik,项目名称:swingbox-javahelp-viewer,代码行数:39,代码来源:SimpleBrowser.java

示例7: analyze

import org.fit.cssbox.css.DOMAnalyzer; //导入方法依赖的package包/类
@Override
  public Viewport analyze(DocumentSource d, Dimension dim)
          throws Exception
  {
  	@SuppressWarnings("resource")
InputStream is = (d != null)? d.getInputStream() : null;
  	
  	if (!(is instanceof DocumentInputStream)) {
  		return super.analyze(d, dim);
  	}
  	
  	DocumentInputStream dIs = (DocumentInputStream) is;
  	
  	w3cdoc = dIs.getDocument();
  	URL address = ((Html5DocumentImpl)w3cdoc).getAddress();
  	
      // Create the CSS analyzer
      DOMAnalyzer da = new DOMAnalyzer(w3cdoc, address);
      da.attributesToStyles();
      da.addStyleSheet(null, CSSNorm.stdStyleSheet(), DOMAnalyzer.Origin.AGENT);
      da.addStyleSheet(null, CSSNorm.userStyleSheet(), DOMAnalyzer.Origin.AGENT);
      da.getStyleSheets();
      
      BufferedImage tmpImg = new BufferedImage(1, 1, BufferedImage.TYPE_INT_RGB);
      canvas = new BrowserCanvas(da.getRoot(), da, address);
      canvas.setImage(tmpImg);
      canvas.getConfig().setLoadImages(true);
      canvas.getConfig().setLoadBackgroundImages(true);
      canvas.createLayout(dim);

      return canvas.getViewport();
  }
 
开发者ID:ITman1,项目名称:ScriptBox,代码行数:33,代码来源:ScriptAnalyzer.java

示例8: applyEffectiveStylesToStyleAttributes

import org.fit.cssbox.css.DOMAnalyzer; //导入方法依赖的package包/类
private static void applyEffectiveStylesToStyleAttributes(final Document doc, final URL relativeUrl) {
    DOMAnalyzer da = new DOMAnalyzer(doc, relativeUrl);
    da.attributesToStyles(); //convert the HTML presentation attributes to inline styles
    da.addStyleSheet(null, CSSNorm.stdStyleSheet(), DOMAnalyzer.Origin.AGENT); //use the standard style sheet
    da.addStyleSheet(null, CSSNorm.userStyleSheet(), DOMAnalyzer.Origin.AGENT); //use the additional style sheet
    da.getStyleSheets(); //load the author style sheets
    da.stylesToDomInherited();
}
 
开发者ID:JayStGelais,项目名称:easy-mail,代码行数:9,代码来源:HtmlProcessor.java

示例9: main

import org.fit.cssbox.css.DOMAnalyzer; //导入方法依赖的package包/类
/**
 * @param args
 */
public static void main(String[] args)
{
    if (args.length != 2)
    {
        System.err.println("Usage: ComputeStyles <url> <output_file>");
        System.exit(0);
    }
    
    try {
        //Open the network connection 
        DocumentSource docSource = new DefaultDocumentSource(args[0]);
        
        //Parse the input document
        DOMSource parser = new DefaultDOMSource(docSource);
        Document doc = parser.parse();
        
        //Create the CSS analyzer
        DOMAnalyzer da = new DOMAnalyzer(doc, docSource.getURL());
        da.attributesToStyles(); //convert the HTML presentation attributes to inline styles
        da.addStyleSheet(null, CSSNorm.stdStyleSheet(), DOMAnalyzer.Origin.AGENT); //use the standard style sheet
        da.addStyleSheet(null, CSSNorm.userStyleSheet(), DOMAnalyzer.Origin.AGENT); //use the additional style sheet
        da.getStyleSheets(); //load the author style sheets
        
        //Compute the styles
        System.err.println("Computing style...");
        da.stylesToDomInherited();
        
        //Save the output
        PrintStream os = new PrintStream(new FileOutputStream(args[1]));
        Output out = new NormalOutput(doc);
        out.dumpTo(os);
        os.close();
        
        docSource.close();
        
        System.err.println("Done.");
        
    } catch (Exception e) {
        System.err.println("Error: "+e.getMessage());
        e.printStackTrace();
    }

}
 
开发者ID:mantlik,项目名称:swingbox-javahelp-viewer,代码行数:47,代码来源:ComputeStyles.java

示例10: main

import org.fit.cssbox.css.DOMAnalyzer; //导入方法依赖的package包/类
/**
 * main method
 */
public static void main(String[] args)
{
    if (args.length != 1)
    {
        System.err.println("Usage: TextBoxes <url>");
        System.exit(0);
    }
    
    try {
        //Open the network connection 
        DocumentSource docSource = new DefaultDocumentSource(args[0]);
        
        //Parse the input document
        DOMSource parser = new DefaultDOMSource(docSource);
        Document doc = parser.parse();
        
        //Create the CSS analyzer
        DOMAnalyzer da = new DOMAnalyzer(doc, docSource.getURL());
        da.attributesToStyles(); //convert the HTML presentation attributes to inline styles
        da.addStyleSheet(null, CSSNorm.stdStyleSheet(), DOMAnalyzer.Origin.AGENT); //use the standard style sheet
        da.addStyleSheet(null, CSSNorm.userStyleSheet(), DOMAnalyzer.Origin.AGENT); //use the additional style sheet
        da.getStyleSheets(); //load the author style sheets
        
        //Create the browser canvas
        BrowserCanvas browser = new BrowserCanvas(da.getRoot(), da, docSource.getURL());
        //Disable the image loading
        browser.getConfig().setLoadImages(false);
        browser.getConfig().setLoadBackgroundImages(false);
        
        //Create the layout for 1000x600 pixels
        browser.createLayout(new java.awt.Dimension(1000, 600));
        
        //Display the result
        printTextBoxes(browser.getViewport());
        
        docSource.close();
        
    } catch (Exception e) {
        System.err.println("Error: "+e.getMessage());
        e.printStackTrace();
    }

}
 
开发者ID:mantlik,项目名称:swingbox-javahelp-viewer,代码行数:47,代码来源:TextBoxes.java

示例11: renderURL

import org.fit.cssbox.css.DOMAnalyzer; //导入方法依赖的package包/类
/**
 * Renders the URL and prints the result to the specified output stream in the specified
 * format.
 * @param urlstring the source URL
 * @param out output stream
 * @param type output type
 * @return true in case of success, false otherwise
 * @throws SAXException 
 */
public boolean renderURL(String urlstring, OutputStream out, Type type, String pageFormat) throws IOException, SAXException
{
    if (!urlstring.startsWith("http:") &&
        !urlstring.startsWith("ftp:") &&
        !urlstring.startsWith("file:"))
            urlstring = "http://" + urlstring;
    
    //Open the network connection 
    DocumentSource docSource = new DefaultDocumentSource(urlstring);
  
    //Parse the input document
    DOMSource parser = new DefaultDOMSource(docSource);
    Document doc = parser.parse();
   
    //create the media specification
    MediaSpec media = new MediaSpec(mediaType);
    media.setDimensions(windowSize.width, windowSize.height);
    media.setDeviceDimensions(windowSize.width, windowSize.height);

    //Create the CSS analyzer
    DOMAnalyzer da = new DOMAnalyzer(doc, docSource.getURL());
    da.setMediaSpec(media);
    
    da.attributesToStyles(); //convert the HTML presentation attributes to inline styles
    da.addStyleSheet(null, CSSNorm.stdStyleSheet(), DOMAnalyzer.Origin.AGENT); //use the standard style sheet
    da.addStyleSheet(null, CSSNorm.userStyleSheet(), DOMAnalyzer.Origin.AGENT); //use the additional style sheet
    da.addStyleSheet(null, CSSNorm.formsStyleSheet(), DOMAnalyzer.Origin.AGENT); //render form fields using css
    da.getStyleSheets(); //load the author style sheets

    BrowserCanvas contentCanvas = new BrowserCanvas(da.getRoot(), da, docSource.getURL());
    contentCanvas.setAutoMediaUpdate(false); //we have a correct media specification, do not update
    contentCanvas.getConfig().setClipViewport(cropWindow);
    contentCanvas.getConfig().setLoadImages(loadImages);
    contentCanvas.getConfig().setLoadBackgroundImages(loadBackgroundImages);

    if (type == Type.PNG)
    {
        contentCanvas.createLayout(windowSize);
        ImageIO.write(contentCanvas.getImage(), "png", out);
    }
    else if (type == Type.SVG)
    {
        setDefaultFonts(contentCanvas.getConfig());
        contentCanvas.createLayout(windowSize);
        Writer w = new OutputStreamWriter(out, "utf-8");
        writeSVG(contentCanvas.getViewport(), w);
        w.close();
    }
    else if (type == Type.PDF)
    {
        setDefaultFonts(contentCanvas.getConfig());
        contentCanvas.createLayout(windowSize);
        writePDF(contentCanvas.getViewport(), out, pageFormat);
    }

    docSource.close();

    return true;
}
 
开发者ID:radkovo,项目名称:CSSBoxPdf,代码行数:69,代码来源:PdfImageRenderer.java

示例12: renderURL

import org.fit.cssbox.css.DOMAnalyzer; //导入方法依赖的package包/类
/**
 * Renders the URL and prints the result to the specified output stream in
 * the specified format.
 * 
 * @param urlstring
 *            the source URL
 * @param out
 *            output stream
 * @param type
 *            output type
 * @return true in case of success, false otherwise
 * @throws SAXException
 */
private boolean renderURL(URL urlstring, URL baseUrl, OutputStream out)
		throws IOException, SAXException {
	// Open the network connection
	DocumentSource docSource = new DefaultDocumentSource(urlstring);


	// Parse the input document
	DOMSource parser = new DefaultDOMSource(docSource);
	Document doc = parser.parse();

	// create the media specification
	MediaSpec media = new MediaSpec(mediaType);
	media.setDimensions(windowSize.width, windowSize.height);
	media.setDeviceDimensions(windowSize.width, windowSize.height);

	// Create the CSS analyzer
	DOMAnalyzer da = new DOMAnalyzer(doc, baseUrl);
	da.setMediaSpec(media);
	da.attributesToStyles(); // convert the HTML presentation attributes to
								// inline styles
	da.addStyleSheet(baseUrl, CSSNorm.stdStyleSheet(),
			DOMAnalyzer.Origin.AGENT); // use the standard style sheet
	da.addStyleSheet(null, CSSNorm.userStyleSheet(),
			DOMAnalyzer.Origin.AGENT); // use the additional style sheet
	da.addStyleSheet(null, CSSNorm.formsStyleSheet(),
			DOMAnalyzer.Origin.AGENT); // render form fields using css
	da.getStyleSheets(); // load the author style sheets

	BrowserCanvas contentCanvas = new BrowserCanvas(da.getRoot(), da,
			baseUrl);
	// contentCanvas.setAutoMediaUpdate(false); // we have a correct media
	// // specification, do not
	// // update
	contentCanvas.getConfig().setClipViewport(cropWindow);
	contentCanvas.getConfig().setLoadImages(loadImages);
	contentCanvas.getConfig().setLoadBackgroundImages(loadBackgroundImages);
	contentCanvas.setPreferredSize(new Dimension(windowSize.width, 10));
	contentCanvas.setAutoSizeUpdate(true);

	setDefaultFonts(contentCanvas.getConfig());

	contentCanvas.createLayout(windowSize);
	contentCanvas.validate();
	ImageIO.write(contentCanvas.getImage(), "png", out);

	// Image image = contentCanvas.createImage(windowSize.width,
	// windowSize.height);

	docSource.close();

	return true;
}
 
开发者ID:riccardove,项目名称:easyjasub,代码行数:66,代码来源:CssBoxPngRenderer.java

示例13: renderURL

import org.fit.cssbox.css.DOMAnalyzer; //导入方法依赖的package包/类
/**
 * Renders the URL and prints the result to the specified output stream in the specified
 * format.
 * @param urlstring the source URL
 * @param out output stream
 * @param type output type
 * @return true in case of success, false otherwise
 * @throws SAXException 
 */
public boolean renderURL(String urlstring, OutputStream out, Type type) throws IOException, SAXException
{
    if (!urlstring.startsWith("http:") &&
        !urlstring.startsWith("https:") &&
        !urlstring.startsWith("ftp:") &&
        !urlstring.startsWith("file:"))
            urlstring = "http://" + urlstring;
    
    //Open the network connection 
    DocumentSource docSource = new DefaultDocumentSource(urlstring);
    
    //Parse the input document
    DOMSource parser = new DefaultDOMSource(docSource);
    Document doc = parser.parse();
    
    //create the media specification
    MediaSpec media = new MediaSpec(mediaType);
    media.setDimensions(windowSize.width, windowSize.height);
    media.setDeviceDimensions(windowSize.width, windowSize.height);

    //Create the CSS analyzer
    DOMAnalyzer da = new DOMAnalyzer(doc, docSource.getURL());
    da.setMediaSpec(media);
    da.attributesToStyles(); //convert the HTML presentation attributes to inline styles
    da.addStyleSheet(null, CSSNorm.stdStyleSheet(), DOMAnalyzer.Origin.AGENT); //use the standard style sheet
    da.addStyleSheet(null, CSSNorm.userStyleSheet(), DOMAnalyzer.Origin.AGENT); //use the additional style sheet
    da.addStyleSheet(null, CSSNorm.formsStyleSheet(), DOMAnalyzer.Origin.AGENT); //render form fields using css
    da.getStyleSheets(); //load the author style sheets
    
    BrowserCanvas contentCanvas = new BrowserCanvas(da.getRoot(), da, docSource.getURL());
    contentCanvas.setAutoMediaUpdate(false); //we have a correct media specification, do not update
    contentCanvas.getConfig().setClipViewport(cropWindow);
    contentCanvas.getConfig().setLoadImages(loadImages);
    contentCanvas.getConfig().setLoadBackgroundImages(loadBackgroundImages);

    if (type == Type.PNG)
    {
        contentCanvas.createLayout(windowSize);
        ImageIO.write(contentCanvas.getImage(), "png", out);
    }
    else if (type == Type.SVG)
    {
        setDefaultFonts(contentCanvas.getConfig());
        contentCanvas.createLayout(windowSize);
        Writer w = new OutputStreamWriter(out, "utf-8");
        writeSVG(contentCanvas.getViewport(), w);
        w.close();
    }
    
    docSource.close();

    return true;
}
 
开发者ID:radkovo,项目名称:CSSBox,代码行数:63,代码来源:ImageRenderer.java

示例14: main

import org.fit.cssbox.css.DOMAnalyzer; //导入方法依赖的package包/类
/**
 * @param args
 */
public static void main(String[] args)
{
    if (args.length != 2)
    {
        System.err.println("Usage: ComputeStyles <url> <output_file>");
        System.exit(0);
    }
    
    try {
        //Open the network connection 
        DocumentSource docSource = new DefaultDocumentSource(args[0]);
        
        //Parse the input document
        DOMSource parser = new DefaultDOMSource(docSource);
        Document doc = parser.parse();
        
        //Create the CSS analyzer
        DOMAnalyzer da = new DOMAnalyzer(doc, docSource.getURL());
        da.attributesToStyles(); //convert the HTML presentation attributes to inline styles
        da.addStyleSheet(null, CSSNorm.stdStyleSheet(), DOMAnalyzer.Origin.AGENT); //use the standard style sheet
        da.addStyleSheet(null, CSSNorm.userStyleSheet(), DOMAnalyzer.Origin.AGENT); //use the additional style sheet
        da.getStyleSheets(); //load the author style sheets
        
        //Compute the styles
        System.err.println("Computing style...");
        da.stylesToDomInherited();
        
        //Save the output
        OutputStream os = new FileOutputStream(args[1]);
        Output out = new NormalOutput(doc);
        out.dumpTo(os);
        os.close();
        
        docSource.close();
        
        System.err.println("Done.");
        
    } catch (Exception e) {
        System.err.println("Error: "+e.getMessage());
        e.printStackTrace();
    }

}
 
开发者ID:radkovo,项目名称:CSSBox,代码行数:47,代码来源:ComputeStyles.java

示例15: makeImage

import org.fit.cssbox.css.DOMAnalyzer; //导入方法依赖的package包/类
public BufferedImage makeImage(InputStream is, String urlstring , boolean loadImages, boolean loadBackgroundImages) throws IOException, SAXException {


        if (!urlstring.startsWith("http:") &&
                !urlstring.startsWith("ftp:") &&
                !urlstring.startsWith("file:"))
            urlstring = "http://" + urlstring;

        //Open the network connection
//; charset=utf-8
        DocumentSource docSource = new StreamDocumentSource(is, new URL(urlstring), "text/html; charset=utf-8");
//        DocumentSource docSource = new DefaultDocumentSource(urlstring);

        //Parse the input document
        DOMSource parser = new DefaultDOMSource(docSource);
        Document doc = parser.parse();

        //Create the CSS analyzer
        DOMAnalyzer da = new DOMAnalyzer(doc, docSource.getURL());
        da.attributesToStyles(); //convert the HTML presentation attributes to inline styles
        da.addStyleSheet(null, CSSNorm.stdStyleSheet(), DOMAnalyzer.Origin.AGENT); //use the standard style sheet
        da.addStyleSheet(null, CSSNorm.userStyleSheet(), DOMAnalyzer.Origin.AGENT); //use the additional style sheet
        da.addStyleSheet(null, CSSNorm.formsStyleSheet(), DOMAnalyzer.Origin.AGENT); //render form fields using css
        da.getStyleSheets(); //load the author style sheets



//        if (type == TYPE_PNG)
//        {

            BrowserCanvas contentCanvas = new BrowserCanvas(da.getRoot(), da, docSource.getURL());
            contentCanvas.getConfig().setLoadImages(loadImages);
            contentCanvas.getConfig().setLoadBackgroundImages(loadBackgroundImages);
            contentCanvas.createLayout(new java.awt.Dimension(384, 400));
            contentCanvas.setSize(384, 400);
            contentCanvas.setAutoSizeUpdate(false);

            BufferedImage image = contentCanvas.getImage();

//            ImageIO.write(contentCanvas.getImage(), "png", out);

        docSource.close();

//        BufferedImage image = ImageIO.read(new File("stronka.png"));

        int lastYNotWhite = 0;

        for (int yPixel = 0; yPixel < image.getHeight(); yPixel++) {
            for (int xPixel = 0; xPixel < image.getWidth(); xPixel++) {
                int color = image.getRGB(xPixel, yPixel);
                if(color != -328966 && color != Color.WHITE.getRGB()) {  // white?
                    lastYNotWhite = yPixel;
                }
            }
        }

        BufferedImage dest = image.getSubimage(0, 0, 384, lastYNotWhite + 1);
        ImageIO.write(dest, "png", new File("test-result-" + cnt + ".png"));
        cnt++;

        return dest;

//        }
//        else if (type == TYPE_SVG)
//        {
//            BrowserCanvas contentCanvas = new BrowserCanvas(da.getRoot(), da, docSource.getURL());
//            contentCanvas.getConfig().setLoadImages(loadImages);
//            contentCanvas.getConfig().setLoadBackgroundImages(loadBackgroundImages);
//            setDefaultFonts(contentCanvas.getConfig());
//            contentCanvas.createLayout(new java.awt.Dimension(1200, 600));
//            Writer w = new OutputStreamWriter(out, "utf-8");
//            writeSVG(contentCanvas.getViewport(), w);
//            w.close();
//        }



//        return true;
    }
 
开发者ID:2bajty,项目名称:mirkodrukarka,代码行数:80,代码来源:Browser.java


注:本文中的org.fit.cssbox.css.DOMAnalyzer.attributesToStyles方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。