⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 elementfactory.java

📁 源码包含生成 PDF 和 HTML 的类库
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
		setRectangleProperties(cell, attributes);		return cell;	}	/**	 * Creates an Table object based on a list of properties.	 * @param attributes	 * @return a Table	 */	public static Table getTable(Properties attributes) {		String value;		Table table;		try {			value = attributes.getProperty(ElementTags.WIDTHS);			if (value != null) {				StringTokenizer widthTokens = new StringTokenizer(value, ";");				ArrayList values = new ArrayList();				while (widthTokens.hasMoreTokens()) {					values.add(widthTokens.nextToken());				}				table = new Table(values.size());				float[] widths = new float[table.getColumns()];				for (int i = 0; i < values.size(); i++) {					value = (String) values.get(i);					widths[i] = Float.parseFloat(value + "f");				}				table.setWidths(widths);			} else {				value = attributes.getProperty(ElementTags.COLUMNS);				try {					table = new Table(Integer.parseInt(value));				} catch (Exception e) {					table = new Table(1);				}			}			table.setBorder(Table.BOX);			table.setBorderWidth(1);			table.getDefaultCell().setBorder(Table.BOX);			value = attributes.getProperty(ElementTags.LASTHEADERROW);			if (value != null) {				table.setLastHeaderRow(Integer.parseInt(value));			}			value = attributes.getProperty(ElementTags.ALIGN);			if (value != null) {				table.setAlignment(value);			}			value = attributes.getProperty(ElementTags.CELLSPACING);			if (value != null) {				table.setSpacing(Float.parseFloat(value + "f"));			}			value = attributes.getProperty(ElementTags.CELLPADDING);			if (value != null) {				table.setPadding(Float.parseFloat(value + "f"));			}			value = attributes.getProperty(ElementTags.OFFSET);			if (value != null) {				table.setOffset(Float.parseFloat(value + "f"));			}			value = attributes.getProperty(ElementTags.WIDTH);			if (value != null) {				if (value.endsWith("%"))					table.setWidth(Float.parseFloat(value.substring(0, value							.length() - 1)							+ "f"));				else {					table.setWidth(Float.parseFloat(value + "f"));					table.setLocked(true);				}			}			table.setTableFitsPage(Utilities.checkTrueOrFalse(attributes,					ElementTags.TABLEFITSPAGE));			table.setCellsFitPage(Utilities.checkTrueOrFalse(attributes,					ElementTags.CELLSFITPAGE));			table.setConvert2pdfptable(Utilities.checkTrueOrFalse(attributes,					ElementTags.CONVERT2PDFP));			setRectangleProperties(table, attributes);			return table;		} catch (BadElementException e) {			throw new ExceptionConverter(e);		}	}	/**	 * Sets some Rectangle properties (for a Cell, Table,...).	 */	private static void setRectangleProperties(Rectangle rect,			Properties attributes) {		String value;		value = attributes.getProperty(ElementTags.BORDERWIDTH);		if (value != null) {			rect.setBorderWidth(Float.parseFloat(value + "f"));		}		int border = 0;		if (Utilities.checkTrueOrFalse(attributes, ElementTags.LEFT)) {			border |= Rectangle.LEFT;		}		if (Utilities.checkTrueOrFalse(attributes, ElementTags.RIGHT)) {			border |= Rectangle.RIGHT;		}		if (Utilities.checkTrueOrFalse(attributes, ElementTags.TOP)) {			border |= Rectangle.TOP;		}		if (Utilities.checkTrueOrFalse(attributes, ElementTags.BOTTOM)) {			border |= Rectangle.BOTTOM;		}		rect.setBorder(border);		String r = attributes.getProperty(ElementTags.RED);		String g = attributes.getProperty(ElementTags.GREEN);		String b = attributes.getProperty(ElementTags.BLUE);		if (r != null || g != null || b != null) {			int red = 0;			int green = 0;			int blue = 0;			if (r != null)				red = Integer.parseInt(r);			if (g != null)				green = Integer.parseInt(g);			if (b != null)				blue = Integer.parseInt(b);			rect.setBorderColor(new Color(red, green, blue));		} else {			rect.setBorderColor(Markup.decodeColor(attributes					.getProperty(ElementTags.BORDERCOLOR)));		}		r = (String) attributes.remove(ElementTags.BGRED);		g = (String) attributes.remove(ElementTags.BGGREEN);		b = (String) attributes.remove(ElementTags.BGBLUE);		value = attributes.getProperty(ElementTags.BACKGROUNDCOLOR);		if (r != null || g != null || b != null) {			int red = 0;			int green = 0;			int blue = 0;			if (r != null)				red = Integer.parseInt(r);			if (g != null)				green = Integer.parseInt(g);			if (b != null)				blue = Integer.parseInt(b);			rect.setBackgroundColor(new Color(red, green, blue));		} else if (value != null) {			rect.setBackgroundColor(Markup.decodeColor(value));		} else {			value = attributes.getProperty(ElementTags.GRAYFILL);			if (value != null) {				rect.setGrayFill(Float.parseFloat(value + "f"));			}		}	}	/**	 * Creates a ChapterAutoNumber object based on a list of properties.	 * @param attributes	 * @return a Chapter	 */	public static ChapterAutoNumber getChapter(Properties attributes) {		ChapterAutoNumber chapter = new ChapterAutoNumber("");		setSectionParameters(chapter, attributes);		return chapter;	}	/**	 * Creates a Section object based on a list of properties.	 * @param attributes	 * @return a Section	 */	public static Section getSection(Section parent, Properties attributes) {		Section section = parent.addSection("");		setSectionParameters(section, attributes);		return section;	}	/**	 * Helper method to create a Chapter/Section object.	 * @param attributes	 */	private static void setSectionParameters(Section section,			Properties attributes) {		String value;		value = attributes.getProperty(ElementTags.NUMBERDEPTH);		if (value != null) {			section.setNumberDepth(Integer.parseInt(value));		}		value = attributes.getProperty(ElementTags.INDENT);		if (value != null) {			section.setIndentation(Float.parseFloat(value + "f"));		}		value = attributes.getProperty(ElementTags.INDENTATIONLEFT);		if (value != null) {			section.setIndentationLeft(Float.parseFloat(value + "f"));		}		value = attributes.getProperty(ElementTags.INDENTATIONRIGHT);		if (value != null) {			section.setIndentationRight(Float.parseFloat(value + "f"));		}	}	/**	 * Creates an Image object based on a list of properties.	 * @param attributes	 * @return an Image	 */	public static Image getImage(Properties attributes)			throws BadElementException, MalformedURLException, IOException {		String value;		value = attributes.getProperty(ElementTags.URL);		if (value == null)			throw new MalformedURLException("The URL of the image is missing.");		Image image = Image.getInstance(value);		value = attributes.getProperty(ElementTags.ALIGN);		int align = 0;		if (value != null) {			if (ElementTags.ALIGN_LEFT.equalsIgnoreCase(value))				align |= Image.LEFT;			else if (ElementTags.ALIGN_RIGHT.equalsIgnoreCase(value))				align |= Image.RIGHT;			else if (ElementTags.ALIGN_MIDDLE.equalsIgnoreCase(value))				align |= Image.MIDDLE;		}		if ("true".equalsIgnoreCase(attributes				.getProperty(ElementTags.UNDERLYING)))			align |= Image.UNDERLYING;		if ("true".equalsIgnoreCase(attributes				.getProperty(ElementTags.TEXTWRAP)))			align |= Image.TEXTWRAP;		image.setAlignment(align);		value = attributes.getProperty(ElementTags.ALT);		if (value != null) {			image.setAlt(value);		}		String x = attributes.getProperty(ElementTags.ABSOLUTEX);		String y = attributes.getProperty(ElementTags.ABSOLUTEY);		if ((x != null) && (y != null)) {			image.setAbsolutePosition(Float.parseFloat(x + "f"), Float					.parseFloat(y + "f"));		}		value = attributes.getProperty(ElementTags.PLAINWIDTH);		if (value != null) {			image.scaleAbsoluteWidth(Float.parseFloat(value + "f"));		}		value = attributes.getProperty(ElementTags.PLAINHEIGHT);		if (value != null) {			image.scaleAbsoluteHeight(Float.parseFloat(value + "f"));		}		value = attributes.getProperty(ElementTags.ROTATION);		if (value != null) {			image.setRotation(Float.parseFloat(value + "f"));		}		return image;	}	/**	 * Creates an Annotation object based on a list of properties.	 * @param attributes	 * @return an Annotation	 */	public static Annotation getAnnotation(Properties attributes) {		float llx = 0, lly = 0, urx = 0, ury = 0;		String value;		value = attributes.getProperty(ElementTags.LLX);		if (value != null) {			llx = Float.parseFloat(value + "f");		}		value = attributes.getProperty(ElementTags.LLY);		if (value != null) {			lly = Float.parseFloat(value + "f");		}		value = attributes.getProperty(ElementTags.URX);		if (value != null) {			urx = Float.parseFloat(value + "f");		}		value = attributes.getProperty(ElementTags.URY);		if (value != null) {			ury = Float.parseFloat(value + "f");		}		String title = attributes.getProperty(ElementTags.TITLE);		String text = attributes.getProperty(ElementTags.CONTENT);		if (title != null || text != null) {			return new Annotation(title, text, llx, lly, urx, ury);		}		value = attributes.getProperty(ElementTags.URL);		if (value != null) {			return new Annotation(llx, lly, urx, ury, value);		}		value = attributes.getProperty(ElementTags.NAMED);		if (value != null) {			return new Annotation(llx, lly, urx, ury, Integer.parseInt(value));		}		String file = attributes.getProperty(ElementTags.FILE);		String destination = attributes.getProperty(ElementTags.DESTINATION);		String page = (String) attributes.remove(ElementTags.PAGE);		if (file != null) {			if (destination != null) {				return new Annotation(llx, lly, urx, ury, file, destination);			}			if (page != null) {				return new Annotation(llx, lly, urx, ury, file, Integer						.parseInt(page));			}		}		return new Annotation("", "", llx, lly, urx, ury);	}}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -