亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? pracroform.java

?? iText可以制作中文PDF文件的JAVA源程序最新版下載
?? JAVA
字號:
/* * $Id: PRAcroForm.java,v 1.1 2002/11/19 08:33:35 blowagie Exp $ * $Name:  $ * * Copyright 2001, 2002 by Paulo Soares. * * 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. * * This class written by Mark Thompson, Copyright (C) 2002 by Mark Thompson. * * 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.pdf;import java.util.ArrayList;import java.util.Iterator;import java.util.HashMap;/** * This class captures an AcroForm on input. Basically, it extends Dictionary * by indexing the fields of an AcroForm * @author Mark Thompson */public class PRAcroForm extends PdfDictionary {    /**     * This class holds the information for a single field     */    public class FieldInformation {        String name;	PdfDictionary info;	PRIndirectReference ref;	FieldInformation(String name, PdfDictionary info, PRIndirectReference ref) {	    this.name = name; this.info = info; this.ref = ref;	}	public String getName() { return name; }	public PdfDictionary getInfo() { return info; }	public PRIndirectReference getRef() { return ref; }    };    ArrayList fields;    ArrayList stack;    HashMap fieldByName;    PdfReader reader;    /**     * Constructor     * @param reader reader of the input file     */    public PRAcroForm(PdfReader reader) {        this.reader = reader;        fields = new ArrayList();	fieldByName = new HashMap();        stack = new ArrayList();    }    /**     * Number of fields found     * @return size     */    public int size() {        return fields.size();    }        public ArrayList getFields() {        return fields;    }        public FieldInformation getField(String name) {        return (FieldInformation)fieldByName.get(name);    }        /**     * Given the title (/T) of a reference, return the associated reference     * @param name a string containing the path     * @return a reference to the field, or null     */    public PRIndirectReference getRefByName(String name) {        FieldInformation fi = (FieldInformation)fieldByName.get(name);	if (fi == null) return null;	return fi.getRef();    }    /**     * Read, and comprehend the acroform     * @param root the docment root     */    public void readAcroForm(PdfDictionary root) {        hashMap = root.hashMap;        pushAttrib(root);        PdfArray fieldlist = (PdfArray)root.get(PdfName.FIELDS);        iterateFields(fieldlist, null, null);    }    /**     * After reading, we index all of the fields. Recursive.     * @param fieldlist An array of fields     * @param fieldDict the last field dictionary we encountered (recursively)     * @param title the pathname of the field, up to this point or null     */    protected void iterateFields(PdfArray fieldlist, PRIndirectReference fieldDict, String title)    {        for (Iterator it = fieldlist.getArrayList().iterator(); it.hasNext();) {            PRIndirectReference ref = (PRIndirectReference)it.next();            PdfDictionary dict = (PdfDictionary) reader.getPdfObject(ref);	    // if we are not a field dictionary, pass our parent's values	    PRIndirectReference myFieldDict = fieldDict;	    String myTitle = title;	    PdfString tField = (PdfString)dict.get(PdfName.T);	    boolean isFieldDict = tField != null;	    if (isFieldDict) {		myFieldDict = ref;	        if (title == null) myTitle = tField.toString();		else myTitle = title + '.' + tField.toString();	    }            PdfArray kids = (PdfArray)dict.get(PdfName.KIDS);            if (kids != null) {                pushAttrib(dict);		iterateFields(kids, myFieldDict, myTitle);                stack.remove(stack.size() - 1);   // pop            }            else {          // leaf node	        if (myFieldDict != null) {		    PdfDictionary mergedDict = (PdfDictionary)stack.get(stack.size() - 1);		    if (isFieldDict)		        mergedDict = mergeAttrib(mergedDict, dict);		    mergedDict.put(PdfName.T, new PdfString(myTitle));		    FieldInformation fi = new FieldInformation(myTitle, mergedDict, myFieldDict);	            fields.add(fi);	            fieldByName.put(myTitle, fi);	        }            }        }    }    /**     * merge field attributes from two dictionaries     * @param parent one dictionary     * @param child the other dictionary     * @return a merged dictionary     */    protected PdfDictionary mergeAttrib(PdfDictionary parent, PdfDictionary child)    {        PdfDictionary targ = new PdfDictionary();        if (parent != null) targ.putAll(parent);        for (Iterator it = child.getKeys().iterator(); it.hasNext();) {            PdfName key = (PdfName) it.next();            if (key.equals(PdfName.DR) || key.equals(PdfName.DA) ||                key.equals(PdfName.Q)  || key.equals(PdfName.FF) ||                key.equals(PdfName.DV) || key.equals(PdfName.V)) {                targ.put(key,child.get(key));            }        }        return targ;    }    /**     * stack a level of dictionary. Merge in a dictionary from this level     */    protected void pushAttrib(PdfDictionary dict) {        PdfDictionary dic = null;        if (stack.size() != 0) {            dic = (PdfDictionary)stack.get(stack.size() - 1);        }        dic = mergeAttrib(dic, dict);        stack.add(dic);    }}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
精品国产免费久久| 欧美日韩一区二区三区在线| 亚洲中国最大av网站| 国产精品视频在线看| 国产香蕉久久精品综合网| 精品毛片乱码1区2区3区| 精品久久久三级丝袜| 欧美岛国在线观看| 久久先锋资源网| 久久久精品免费免费| 亚洲欧洲99久久| 亚洲欧美一区二区三区极速播放| 最新日韩在线视频| 亚洲成人av一区二区三区| 午夜精品福利在线| 美国三级日本三级久久99| 国模一区二区三区白浆| 国产精品自拍一区| 91麻豆免费看片| 欧美日本高清视频在线观看| 精品动漫一区二区三区在线观看| 国产欧美精品区一区二区三区| 欧美国产成人在线| 亚洲综合视频在线观看| 免费久久99精品国产| 国产成人综合亚洲网站| 色视频成人在线观看免| 欧美一级免费观看| 国产三级三级三级精品8ⅰ区| 一区在线播放视频| 青青草国产成人av片免费| 国产精品一区在线观看你懂的| 91一区二区三区在线观看| 91精品国产综合久久久蜜臀粉嫩| 久久久久久久久97黄色工厂| 一区二区三区四区高清精品免费观看| 日韩精品成人一区二区三区| 国产99一区视频免费| 欧美精品 日韩| 中文字幕一区二| 美女一区二区三区| proumb性欧美在线观看| 日韩一区和二区| 尤物av一区二区| 国产在线精品免费av| 欧美日韩中文精品| 国产精品女主播在线观看| 久久99精品国产.久久久久久 | 欧美在线不卡一区| 精品久久国产老人久久综合| 一区二区三区中文在线观看| 国产 欧美在线| 日韩一级成人av| 亚洲18影院在线观看| 99这里只有精品| 国产日本欧美一区二区| 久久国产精品露脸对白| 欧美午夜一区二区三区免费大片| 中文字幕精品一区二区精品绿巨人| 婷婷综合五月天| 欧美亚洲一区二区在线观看| 亚洲欧洲av一区二区三区久久| 国产精品伊人色| 精品国产乱码久久久久久浪潮| 午夜精品久久久久久久久| 欧美亚洲日本一区| 亚洲夂夂婷婷色拍ww47| 99久久精品国产毛片| 亚洲欧洲日韩一区二区三区| 成人精品一区二区三区四区| 久久久不卡网国产精品一区| 国内精品在线播放| 精品福利一区二区三区| 激情综合色播激情啊| 日韩欧美激情在线| 国产一区二区在线影院| 精品国产精品网麻豆系列| 裸体歌舞表演一区二区| 欧美精品一区男女天堂| 国产成人高清视频| 日本一区二区三区电影| 91色porny蝌蚪| 一区二区三区日韩精品| 欧美日韩视频在线第一区| 亚洲地区一二三色| 日韩一区二区三区免费看| 久色婷婷小香蕉久久| 久久久久久久久免费| 成人在线综合网| 亚洲三级电影网站| 欧美高清视频一二三区| 久久国产欧美日韩精品| 日本一区二区三区久久久久久久久不 | 欧美疯狂做受xxxx富婆| 麻豆中文一区二区| 国产欧美一区二区精品性| 91丨九色丨黑人外教| 亚洲第一搞黄网站| 久久精品亚洲一区二区三区浴池| 成人app软件下载大全免费| 亚洲一区二区三区视频在线| 日韩女优制服丝袜电影| 成人午夜精品一区二区三区| 亚洲国产一区二区a毛片| 精品免费一区二区三区| 91一区在线观看| 九色|91porny| 中文字幕一区二区不卡| 91精品国模一区二区三区| 成人爽a毛片一区二区免费| 亚洲自拍都市欧美小说| 久久精品一区二区三区不卡| 欧美最猛黑人xxxxx猛交| 国内精品免费在线观看| 亚洲一二三区在线观看| 国产亚洲视频系列| 欧美日本一道本| 91在线丨porny丨国产| 久久精品72免费观看| 一区二区三区欧美视频| 国产视频一区不卡| 日韩亚洲欧美高清| 在线免费视频一区二区| 国产高清在线观看免费不卡| 日韩精品每日更新| 亚洲人成电影网站色mp4| 欧美精品一区视频| 欧美一级高清片| 欧美精品一卡二卡| 一本久久a久久免费精品不卡| 国产一区在线看| 久久精品国产亚洲aⅴ| 亚洲一区二区成人在线观看| 中文字幕制服丝袜一区二区三区 | 狠狠色丁香久久婷婷综合丁香| 亚洲黄色录像片| 中文字幕亚洲视频| 国产精品日产欧美久久久久| 欧美v日韩v国产v| 91精品久久久久久久91蜜桃| 欧美日韩综合不卡| 欧美日韩精品专区| 色婷婷国产精品综合在线观看| 东方欧美亚洲色图在线| 黄色精品一二区| 精品一区二区在线观看| 久久成人久久鬼色| 激情久久久久久久久久久久久久久久| 午夜激情一区二区| 视频在线在亚洲| 日韩一区精品字幕| 午夜久久久影院| 日韩精品一二三区| 日本美女视频一区二区| 青青青爽久久午夜综合久久午夜| 日本亚洲欧美天堂免费| 日本vs亚洲vs韩国一区三区| 日本aⅴ免费视频一区二区三区| 日日夜夜免费精品| 久久99久久精品| 国产福利一区二区三区视频在线| 国产在线精品一区二区三区不卡| 国产麻豆精品视频| 国产馆精品极品| 91色视频在线| 91精品国产色综合久久ai换脸| 欧美一三区三区四区免费在线看| 日韩免费高清电影| 国产午夜精品在线观看| 国产精品情趣视频| 一区二区三区在线播放| 日日摸夜夜添夜夜添国产精品| 麻豆精品在线看| 丁香另类激情小说| 色av综合在线| 日韩精品一区二区三区在线观看| 久久综合色播五月| 最新日韩av在线| 秋霞午夜av一区二区三区| 春色校园综合激情亚洲| 欧美日韩国产乱码电影| 日韩精品中午字幕| 国产精品久久久久四虎| 午夜精品久久久久久久| 国产成人综合亚洲网站| 欧美剧情电影在线观看完整版免费励志电影 | 欧美色老头old∨ideo| 精品黑人一区二区三区久久 | 亚洲一区免费视频| 精品一区免费av| 91福利在线看| 国产亚洲综合在线| 五月激情六月综合| 成人国产精品免费观看| 91精品国产91久久久久久一区二区| 国产精品无人区| 老司机精品视频线观看86 | 欧美一区二区福利在线| 国产精品国产自产拍高清av王其| 偷拍一区二区三区四区|