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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? pdfdocument.java

?? iText可以制作中文PDF文件的JAVA源程序最新版下載
?? JAVA
?? 第 1 頁 / 共 5 頁
字號:
     */        public void open() {        if (!open) {            super.open();            writer.open();            rootOutline = new PdfOutline(writer);            currentOutline = rootOutline;        }        try {            initPage();        }        catch(DocumentException de) {            throw new ExceptionConverter(de);        }    }        void outlineTree(PdfOutline outline) throws IOException {        outline.setIndirectReference(writer.getPdfIndirectReference());        if (outline.parent() != null)            outline.put(PdfName.PARENT, outline.parent().indirectReference());        ArrayList kids = outline.getKids();        int size = kids.size();        for (int k = 0; k < size; ++k)            outlineTree((PdfOutline)kids.get(k));        for (int k = 0; k < size; ++k) {            if (k > 0)                ((PdfOutline)kids.get(k)).put(PdfName.PREV, ((PdfOutline)kids.get(k - 1)).indirectReference());            if (k < size - 1)                ((PdfOutline)kids.get(k)).put(PdfName.NEXT, ((PdfOutline)kids.get(k + 1)).indirectReference());        }        if (size > 0) {            outline.put(PdfName.FIRST, ((PdfOutline)kids.get(0)).indirectReference());            outline.put(PdfName.LAST, ((PdfOutline)kids.get(size - 1)).indirectReference());        }        for (int k = 0; k < size; ++k) {            PdfOutline kid = (PdfOutline)kids.get(k);            writer.addToBody(kid, kid.indirectReference());        }    }        void writeOutlines() throws IOException {        if (rootOutline.getKids().size() == 0)            return;        outlineTree(rootOutline);        writer.addToBody(rootOutline, rootOutline.indirectReference());    }        void traverseOutlineCount(PdfOutline outline) {        ArrayList kids = outline.getKids();        PdfOutline parent = outline.parent();        if (kids.size() == 0) {            if (parent != null) {                parent.setCount(parent.getCount() + 1);            }        }        else {            for (int k = 0; k < kids.size(); ++k) {                traverseOutlineCount((PdfOutline)kids.get(k));            }            if (parent != null) {                if (outline.isOpen()) {                    parent.setCount(outline.getCount() + parent.getCount() + 1);                }                else {                    parent.setCount(parent.getCount() + 1);                    outline.setCount(-outline.getCount());                }            }        }    }        void calculateOutlineCount() {        if (rootOutline.getKids().size() == 0)            return;        traverseOutlineCount(rootOutline);    }    /**     * Closes the document.     * <B>     * Once all the content has been written in the body, you have to close     * the body. After that nothing can be written to the body anymore.     */        public void close() {        if (close) {            return;        }        try {            newPage();            if (imageWait != null) newPage();            if (annotations.size() > 0)                throw new RuntimeException(annotations.size() + " annotations had invalid placement pages.");            PdfPageEvent pageEvent = writer.getPageEvent();            if (pageEvent != null)                pageEvent.onCloseDocument(writer, this);            super.close();                        writer.addLocalDestinations(localDestinations);            calculateOutlineCount();            writeOutlines();        }        catch(Exception e) {            throw new ExceptionConverter(e);        }                writer.close();    }        /** Adds a font to the current page.     * @param name the name of the font     * @param ref the indirect reference to this font     */    public void addFont(PdfName name, PdfIndirectReference ref) {        fontDictionary.put(name, ref);    }        public void addColor(PdfName name, PdfIndirectReference ref) {        colorDictionary.put(name, ref);    }        public PdfName addPatternToPage(PdfPatternPainter painter) {        PdfName name = writer.addSimplePattern(painter);        patternDictionary.put(name, painter.getIndirectReference());        return name;    }        public void addShadingPatternToPage(PdfShadingPattern shading) {        writer.addSimpleShadingPattern(shading);        patternDictionary.put(shading.getPatternName(), shading.getPatternReference());    }        public void addShadingToPage(PdfShading shading) {        writer.addSimpleShading(shading);        shadingDictionary.put(shading.getShadingName(), shading.getShadingReference());    }        /** Adds a <CODE>PdfPTable</CODE> to the document.     * @param ptable the <CODE>PdfPTable</CODE> to be added to the document.     * @param xWidth the width the <CODE>PdfPTable</CODE> occupies in the page     * @throws DocumentException on error     */        void addPTable(PdfPTable ptable, float xWidth) throws DocumentException {        if (ptable.getHeaderRows() >= ptable.size())            return;        boolean skipHeader = ptable.getSkipFirstHeader();        float headerHeight = ptable.getHeaderHeight();        float bottom = indentBottom();        float baseY = indentTop() - currentHeight;        float currentY = baseY;        int startRow = ptable.getHeaderRows();        int currentRow = startRow;        PdfContentByte cv[] = null;        float eventY = 0;        int eventRow = 0;        int eventHeader = 0;        float absoluteWidths[] = ptable.getAbsoluteWidths();        PdfPTableEvent event = ptable.getTableEvent();        ptable.setTableEvent(null);        float heights[] = new float[ptable.size()];        int heightsIdx = 0;        for (currentRow = startRow; currentRow < ptable.size(); ++currentRow) {            if (currentRow == startRow && currentY - ptable.getRowHeight(currentRow) - headerHeight < bottom) {                if (currentHeight == 0)                    ++startRow;                else {                    newPage();                    startRow = currentRow;                    --currentRow;                    bottom = indentBottom();                    baseY = indentTop() - currentHeight;                    currentY = baseY;                    skipHeader = false;                }                continue;            }            if (currentY - ptable.getRowHeight(currentRow) < bottom) {                if (cv != null) {                    if (event != null) {                        float finalHeights[] = new float[heightsIdx + 1];                        finalHeights[0] = eventY;                        for (int k = 0; k < heightsIdx; ++k)                            finalHeights[k + 1] = finalHeights[k] - heights[k];                        event.tableLayout(ptable, ptable.getEventWidths(xWidth, eventRow, eventRow + heightsIdx - eventHeader, true), finalHeights, eventHeader, eventRow, cv);                    }                    PdfPTable.endWritingRows(cv);                    cv = null;                }                newPage();                startRow = currentRow;                --currentRow;                bottom = indentBottom();                baseY = indentTop() - currentHeight;                currentY = baseY;            }            else {                if (cv == null) {                    cv = PdfPTable.beginWritingRows(writer.getDirectContent());                    if (event != null && !skipHeader) {                        heightsIdx = 0;                        eventHeader = ptable.getHeaderRows();                        for (int k = 0; k < eventHeader; ++k)                            heights[heightsIdx++] = ptable.getRowHeight(k);                        eventY = currentY;                        eventRow = currentRow;                    }                    if (!skipHeader)                        currentY = ptable.writeSelectedRows(0, ptable.getHeaderRows(), xWidth, currentY, cv);                    else                        skipHeader = false;                }                if (event != null) {                    heights[heightsIdx++] = ptable.getRowHeight(currentRow);                }                currentY = ptable.writeSelectedRows(currentRow, currentRow + 1, xWidth, currentY, cv);            }        }        if (cv != null) {            if (event != null) {                float finalHeights[] = new float[heightsIdx + 1];                finalHeights[0] = eventY;                for (int k = 0; k < heightsIdx; ++k)                    finalHeights[k + 1] = finalHeights[k] - heights[k];                event.tableLayout(ptable, ptable.getEventWidths(xWidth, eventRow, eventRow + heightsIdx - eventHeader, true), finalHeights, eventHeader, eventRow, cv);            }            PdfPTable.endWritingRows(cv);            text.moveText(0, currentY - baseY);            currentHeight = indentTop() - currentY;        }        ptable.setTableEvent(event);            }        /**     * Signals that an <CODE>Element</CODE> was added to the <CODE>Document</CODE>.     *     * @param element the element to add     * @return <CODE>true</CODE> if the element was added, <CODE>false</CODE> if not.     * @throws DocumentException when a document isn't open yet, or has been closed     */        public boolean add(Element element) throws DocumentException {        if (writer != null && writer.isPaused()) {            return false;        }        try {                        switch(element.type()) {                                // Information (headers)                case Element.HEADER:                    info.addkey(((Header)element).name(), ((Header)element).content());                    break;                case Element.TITLE:                    info.addTitle(((Meta)element).content());                    break;                case Element.SUBJECT:                    info.addSubject(((Meta)element).content());                    break;                case Element.KEYWORDS:                    info.addKeywords(((Meta)element).content());                    break;                case Element.AUTHOR:                    info.addAuthor(((Meta)element).content());                    break;                case Element.CREATOR:                    info.addCreator(((Meta)element).content());                    break;                case Element.PRODUCER:                    // you can not change the name of the producer                    info.addProducer();                    break;                case Element.CREATIONDATE:                    // you can not set the creation date, only reset it                    info.addCreationDate();                    break;                                        // content (text)                case Element.CHUNK: {                    // if there isn't a current line available, we make one                    if (line == null) {                        carriageReturn();                    }                                        // we cast the element to a chunk                    PdfChunk chunk = new PdfChunk((Chunk) element, currentAction);                    // we try to add the chunk to the line, until we succeed                    {                        PdfChunk overflow;                        while ((overflow = line.add(chunk)) != null) {                            carriageReturn();                            chunk = overflow;                        }                    }                    pageEmpty = false;                    if (chunk.isAttribute(Chunk.NEWPAGE)) {                        newPage();                    }                    break;                }                case Element.ANCHOR: {                    Anchor anchor = (Anchor) element;                    String url = anchor.reference();                    leading = anchor.leading();                    if (url != null) {                        currentAction = new PdfAction(url);                    }                                        // we process the element                    element.process(this);                    currentAction = null;                    break;                }                case Element.ANNOTATION: {                    if (line == null) {                        carriageReturn();                    }                    Annotation annot = (Annotation) element;                    switch(annot.annotationType()) {

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产自产2019最新不卡| 水野朝阳av一区二区三区| 精品久久久久99| 911精品国产一区二区在线| 欧美色图第一页| 91精品国产综合久久久久久久久久 | 欧美人狂配大交3d怪物一区| 欧美性感一区二区三区| 欧美精品久久99| 欧美sm美女调教| 久久久久久久久一| 综合久久国产九一剧情麻豆| 亚洲欧美另类在线| 亚洲成人动漫一区| 国产主播一区二区| 99re视频精品| 欧美日韩不卡在线| 欧美精品一区二区三区一线天视频| 精品国产亚洲一区二区三区在线观看 | 粉嫩一区二区三区在线看| 成人一级片在线观看| 色婷婷精品久久二区二区蜜臂av | 26uuu国产电影一区二区| 国产女主播一区| 亚洲午夜精品17c| 国内精品伊人久久久久影院对白| 国产福利精品一区| 欧美色网一区二区| 久久亚洲欧美国产精品乐播 | 精品国产露脸精彩对白| 最新中文字幕一区二区三区 | 欧洲一区二区三区在线| 欧美一区二区三区人| 中文字幕一区日韩精品欧美| 日韩和欧美一区二区| 成人福利视频在线看| 欧美电影一区二区三区| 成人欧美一区二区三区在线播放| 免费在线观看不卡| 在线亚洲免费视频| 中文字幕在线观看一区二区| 日韩电影在线一区二区三区| 色综合色狠狠综合色| 国产亚洲一二三区| 日本中文字幕一区二区视频 | 日韩一区二区免费电影| 亚洲色图.com| 高清shemale亚洲人妖| 欧美一级日韩免费不卡| 一级中文字幕一区二区| 成人黄色一级视频| 久久久久一区二区三区四区| 蜜臀av国产精品久久久久| 欧美亚州韩日在线看免费版国语版| 久久久精品中文字幕麻豆发布| 图片区日韩欧美亚洲| 在线观看中文字幕不卡| 亚洲精品免费在线| 粉嫩在线一区二区三区视频| 久久综合999| 日本欧美韩国一区三区| 欧美肥妇free| 奇米四色…亚洲| 日韩小视频在线观看专区| 午夜私人影院久久久久| 欧美调教femdomvk| 一区二区不卡在线视频 午夜欧美不卡在| 成人黄色小视频| 自拍偷拍亚洲综合| 不卡视频免费播放| 日韩毛片精品高清免费| 99精品视频一区| 一区二区三区在线影院| 色综合色综合色综合| 亚洲图片自拍偷拍| 欧美日韩精品一区二区天天拍小说| 亚洲图片有声小说| 678五月天丁香亚洲综合网| 日韩精品每日更新| 26uuu国产一区二区三区| 国产成人精品影视| 国产精品久99| 色综合久久九月婷婷色综合| 亚洲影院免费观看| 欧美一级艳片视频免费观看| 韩国成人在线视频| 亚洲欧美在线高清| 欧美日韩精品一区二区三区| 久久精品999| 国产精品久久久久久久久搜平片| 97久久超碰精品国产| 亚洲高清久久久| 精品久久久久久久久久久久久久久 | 91精品国产欧美一区二区成人| 美国十次了思思久久精品导航| 精品美女在线观看| 成人性生交大片免费看视频在线 | 日韩理论在线观看| 欧美老年两性高潮| 国产精品一区2区| 亚洲国产日韩a在线播放性色| 日韩欧美一区二区免费| 9色porny自拍视频一区二区| 婷婷丁香久久五月婷婷| 久久婷婷久久一区二区三区| 日本韩国欧美三级| 卡一卡二国产精品| 亚洲精品网站在线观看| 精品国产一区二区三区四区四| www.日韩精品| 看国产成人h片视频| 亚洲最大的成人av| 久久久久久久久岛国免费| 欧美日韩国产高清一区二区| 成人av免费在线播放| 日本在线播放一区二区三区| 亚洲女爱视频在线| 久久综合色一综合色88| 欧美在线视频不卡| 成人免费毛片片v| 另类综合日韩欧美亚洲| 亚洲一区二区三区中文字幕 | 欧美亚洲尤物久久| 不卡电影一区二区三区| 精品综合免费视频观看| 亚洲一区在线观看网站| 国产精品入口麻豆九色| 亚洲精品在线免费播放| 在线电影一区二区三区| 91黄色免费看| 成人久久久精品乱码一区二区三区| 亚洲成人免费观看| 亚洲精品高清在线| 国产精品情趣视频| 欧美精品一区在线观看| 日韩欧美久久一区| 日韩一级视频免费观看在线| 欧美性videosxxxxx| 在线观看日韩国产| 91一区二区三区在线播放| 懂色中文一区二区在线播放| 国内精品国产成人国产三级粉色| 奇米影视在线99精品| 日韩国产高清影视| **性色生活片久久毛片| 国产精品毛片久久久久久久| 久久日一线二线三线suv| 久久综合给合久久狠狠狠97色69| 日韩欧美中文字幕精品| 欧美一区二区女人| 日韩欧美中文字幕公布| 日韩免费一区二区三区在线播放| 欧美久久一二三四区| 91精品国产综合久久蜜臀 | 亚洲va韩国va欧美va精品| 亚洲国产精品久久人人爱 | 久久美女艺术照精彩视频福利播放| 51精品久久久久久久蜜臀| 欧美一卡在线观看| 久久久av毛片精品| 日本一区二区三区国色天香 | 日韩和的一区二区| 麻豆精品一区二区三区| 国产乱子伦视频一区二区三区| 国产在线视频一区二区| 成人激情小说乱人伦| 欧美亚洲一区二区三区四区| 制服丝袜国产精品| 2024国产精品| 亚洲欧美欧美一区二区三区| 亚洲第一会所有码转帖| 久久国产综合精品| k8久久久一区二区三区| 欧美人妇做爰xxxⅹ性高电影| 日韩一区二区免费视频| 国产精品久久久久天堂| 亚洲成av人片在线观看无码| 国内精品视频一区二区三区八戒 | 亚洲成人你懂的| 国产不卡免费视频| 欧洲亚洲国产日韩| 久久―日本道色综合久久| 亚洲欧美激情一区二区| 久久激情五月婷婷| 一本色道久久综合精品竹菊| 日韩欧美的一区二区| 亚洲同性gay激情无套| 日本伊人精品一区二区三区观看方式| 国产福利91精品一区二区三区| 色婷婷综合久久久| 26uuu精品一区二区三区四区在线| 成人免费在线视频观看| 九九在线精品视频| 欧美日韩一级黄| 国产精品美女久久久久aⅴ国产馆| 日韩1区2区日韩1区2区| 色婷婷精品大在线视频| 中文字幕精品在线不卡| 另类人妖一区二区av| 色综合久久久久综合|