com.itextpdf.html2pdf.css.resolve.CssContentElementNode Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of html2pdf Show documentation
Show all versions of html2pdf Show documentation
pdfHTML is an iText add-on that lets you to parse (X)HTML snippets and the associated CSS and converts
them to PDF.
The newest version!
/*
This file is part of the iText (R) project.
Copyright (c) 1998-2024 Apryse Group NV
Authors: Apryse Software.
This program is offered under a commercial and under the AGPL license.
For commercial licensing, contact us at https://itextpdf.com/sales. For AGPL licensing, see below.
AGPL licensing:
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU Affero General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
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 .
*/
package com.itextpdf.html2pdf.css.resolve;
import com.itextpdf.styledxmlparser.css.CssContextNode;
import com.itextpdf.styledxmlparser.css.pseudo.CssPseudoElementUtil;
import com.itextpdf.styledxmlparser.node.IAttribute;
import com.itextpdf.styledxmlparser.node.IAttributes;
import com.itextpdf.styledxmlparser.node.ICustomElementNode;
import com.itextpdf.styledxmlparser.node.IElementNode;
import com.itextpdf.styledxmlparser.node.INode;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
/**
* {@link IElementNode} implementation for content nodes.
*/
public class CssContentElementNode extends CssContextNode implements IElementNode, ICustomElementNode {
/** The attributes. */
private Attributes attributes;
/** The tag name. */
private String tagName;
/**
* Creates a new {@link CssContentElementNode} instance.
*
* @param parentNode the parent node
* @param pseudoElementName the pseudo element name
* @param attributes the attributes
*/
public CssContentElementNode(INode parentNode, String pseudoElementName, Map attributes) {
super(parentNode);
this.tagName = CssPseudoElementUtil.createPseudoElementTagName(pseudoElementName);
this.attributes = new Attributes(attributes);
}
/* (non-Javadoc)
* @see com.itextpdf.styledxmlparser.html.node.IElementNode#name()
*/
@Override
public String name() {
return tagName;
}
/* (non-Javadoc)
* @see com.itextpdf.styledxmlparser.html.node.IElementNode#getAttributes()
*/
@Override
public IAttributes getAttributes() {
return attributes;
}
/* (non-Javadoc)
* @see com.itextpdf.styledxmlparser.html.node.IElementNode#getAttribute(java.lang.String)
*/
@Override
public String getAttribute(String key) {
return attributes.getAttribute(key);
}
/* (non-Javadoc)
* @see com.itextpdf.styledxmlparser.html.node.IElementNode#getAdditionalHtmlStyles()
*/
@Override
public List