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

📄 cell.java

📁 有关对pdf操作的代码
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
/* * $Id: Cell.java 3178 2008-03-19 17:34:05Z blowagie $ * $Name$ * * Copyright 1999, 2000, 2001, 2002 by Bruno Lowagie. * * The contents of this file are subject to the Mozilla Public License Version 1.1 * (the "License"); you may not use this file except in compliance with the License. * You may obtain a copy of the License at http://www.mozilla.org/MPL/ * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License * for the specific language governing rights and limitations under the License. * * The Original Code is 'iText, a free JAVA-PDF library'. * * The Initial Developer of the Original Code is Bruno Lowagie. Portions created by * the Initial Developer are Copyright (C) 1999, 2000, 2001, 2002 by Bruno Lowagie. * All Rights Reserved. * Co-Developer of the code is Paulo Soares. Portions created by the Co-Developer * are Copyright (C) 2000, 2001, 2002 by Paulo Soares. All Rights Reserved. * * Contributor(s): all the names of the contributors are added in the source code * where applicable. * * Alternatively, the contents of this file may be used under the terms of the * LGPL license (the "GNU LIBRARY GENERAL PUBLIC LICENSE"), in which case the * provisions of LGPL are applicable instead of those above.  If you wish to * allow use of your version of this file only under the terms of the LGPL * License and not to allow others to use your version of this file under * the MPL, indicate your decision by deleting the provisions above and * replace them with the notice and other provisions required by the LGPL. * If you do not delete the provisions above, a recipient may use your version * of this file under either the MPL or the GNU LIBRARY GENERAL PUBLIC LICENSE. * * This library is free software; you can redistribute it and/or modify it * under the terms of the MPL as stated above or under the terms of the GNU * Library General Public License as published by the Free Software Foundation; * either version 2 of the License, or any later version. * * This library 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 Library general Public License for more * details. * * If you didn't download this code from the following link, you should check if * you aren't using an obsolete version: * http://www.lowagie.com/iText/ */package com.lowagie.text;import java.util.ArrayList;import java.util.Iterator;import com.lowagie.text.pdf.PdfPCell;/** * A <CODE>Cell</CODE> is a <CODE>Rectangle</CODE> containing other * <CODE>Element</CODE>s. * <P> * A <CODE>Cell</CODE> must be added to a <CODE>Table</CODE>. * The <CODE>Table</CODE> will place the <CODE>Cell</CODE> in * a <CODE>Row</CODE>. * <P> * Example: * <BLOCKQUOTE><PRE> * Table table = new Table(3); * table.setBorderWidth(1); * table.setBorderColor(new Color(0, 0, 255)); * table.setCellpadding(5); * table.setCellspacing(5); * <STRONG>Cell cell = new Cell("header");</STRONG> * <STRONG>cell.setHeader(true);</STRONG> * <STRONG>cell.setColspan(3);</STRONG> * table.addCell(cell); * <STRONG>cell = new Cell("example cell with colspan 1 and rowspan 2");</STRONG> * <STRONG>cell.setRowspan(2);</STRONG> * <STRONG>cell.setBorderColor(new Color(255, 0, 0));</STRONG> * table.addCell(cell); * table.addCell("1.1"); * table.addCell("2.1"); * table.addCell("1.2"); * table.addCell("2.2"); * </PRE></BLOCKQUOTE> * * @see		Rectangle * @see		Element * @see		Table * @see		Row */public class Cell extends Rectangle implements TextElementArray {	// membervariables	/**	 * The <CODE>ArrayList</CODE> of <CODE>Element</CODE>s	 * that are part of the content of the Cell.	 */	protected ArrayList arrayList = null;	/** The horizontal alignment of the cell content. */	protected int horizontalAlignment = Element.ALIGN_UNDEFINED;	/** The vertical alignment of the cell content. */	protected int verticalAlignment = Element.ALIGN_UNDEFINED;	/**	 * The width of the cell as a String.	 * It can be an absolute value "100" or a percentage "20%".	 */	protected float width;	protected boolean percentage = false;	/** The colspan of the cell. */	protected int colspan = 1;	/** The rowspan of the cell. */	protected int rowspan = 1;	/** The leading of the content inside the cell. */	float leading = Float.NaN;	/** Is this <CODE>Cell</CODE> a header? */	protected boolean header;	/**	 * Maximum number of lines allowed in the cell.  	 * The default value of this property is not to limit the maximum number of lines	 * (contributed by dperezcar@fcc.es)	 */	protected int maxLines = Integer.MAX_VALUE;		/**	 * If a truncation happens due to the maxLines property, then this text will 	 * be added to indicate a truncation has happened.	 * Default value is null, and means avoiding marking the truncation.  	 * A useful value of this property could be e.g. "..."	 * (contributed by dperezcar@fcc.es)	 */	String showTruncation;    /**     * Indicates that the largest ascender height should be used to determine the     * height of the first line.  Note that this only has an effect when rendered     * to PDF.  Setting this to true can help with vertical alignment problems.     */    protected boolean useAscender = false;    /**     * Indicates that the largest descender height should be added to the height of     * the last line (so characters like y don't dip into the border).   Note that     * this only has an effect when rendered to PDF.     */    protected boolean useDescender = false;    /**     * Adjusts the cell contents to compensate for border widths.  Note that     * this only has an effect when rendered to PDF.     */    protected boolean useBorderPadding;    	/** Does this <CODE>Cell</CODE> force a group change? */	protected boolean groupChange = true;	// constructors    /** Constructs an empty <CODE>Cell</CODE>. */	public Cell() {		// creates a Rectangle with BY DEFAULT a border of 0.5		super(0, 0, 0, 0);		setBorder(UNDEFINED);		setBorderWidth(0.5f);		// initializes the arraylist		arrayList = new ArrayList();	}	/**	 * Constructs an empty <CODE>Cell</CODE> (for internal use only).	 *	 * @param   dummy   a dummy value	 */	public Cell(boolean dummy) {		this();		arrayList.add(new Paragraph(0));	}	/**	 * Constructs a <CODE>Cell</CODE> with a certain content.<p>	 * The <CODE>String</CODE> will be converted into a <CODE>Paragraph</CODE>.	 * @param	content		a <CODE>String</CODE>	 */	public Cell(String content) {		this();		try {			addElement(new Paragraph(content));		}		catch(BadElementException bee) {		}	}	/**	 * Constructs a <CODE>Cell</CODE> with a certain <CODE>Element</CODE>.<p>	 * if the element is a <CODE>ListItem</CODE>, <CODE>Row</CODE> or	 * <CODE>Cell</CODE>, an exception will be thrown.	 *	 * @param	element		the element	 * @throws	BadElementException when the creator was called with a <CODE>ListItem</CODE>, <CODE>Row</CODE> or <CODE>Cell</CODE>	 */	public Cell(Element element) throws BadElementException {		this(); 		if(element instanceof Phrase) {			setLeading(((Phrase)element).getLeading());		}		addElement(element);	}	// implementation of the Element-methods	/**	 * Processes the element by adding it (or the different parts) to an	 * <CODE>ElementListener</CODE>.	 *	 * @param	listener	an <CODE>ElementListener</CODE>	 * @return	<CODE>true</CODE> if the element was processed successfully	 */	public boolean process(ElementListener listener) {		try {			return listener.add(this);		}		catch(DocumentException de) {			return false;		}	}	/**	 * Gets the type of the text element.	 *	 * @return	a type	 */	public int type() {		return Element.CELL;	}	/**	 * Gets all the chunks in this element.	 *	 * @return	an <CODE>ArrayList</CODE>	 */	public ArrayList getChunks() {		ArrayList tmp = new ArrayList();		for (Iterator i = arrayList.iterator(); i.hasNext(); ) {			tmp.addAll(((Element) i.next()).getChunks());		}		return tmp;	}	// Getters and setters	/**     * Gets the horizontal alignment.     *     * @return	a value     */   	public int getHorizontalAlignment() {   		return horizontalAlignment;   	}	/**	 * Sets the horizontal alignment.	 * @param	value	the new value	 */	public void setHorizontalAlignment(int value) {		horizontalAlignment = value;	}	/**	 * Sets the alignment of this cell.	 * This methods allows you to set the alignment as a String.	 * @param	alignment		the new alignment as a <CODE>String</CODE>	 */	public void setHorizontalAlignment(String alignment) {		setHorizontalAlignment(ElementTags.alignmentValue(alignment));	}	/**	 * Gets the vertical alignment.	 * @return	a value	 */	public int getVerticalAlignment() {		return verticalAlignment;	}	/**	 * Sets the vertical alignment.	 * @param	value	the new value	 */	public void setVerticalAlignment(int value) {		verticalAlignment = value;	}	/**	 * Sets the alignment of this paragraph.	 *	 * @param	alignment		the new alignment as a <CODE>String</CODE>	 */	public void setVerticalAlignment(String alignment) {		setVerticalAlignment(ElementTags.alignmentValue(alignment));	}	/**	 * Sets the width.	 *	 * @param	value	the new value	 */	public void setWidth(float value) {		this.width = value;	}		/**	 * Sets the width.	 * It can be an absolute value "100" or a percentage "20%"	 *	 * @param	value	the new value	 */	public void setWidth(String value) {		if (value.endsWith("%")) {			value = value.substring(0, value.length() - 1);			percentage = true;		}		width = Integer.parseInt(value);	}		/**	 * Gets the width.	 */	public float getWidth() {		return width;	}	/**	 * Gets the width as a String.	 *	 * @return	a value	 */	public String getWidthAsString() {		String w = String.valueOf(width);		if (w.endsWith(".0")) w = w.substring(0, w.length() - 2);		if (percentage) w += "%";		return w;	}	/**	 * Sets the colspan.	 *	 * @param	value	the new value	 */	public void setColspan(int value) {		colspan = value;	}	/**	 * Gets the colspan.	 * @return	a value	 */	public int getColspan() {		return colspan;	}	/**	 * Sets the rowspan.	 *	 * @param	value	the new value	 */	public void setRowspan(int value) {		rowspan = value;	}	/**	 * Gets the rowspan.	 * @return	a value	 */	public int getRowspan() {		return rowspan;	}	/**	 * Sets the leading.	 *	 * @param	value	the new value	 */	public void setLeading(float value) {		leading = value;	}	/**	 * Gets the leading.	 *	 * @return	a value	 */	public float getLeading() {		if (Float.isNaN(leading)) {			return 16;		}		return leading;	}	/**	 * Sets header.	 *	 * @param	value	the new value	 */	public void setHeader(boolean value) {		header = value;	}	/**	 * Is this <CODE>Cell</CODE> a header?	 *	 * @return	a value	 */	public boolean isHeader() {		return header;	}		/**

⌨️ 快捷键说明

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