Android Open Source - PdfParse-android P D F Rectangle






From Project

Back to project page PdfParse-android.

License

The source code is released under:

GNU Lesser General Public License

If you think the Android project PdfParse-android listed in this page is inappropriate, such as containing malicious code/tools or violating the copyright, please email info at java2s dot com, thanks.

Java Source Code

/*
 * Copyright (c) 2013 Anton Golinko// w  w w .java2  s .co  m
 *
 * 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
 */

package org.pdfparse;

import org.pdfparse.cos.COSArray;
import org.pdfparse.cos.COSObject;
import org.pdfparse.exception.EParseError;

import java.io.IOException;
import java.io.OutputStream;

public class PDFRectangle implements COSObject {
    /** lower left x */
    private float llx = 0;

    /** lower left y */
    private float lly = 0;

    /** upper right x */
    private float urx = 0;

    /** upper right y */
    private float ury = 0;

    // constructors

    /**
     * Constructs a <CODE>PdfRectangle</CODE>-object.
     *
     * @param    llx      lower left x
     * @param    lly      lower left y
     * @param    urx      upper right x
     * @param    ury      upper right y
     *
     */

    public PDFRectangle(float llx, float lly, float urx, float ury) {
        this.llx = llx;
        this.lly = lly;
        this.urx = urx;
        this.ury = ury;
        normalize();
    }

    public PDFRectangle(COSArray array) {
        this.llx = array.getInt(0);
        this.lly = array.getInt(1);
        this.urx = array.getInt(2);
        this.ury = array.getInt(3);
        normalize();
    }

    @Override
    public void parse(PDFRawData src, ParsingContext context) throws EParseError {
        COSArray array = new COSArray(src, context);
        this.llx = array.getInt(0);
        this.lly = array.getInt(1);
        this.urx = array.getInt(2);
        this.ury = array.getInt(3);
        normalize();
    }

    @Override
    public void produce(OutputStream dst, ParsingContext context) throws IOException {
        String s = String.format("[%.2f %.2f %.2f %.2f]", llx, lly, urx, ury);
        dst.write(s.getBytes());
    }

    /**
     * Return a string representation of this rectangle.
     *
     * @return This object as a string.
     */
    public String toString()
    {
        return String.format("[%.2f %.2f %.2f %.2f]", llx, lly, urx, ury);
    }

    public void normalize() {
        float t;
        if (llx > urx) {
            t = llx;
            llx = urx;
            urx = t;
        }

        if (lly > ury) {
            t = lly;
            lly = ury;
            ury = t;
        }
    }

    /**
     * Method to determine if the x/y point is inside this rectangle.
     * @param x The x-coordinate to test.
     * @param y The y-coordinate to test.
     * @return True if the point is inside this rectangle.
     */
    public boolean contains( float x, float y ) {
        return x >= llx && x <= urx &&
                y >= lly && y <= ury;
    }

    /**
     * Get the width of this rectangle as calculated by
     * upperRightX - lowerLeftX.
     *
     * @return The width of this rectangle.
     */
    public float getWidth() {
        return urx - llx;
    }

    /**
     * Get the height of this rectangle as calculated by
     * upperRightY - lowerLeftY.
     *
     * @return The height of this rectangle.
     */
    public float getHeight() {
        return ury - lly;
    }

    /**
     * Move the rectangle the given relative amount.
     *
     * @param dx positive values will move rectangle to the right, negative's to the left.
     * @param dy positive values will move the rectangle up, negative's down.
     */
    public void move(float dx, float dy) {
        llx += dx;
        lly += dy;
        urx += dx;
        ury += dy;
    }
}




Java Source Code List

org.pdfparse.PDFDefines.java
org.pdfparse.PDFDefines.java
org.pdfparse.PDFDocCatalog.java
org.pdfparse.PDFDocCatalog.java
org.pdfparse.PDFDocInfo.java
org.pdfparse.PDFDocInfo.java
org.pdfparse.PDFDocument.java
org.pdfparse.PDFDocument.java
org.pdfparse.PDFKeywords.java
org.pdfparse.PDFKeywords.java
org.pdfparse.PDFPageNode.java
org.pdfparse.PDFPageNode.java
org.pdfparse.PDFPage.java
org.pdfparse.PDFPage.java
org.pdfparse.PDFRawData.java
org.pdfparse.PDFRawData.java
org.pdfparse.PDFRectangle.java
org.pdfparse.PDFRectangle.java
org.pdfparse.ParsingContext.java
org.pdfparse.ParsingContext.java
org.pdfparse.ParsingEvent.java
org.pdfparse.ParsingEvent.java
org.pdfparse.ParsingGetObject.java
org.pdfparse.ParsingGetObject.java
org.pdfparse.XRefEntry.java
org.pdfparse.XRefEntry.java
org.pdfparse.XRef.java
org.pdfparse.XRef.java
org.pdfparse.cos.COSArray.java
org.pdfparse.cos.COSArray.java
org.pdfparse.cos.COSBool.java
org.pdfparse.cos.COSBool.java
org.pdfparse.cos.COSDictionary.java
org.pdfparse.cos.COSDictionary.java
org.pdfparse.cos.COSName.java
org.pdfparse.cos.COSName.java
org.pdfparse.cos.COSNull.java
org.pdfparse.cos.COSNull.java
org.pdfparse.cos.COSNumber.java
org.pdfparse.cos.COSNumber.java
org.pdfparse.cos.COSObject.java
org.pdfparse.cos.COSObject.java
org.pdfparse.cos.COSReference.java
org.pdfparse.cos.COSReference.java
org.pdfparse.cos.COSStream.java
org.pdfparse.cos.COSStream.java
org.pdfparse.cos.COSString.java
org.pdfparse.cos.COSString.java
org.pdfparse.exception.EDateConvertError.java
org.pdfparse.exception.EDateConvertError.java
org.pdfparse.exception.ENotSupported.java
org.pdfparse.exception.ENotSupported.java
org.pdfparse.exception.EParseError.java
org.pdfparse.exception.EParseError.java
org.pdfparse.filter.LZWDecoder.java
org.pdfparse.filter.LZWDecoder.java
org.pdfparse.filter.StreamDecoder.java
org.pdfparse.filter.StreamDecoder.java
org.pdfparse.filter.TIFFLZWDecoder.java
org.pdfparse.filter.TIFFLZWDecoder.java
org.pdfparse.utils.ByteBuffer.java
org.pdfparse.utils.ByteBuffer.java
org.pdfparse.utils.DateConverter.java
org.pdfparse.utils.DateConverter.java
org.pdfparse.utils.IntHashtable.java
org.pdfparse.utils.IntHashtable.java