pdfcollectionfield.java
来自「有关对pdf操作的代码」· Java 代码 · 共 126 行
JAVA
126 行
package com.lowagie.text.pdf.collection;import com.lowagie.text.pdf.PdfBoolean;import com.lowagie.text.pdf.PdfDate;import com.lowagie.text.pdf.PdfDictionary;import com.lowagie.text.pdf.PdfName;import com.lowagie.text.pdf.PdfNumber;import com.lowagie.text.pdf.PdfObject;import com.lowagie.text.pdf.PdfString;/** * @author blowagie * */public class PdfCollectionField extends PdfDictionary { /** A possible type of collection field. */ public static final int TEXT = 0; /** A possible type of collection field. */ public static final int DATE = 1; /** A possible type of collection field. */ public static final int NUMBER = 2; /** A possible type of collection field. */ public static final int FILENAME = 3; /** A possible type of collection field. */ public static final int DESC = 4; /** A possible type of collection field. */ public static final int MODDATE = 5; /** A possible type of collection field. */ public static final int CREATIONDATE = 6; /** A possible type of collection field. */ public static final int SIZE = 7; /** The type of the PDF collection field. */ protected int type; /** * Creates a PdfCollectionField. * @param name the field name * @param type the field type */ public PdfCollectionField(String name, int type) { super(PdfName.COLLECTIONFIELD); put(PdfName.N, new PdfString(name, PdfObject.TEXT_UNICODE)); this.type = type; switch(type) { default: put(PdfName.SUBTYPE, PdfName.S); break; case DATE: put(PdfName.SUBTYPE, PdfName.D); break; case NUMBER: put(PdfName.SUBTYPE, PdfName.N); break; case FILENAME: put(PdfName.SUBTYPE, PdfName.F); break; case DESC: put(PdfName.SUBTYPE, PdfName.DESC); break; case MODDATE: put(PdfName.SUBTYPE, PdfName.MODDATE); break; case CREATIONDATE: put(PdfName.SUBTYPE, PdfName.CREATIONDATE); break; case SIZE: put(PdfName.SUBTYPE, PdfName.SIZE); break; } } /** * The relative order of the field name. Fields are sorted in ascending order. * @param i a number indicating the order of the field */ public void setOrder(int i) { put(PdfName.O, new PdfNumber(i)); } /** * Sets the initial visibility of the field. * @param visible the default is true (visible) */ public void setVisible(boolean visible) { put(PdfName.V, new PdfBoolean(visible)); } /** * Indication if the field value should be editable in the viewer. * @param editable the default is false (not editable) */ public void setEditable(boolean editable) { put(PdfName.E, new PdfBoolean(editable)); } /** * Checks if the type of the field is suitable for a Collection Item. */ public boolean isCollectionItem() { switch(type) { case TEXT: case DATE: case NUMBER: return true; default: return false; } } /** * Returns a PdfObject that can be used as the value of a Collection Item. * @param v value the value that has to be changed into a PdfObject (PdfString, PdfDate or PdfNumber) */ public PdfObject getValue(String v) { switch(type) { case TEXT: return new PdfString(v, PdfObject.TEXT_UNICODE); case DATE: return new PdfDate(PdfDate.decode(v)); case NUMBER: return new PdfNumber(v); } throw new IllegalArgumentException(v + " is not an acceptable value for the field " + get(PdfName.N).toString()); }}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?