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

org.jpedal.objects.structuredtext.HTMLStructuredContentHandler Maven / Gradle / Ivy

There is a newer version: 20151002
Show newest version
/*
 * ===========================================
 * 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
 *
     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


 *
 * ---------------
 * HTMLStructuredContentHandler.java
 * ---------------
 */

package org.jpedal.objects.structuredtext;

import org.jpedal.objects.raw.PdfDictionary;
import org.jpedal.objects.raw.PdfObject;
import org.jpedal.render.DynamicVectorRenderer;

/**
 *
 * @author markee
 */
public class HTMLStructuredContentHandler extends StructuredContentHandler {

   

    public HTMLStructuredContentHandler(final Object markedContent, final DynamicVectorRenderer current) {

            super(markedContent);
            
            this.current=current;
            
            isHTML=true;
        
    }
    
    @Override
    public void BDC(final PdfObject BDCobj) {
        
        super.BDC(BDCobj);
        	
        if(BDCobj!=null){
            setHTMLTag(BDCobj,true);
        }
    }

    private void setHTMLTag(final PdfObject BDCobj, final boolean isOpenTag) {
        

        final int MCID=BDCobj.getInt(PdfDictionary.MCID);
        
        final String param=values.get(String.valueOf(MCID));
        
        if(isOpenTag){
            current.writeCustom(DynamicVectorRenderer.TEXT_STRUCTURE_OPEN, param);
       //     System.out.println("Open "+MCID+" "+param+" "+current);
        }else{
            current.writeCustom(DynamicVectorRenderer.TEXT_STRUCTURE_CLOSE, param);
        //     System.out.println("Close "+MCID+" "+param+" "+current);
        }
        
        /*
        //any custom tags
        if(isOpenTag && BDCobj!=null){
            final Map metadata=BDCobj.getOtherDictionaries();
            if(metadata!=null){
                final Iterator customValues=metadata.keySet().iterator();
                Object key;
                while(customValues.hasNext()){
                    key=customValues.next();
                    
                    current.writeCustom(OutputDisplay.TEXT,key.toString()+"="+metadata.get(key).toString());
                    
                    //if(addCoordinates){
                       root.setAttribute("x1", String.valueOf((int) x1));
                       root.setAttribute("y1", String.valueOf((int) y1));
                        root.setAttribute("x2", String.valueOf((int) x2));
                        root.setAttribute("y2", String.valueOf((int) y2));
                   // }
                }
            }
        }/**/
    }
    
    @Override
    public void BMC(final String op) {

        setBMCvalues(op);

        final PdfObject BDCobj= dictionaries.get(String.valueOf(markedContentLevel));
    	
        if(BDCobj!=null){
            setHTMLTag(BDCobj,true);
        }
	}
    
    @Override
    public void EMC() {

        setEMCValues();
        
    	final PdfObject BDCobj= dictionaries.get(String.valueOf(markedContentLevel));
    	
        if(BDCobj!=null){
            setHTMLTag(BDCobj,false);
        }
    }
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy