Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
  /*
   * $Id: DivCssApplier.java 342 2012-06-19 16:22:03Z blowagie $
   *
   * This file is part of the iText (R) project.
   * Copyright (c) 1998-2012 1T3XT BVBA
   * Authors: Bruno Lowagie, Paulo Soares, 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;
 
 
 public class DivCssApplier {
     private final CssUtils utils = CssUtils.getInstance();
 
     public PdfDiv apply(final PdfDiv divfinal Tag tfinal MarginMemory memoryfinal PageSizeContainable psc) {
         Map<StringStringcss = t.getCSS();
         float fontSize = FontSizeTranslator.getInstance().translateFontSize(t);
         if (fontSize == .) {
             fontSize =  .;
         }
         String align = null;
         if (t.getAttributes().containsKey(..)) {
             align = t.getAttributes().get(..);
         } else if (css.containsKey(..)) {
             align = css.get(..);
         }
 
         if (align != null) {
             if (align.equalsIgnoreCase(..)) {
                 div.setTextAlignment(.);
             } else if (align.equalsIgnoreCase(..)) {
                 div.setTextAlignment(.);
             } else if (align.equalsIgnoreCase(..)) {
                 div.setTextAlignment(.);
             }
         }
 
 
         String widthValue = t.getCSS().get(..);
         if (widthValue == null) {
             widthValue = t.getAttributes().get(..);
         }
         if (widthValue != null) {
             if (.isNumericValue(widthValue) || .isMetricValue(widthValue)) {
 				div.setWidth(.parsePxInCmMmPcToPt(widthValue));
             } else if (.isRelativeValue(widthValue)) {
                 if (widthValue.contains(..)) {
                     div.setPercentageWidth(.parseRelativeValue(widthValue, 1f));
                 } else {
                     div.setWidth(.parseRelativeValue(widthValuefontSize));
                 }
             }
         }
 
         String heightValue = t.getCSS().get(..);
        if (heightValue == null) {
            heightValue = t.getAttributes().get(..);
        }
        if (heightValue != null) {
            if (.isNumericValue(heightValue) || .isMetricValue(heightValue)) {
                div.setHeight(.parsePxInCmMmPcToPt(heightValue));
            } else if (.isRelativeValue(heightValue)) {
                if (heightValue.contains(..)) {
                    div.setPercentageHeight(.parseRelativeValue(heightValue, 1f));
                } else {
                    div.setHeight(.parseRelativeValue(heightValuefontSize));
                }
            }
        }
        Float marginTop = null;
        Float marginBottom = null;
        for (Map.Entry<StringStringentry : css.entrySet()) {
            String key = entry.getKey();
			String value = entry.getValue();
            if (key.equalsIgnoreCase(..)) {
                div.setLeft(.parseValueToPt(valuefontSize));
            } else if (key.equalsIgnoreCase(..)) {
                if (div.getWidth() == null || div.getLeft() ==  null) {
                    div.setRight(.parseValueToPt(valuefontSize));
                }
            } else if (key.equalsIgnoreCase(..)) {
                div.setTop(.parseValueToPt(valuefontSize));
            } else if (key.equalsIgnoreCase(..)) {
                if (div.getHeight() == null || div.getTop() == null) {
                    div.setBottom(.parseValueToPt(valuefontSize));
                }
            } else if (key.equalsIgnoreCase(..)) {
				div.setBackgroundColor(HtmlUtilities.decodeColor(value));
            } else if (key.equalsIgnoreCase(..)) {
                div.setPaddingLeft(.parseValueToPt(valuefontSize));
            } else if (key.equalsIgnoreCase(..)) {
                div.setPaddingRight(.parseValueToPt(valuefontSize));
            } else if (key.equalsIgnoreCase(..)) {
                div.setPaddingTop(.parseValueToPt(valuefontSize));
            } else if (key.equalsIgnoreCase(..)) {
                div.setPaddingBottom(.parseValueToPt(valuefontSize));
            } else if (key.equalsIgnoreCase(..)) {
                marginTop = .calculateMarginTop(valuefontSizememory);
            } else if (key.equalsIgnoreCase(..)) {
                marginBottom = .parseValueToPt(valuefontSize);
            } else if (key.equalsIgnoreCase(..)) {
                if (value.equalsIgnoreCase(..)) {
                    div.setFloatType(..);
                } else if (value.equalsIgnoreCase(..)) {
                    div.setFloatType(..);
                }
            } else if (key.equalsIgnoreCase(..)) {
                if (value.equalsIgnoreCase(..)) {
                    div.setPosition(..);
                } else if (value.equalsIgnoreCase(..)) {
                    div.setPosition(..);
                } else if (value.equalsIgnoreCase(..)) {
                    div.setPosition(..);
                }
            }
            //TODO: border, background properties.
        }
	    	/*for (Map.Entry<String, String> entry : css.entrySet()) {
	        	String key = entry.getKey();
				String value = entry.getValue();
				cell.setUseBorderPadding(true);
                if(key.equalsIgnoreCase(CSS.Property.BACKGROUND_COLOR)) {
					values.setBackground(HtmlUtilities.decodeColor(value));
				} else if(key.equalsIgnoreCase(CSS.Property.VERTICAL_ALIGN)) {
					if(value.equalsIgnoreCase(CSS.Value.TOP)) {
						cell.setVerticalAlignment(Element.ALIGN_TOP);
						cell.setPaddingTop(cell.getPaddingTop()+6);
					} else if(value.equalsIgnoreCase(CSS.Value.BOTTOM)) {
						cell.setVerticalAlignment(Element.ALIGN_BOTTOM);
						cell.setPaddingBottom(cell.getPaddingBottom()+6);
					}
				} else if(key.contains(CSS.Property.BORDER)) {
					if(key.contains(CSS.Value.TOP)) {
						setTopOfBorder(cell, key, value, values);
					} else if(key.contains(CSS.Value.BOTTOM)) {
						setBottomOfBorder(cell, key, value, values);
					} else if(key.contains(CSS.Value.LEFT)) {
						setLeftOfBorder(cell, key, value, values);
					} else if(key.contains(CSS.Value.RIGHT)) {
						setRightOfBorder(cell, key, value, values);
					}
				}
	    	}*/
        return div;
    }
New to GrepCode? Check out our FAQ X