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: 7.15.25
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
 *
 @LICENSE@
 *
 * ---------------
 * 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