Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
  /*
   * $Id: ListStyleTypeCssApplier.java 338 2012-06-06 14:17:09Z eugenemark $
   *
   * This file is part of the iText (R) project.
   * Copyright (c) 1998-2012 1T3XT BVBA
   * Authors: Balder Van Camp, Emiel Ackermann, et al.
   *
   * This program is free software; you can redistribute it and/or modify
   * it under the terms of the GNU Affero General Public License version 3
  * as published by the Free Software Foundation with the addition of the
  * following permission added to Section 15 as permitted in Section 7(a):
  * FOR ANY PART OF THE COVERED WORK IN WHICH THE COPYRIGHT IS OWNED BY 1T3XT,
  * 1T3XT DISCLAIMS THE WARRANTY OF NON INFRINGEMENT OF THIRD PARTY RIGHTS.
  *
  * This program is distributed in the hope that it will be useful, but
  * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
  * or FITNESS FOR A PARTICULAR PURPOSE.
  * See the GNU Affero General Public License for more details.
  * You should have received a copy of the GNU Affero General Public License
  * along with this program; if not, see http://www.gnu.org/licenses or write to
  * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
  * Boston, MA, 02110-1301 USA, or download the license from the following URL:
  * http://itextpdf.com/terms-of-use/
  *
  * The interactive user interfaces in modified source and object code versions
  * of this program must display Appropriate Legal Notices, as required under
  * Section 5 of the GNU Affero General Public License.
  *
  * In accordance with Section 7(b) of the GNU Affero General Public License,
  * a covered work must retain the producer line in every PDF that is created
  * or manipulated using iText.
  *
  * You can be released from the requirements of the license by purchasing
  * a commercial license. Buying such a license is mandatory as soon as you
  * develop commercial activities involving the iText software without
  * disclosing the source code of your own applications.
  * These activities include: offering paid services to customers as an ASP,
  * serving PDFs on the fly in a web application, shipping iText with a closed
  * source product.
  *
  * For more information, please contact iText Software Corp. at this
  * address: sales@itextpdf.com
  */
 package com.itextpdf.tool.xml.css.apply;
 
 import java.util.Map;
 

Author(s):
itextpdf.com
 
 public class ListStyleTypeCssApplier {
 
 	private final CssUtils utils = CssUtils.getInstance();
 	private static final Logger LOG = LoggerFactory.getLogger(ListStyleTypeCssApplier.class);

 
 	}

The ListCssApplier has the capabilities to change the type of the given com.itextpdf.text.List dependable on the css. This means: Always replace your list with the returned one and add content to the list after applying!
note: not implemented list-style-type:armenian, georgian, decimal-leading-zero.

Parameters:
list the list to style
t the tag
htmlPipelineContext the context
Returns:
the changed com.itextpdf.text.List
 
 	public List apply(final List listfinal Tag tfinal ImageProvider htmlPipelineContext) {
 		// not implemented: list-style-type:armenian, georgian, decimal-leading-zero.
		float fontSize = FontSizeTranslator.getInstance().getFontSize(t);
		List lst = list;
		Map<StringStringcss = t.getCSS();
		String styleType = css.get(..);
		BaseColor color = HtmlUtilities.decodeColor(css.get(..));
		if (null == colorcolor = .;
		if (null != styleType) {
			if (styleType.equalsIgnoreCase(..)) {
				lst.setLettered(false);
				lst.setNumbered(false);
else if (...equalsIgnoreCase(styleType)) {
				lst = new List(.);
				synchronizeSymbol(fontSizelstcolor);
else if (...equalsIgnoreCase(styleType)) {
				lst = new ZapfDingbatsList(108);
                lst.setAutoindent(false);
                lst.setSymbolIndent(7.75f);
                Chunk symbol = lst.getSymbol();
                symbol.setTextRise(1.5f);
                Font font = symbol.getFont();
                font.setSize(4.5f);
                font.setColor(color);
else if (...equalsIgnoreCase(styleType)) {
				lst = new ZapfDingbatsList(110);
				shrinkSymbol(lstfontSizecolor);
else if (...equalsIgnoreCase(styleType)) {
				lst = new ZapfDingbatsList(109);
				lst.setAutoindent(false);
                lst.setSymbolIndent(7.75f);
                Chunk symbol = lst.getSymbol();
                symbol.setTextRise(1.5f);
                Font font = symbol.getFont();
                font.setSize(4.5f);
else if (...equals(styleType)) {
				lst = new RomanList(true, 0);
				synchronizeSymbol(fontSizelstcolor);
				lst.setAutoindent(true);
else if (...equals(styleType)) {
				lst = new RomanList(false, 0);
				lst.setAutoindent(true);
				synchronizeSymbol(fontSizelstcolor);
else if (...equals(styleType)) {
				lst = new GreekList(true, 0);
				synchronizeSymbol(fontSizelstcolor);
				lst.setAutoindent(true);
else if (...equals(styleType)) {
				lst = new GreekList(false, 0);
				synchronizeSymbol(fontSizelstcolor);
				lst.setAutoindent(true);
else if (...equals(styleType) || ...equals(styleType)) {
				synchronizeSymbol(fontSizelstcolor);
				lst.setLowercase(true);
				lst.setAutoindent(true);
else if (...equals(styleType) || ...equals(styleType)) {
				synchronizeSymbol(fontSizelstcolor);
				lst.setLowercase(false);
				lst.setAutoindent(true);
			}
else if (t.getName().equalsIgnoreCase(..)) {
			lst = new List(.);
			synchronizeSymbol(fontSizelstcolor);
			lst.setAutoindent(true);
else if (t.getName().equalsIgnoreCase(..)) {
			lst = new List(.);
			shrinkSymbol(lstfontSizecolor);
		}
		if (null != css.get(..)
			lst = new List();
			Image img = null;
			try {
				if (htmlPipelineContext == null) {
					img = new ImageRetrieve().retrieveImage(url);
else {
					try {
						img = new ImageRetrieve(htmlPipelineContext).retrieveImage(url);
catch (NoImageException e) {
							.trace(String.format(LocaleMessages.getInstance().getMessage("css.applier.list.noimage")));
						}
						img = new ImageRetrieve().retrieveImage(url);
					}
				}
				lst.setListSymbol(new Chunk(img, 0, 0, false));
					.trace(String.format(LocaleMessages.getInstance().getMessage("html.tag.list"), url));
				}
catch (IOException e) {
					.error(String.format(LocaleMessages.getInstance().getMessage("html.tag.list.failed"), url), e);
				}
				lst = new List(.);
catch (NoImageException e) {
				}
				lst = new List(.);
			}
			lst.setAutoindent(false);
		}
		lst.setAlignindent(false);
		float leftIndent = 0;
			leftIndent += 30;
else {
			leftIndent += 15;
		}
		leftIndent += css.get(..)!=null?.parseValueToPt(css.get(..),fontSize):0;
		leftIndent += css.get(..)!=null?.parseValueToPt(css.get(..),fontSize):0;
		lst.setIndentationLeft(leftIndent);
		return lst;
	}
	private void synchronizeSymbol(final float fontSizefinal List lstfinal BaseColor color) {
		Font font = lst.getSymbol().getFont();
		font.setSize(fontSize);
		font.setColor(color);
		lst.setSymbolIndent(fontSize);
	}
	private void shrinkSymbol(final List lstfinal float fontSizefinal BaseColor color) {
		Chunk symbol = lst.getSymbol();
		//symbol.setTextRise(2);
		Font font = symbol.getFont();
		font.setSize(fontSize);
		font.setColor(color);
	}

Utility method applying style to a list when no ImageProvider is available.

	public Element apply(final List efinal Tag t) {
		return apply(etnull);
	}
New to GrepCode? Check out our FAQ X