All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.jpedal.objects.raw.PdfArrayIterator Maven / Gradle / Ivy

/*
 * ===========================================
 * Java Pdf Extraction Decoding Access Library
 * ===========================================
 *
 * Project Info:  http://www.idrsolutions.com
 * Help section for developers at http://www.idrsolutions.com/support/
 *
 * (C) Copyright 1997-2016 IDRsolutions and Contributors.
 *
 * This file is part of JPedal/JPDF2HTML5
 *
     This library is free software; you can redistribute it and/or
    modify it under the terms of the GNU Lesser General Public
    License as published by the Free Software Foundation; either
    version 2.1 of the License, or (at your option) 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
    Lesser General Public License for more details.

    You should have received a copy of the GNU Lesser General Public
    License along with this library; if not, write to the Free Software
    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA


 *
 * ---------------
 * PdfArrayIterator.java
 * ---------------
 */
package org.jpedal.objects.raw;

import java.util.Arrays;
import org.jpedal.fonts.StandardFonts;
import org.jpedal.io.types.StreamReaderUtils;
import org.jpedal.utils.NumberUtils;

/**
 * allow fast access to data from PDF object
 *
 */
public class PdfArrayIterator {

	public static final int TYPE_KEY_INTEGER = 1;
	public static final int TYPE_VALUE_INTEGER = 2;

	final byte[][] rawData;
	
	//used for Font chars
	boolean hasHexChars;
	
	
	int tokenCount,currentToken,spaceChar=-1;
	
	public PdfArrayIterator(final byte[][] rawData) {
		this.rawData=rawData;
		
		if(rawData!=null) {
            tokenCount = rawData.length;
        }
	}

	public boolean hasMoreTokens() {
		return currentToken=47 && firstByte<58){ //is between 0 and 9
				// / or number
                }else{
                    ii=len;
                    isNumber=false;
                }
            }
			
			if(isNumber){
                if(rawData[currentToken][0]!='/') {
                    return TYPE_KEY_INTEGER;
                } else {
                    return TYPE_VALUE_INTEGER;
                }
            }else {
                return PdfDictionary.Unknown;
            }
		}
	}

	/**
	 * should only be used with Font Object
	 */
	public String getNextValueAsFontChar(final int pointer, final boolean containsHexNumbers, final boolean allNumbers) {
		
		String value;
		
        if(currentTokenrollon is true moves the count onto the next token*/
	public String getNextValueAsString(final boolean rollon) {
		
		String value="";
		
		if(currentTokenrollon is true moves the count onto the next token*/
	public byte[] getNextValueAsByte(final boolean rollon) {

		byte[] value=null;

		if(currentToken='0' && r<='9') || (r=='/' && ptr==0)){ 
                    //note we can get /1
                }else{
                    isNumber=false;
                    break;
                }
                ptr++;
            }

		}else {
            throw new RuntimeException("Out of range exception with PdfArrayIterator");
        }
		
		return isNumber;
    }
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy