org.jpedal.objects.raw.PageObject Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of OpenViewerFX Show documentation
Show all versions of OpenViewerFX Show documentation
Open Source (LGPL) JavaFX PDF Viewer for NetBeans plugin
/*
* ===========================================
* 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-2017 IDRsolutions and Contributors.
*
* This file is part of JPedal/JPDF2HTML5
*
@LICENSE@
*
* ---------------
* PageObject.java
* ---------------
*/
package org.jpedal.objects.raw;
public class PageObject extends PdfObject {
private byte[][] Annots, Contents, Kids, OpenAction;
private byte[] rawBase;
private String Base;
PdfObject AA, AcroForm, Dests, Group, OCProperties, O, PO, PageLabels, Properties, PV, Metadata, Outlines, Pages, MarkInfo, Names, StructTreeRoot, URI;
private int StructParents = -1, pageMode = -1;
public PageObject(final String ref) {
super(ref);
}
public PageObject(final int ref, final int gen) {
super(ref, gen);
}
@Override
public int getObjectType() {
return PdfDictionary.Page;
}
@Override
public PdfObject getDictionary(final int id) {
switch (id) {
case PdfDictionary.AA:
return AA;
case PdfDictionary.AcroForm:
return AcroForm;
case PdfDictionary.Dests:
return Dests;
case PdfDictionary.Group:
return Group;
case PdfDictionary.MarkInfo:
return MarkInfo;
case PdfDictionary.Metadata:
return Metadata;
case PdfDictionary.O:
return O;
case PdfDictionary.OCProperties:
return OCProperties;
case PdfDictionary.Outlines:
return Outlines;
case PdfDictionary.Pages:
return Pages;
case PdfDictionary.PageLabels:
return PageLabels;
case PdfDictionary.PO:
return PO;
case PdfDictionary.Properties:
return Properties;
case PdfDictionary.PV:
return PV;
case PdfDictionary.Names:
return Names;
case PdfDictionary.StructTreeRoot:
return StructTreeRoot;
case PdfDictionary.URI:
return URI;
default:
return super.getDictionary(id);
}
}
@Override
public void setIntNumber(final int id, final int value) {
switch (id) {
case PdfDictionary.StructParents:
StructParents = value;
break;
default:
super.setIntNumber(id, value);
}
}
@Override
public int getInt(final int id) {
switch (id) {
case PdfDictionary.StructParents:
return StructParents;
default:
return super.getInt(id);
}
}
@Override
public void setTextStreamValue(final int id, final byte[] value) {
switch (id) {
case PdfDictionary.Base:
rawBase = value;
break;
default:
super.setTextStreamValue(id, value);
}
}
@Override
public String getTextStreamValue(final int id) {
switch (id) {
case PdfDictionary.Base:
//setup first time
if (Base == null && rawBase != null) {
//JSString= PdfObjectReader.getTextString(rawJS);
Base = new String(rawBase);
}
return Base;
default:
return super.getTextStreamValue(id);
}
}
@Override
public void setDictionary(final int id, final PdfObject value) {
value.setID(id);
switch (id) {
case PdfDictionary.AA:
AA = value;
break;
case PdfDictionary.AcroForm:
AcroForm = value;
break;
case PdfDictionary.Dests:
Dests = value;
break;
case PdfDictionary.Group:
Group = value;
break;
case PdfDictionary.MarkInfo:
MarkInfo = value;
break;
case PdfDictionary.Metadata:
Metadata = value;
break;
case PdfDictionary.O:
O = value;
break;
case PdfDictionary.OCProperties:
OCProperties = value;
break;
case PdfDictionary.Outlines:
Outlines = value;
break;
case PdfDictionary.Pages:
Pages = value;
break;
case PdfDictionary.PageLabels:
PageLabels = value;
break;
case PdfDictionary.PO:
PO = value;
break;
case PdfDictionary.Properties:
Properties = value;
break;
case PdfDictionary.PV:
PV = value;
break;
case PdfDictionary.Names:
Names = value;
break;
case PdfDictionary.StructTreeRoot:
StructTreeRoot = value;
break;
case PdfDictionary.URI:
URI = value;
break;
default:
super.setDictionary(id, value);
}
}
@Override
public int setConstant(final int pdfKeyType, final int keyStart, final int keyLength, final byte[] raw) {
int PDFvalue = PdfDictionary.Unknown;
final int id = PdfObject.getId(keyStart, keyLength, raw);
switch (id) {
case PdfDictionary.Page:
return super.setConstant(pdfKeyType, PdfDictionary.Page);
case PdfDictionary.Pages:
return super.setConstant(pdfKeyType, PdfDictionary.Pages);
case PdfDictionary.PageMode:
pageMode = id;
break;
default:
PDFvalue = super.setConstant(pdfKeyType, id);
break;
}
return PDFvalue;
}
@Override
public int getParameterConstant(final int key) {
switch (key) {
case PdfDictionary.PageMode:
return pageMode;
//check general values
default:
return super.getParameterConstant(key);
}
}
@Override
public PdfArrayIterator getMixedArray(final int id) {
switch (id) {
case PdfDictionary.OpenAction:
return new PdfArrayIterator(OpenAction);
default:
return super.getMixedArray(id);
}
}
@Override
public byte[][] getKeyArray(final int id) {
switch (id) {
case PdfDictionary.Annots:
return deepCopy(Annots);
case PdfDictionary.Contents:
return deepCopy(Contents);
case PdfDictionary.Kids:
return deepCopy(Kids);
default:
return super.getKeyArray(id);
}
}
@Override
public void setKeyArray(final int id, final byte[][] value) {
switch (id) {
case PdfDictionary.Annots:
Annots = value;
break;
case PdfDictionary.Contents:
Contents = value;
break;
case PdfDictionary.Kids:
Kids = value;
break;
default:
super.setKeyArray(id, value);
}
}
@Override
public void setMixedArray(final int id, final byte[][] value) {
switch (id) {
case PdfDictionary.OpenAction:
OpenAction = value;
break;
default:
super.setMixedArray(id, value);
}
}
}