Example usage for org.apache.pdfbox.cos COSFloat COSFloat

List of usage examples for org.apache.pdfbox.cos COSFloat COSFloat

Introduction

In this page you can find the example usage for org.apache.pdfbox.cos COSFloat COSFloat.

Prototype

public COSFloat(String aFloat) throws IOException 

Source Link

Document

Constructor.

Usage

From source file:com.santaanna.friendlyreader.pdfstod.pdfstod3.ReplaceStringStreamEngine.java

License:Apache License

public String grayInsert(String reststr, COSStream cosStream, int pageind) {
    SkrivUt(4, "Frst i grayInsert.");
    // Anvnd meningsvektor fr att hmta meningar.
    // Metoden rknar bara tecknen i string och mening och antar att de r synkade
    // i vrigt./*  www . j  a va2  s. com*/

    // ShowText Tj = new ShowText(); // Tj
    // ShowTextGlyph TJ = new ShowTextGlyph(); // TJ
    int mindex = mind;
    PDFOperator Tj = PDFOperator.getOperator("Tj");
    PDFOperator TJ = PDFOperator.getOperator("TJ");
    PDFOperator g = PDFOperator.getOperator("g");
    COSFloat gval = null;
    try {
        gval = new COSFloat("0.0");
    } catch (IOException ioec) {
        SkrivUt(0, "Fel p gval!");
    }
    String restretur = ""; // Resterande text p meningsrad. En arbetsstruktur.
    String men; // Aktuell meningsstruktur.
    if (reststr != "")
        men = reststr;
    else
        men = meningsvektor.get(mindex).helameningen;
    // terskrivet Hit!
    int menlen = men.length(); // Lngden p den aktuella meningen.
    int mvektlen = meningsvektor.size(); // Storleken p vektorn.
    byte[] bytestr; // string representerad som byte[]
    byte[] tempbstr; // byte[] fr temporr lagring.
    int strlen; // Lngden p den aktuella stringen.
    COSString prevny = null;
    boolean firsttime = true;
    boolean kapad = false;
    List tokens = null;
    try {
        SkrivUt(4, "Frst i grayInsert.");
        tokens = cosStream.getStreamTokens(); // AH* Hmtar tokens frn strukturen istllet.
        // Dessa data skrivs ver hr:
        // tokens = pageTokens.get( pageind ); Fungerade tidigare.
        listTokens(tokens); // Data innan gray.
        // List tokens = getTokenList();// AH* parser.getTokens(); Tidigare hmtning av lista.
        // Dvs hmta INTE tokens frn den parsade filen. Anvnd tidigare data.
        LinkedList arguments = new LinkedList(); // AH* argumenten till operatorn.
        SkrivUt(4, ">>> AddGray-Token size: " + tokens.size());
        for (int j = 0; j < tokens.size(); j++) {
            Object next = tokens.get(j);
            if (next instanceof PDFOperator) {
                PDFOperator op = (PDFOperator) next;
                //Tj and TJ are the two operators that display
                //strings in a PDF
                //AH:
                //SkrivUt(4, "ArgumentList length: " + arguments.size());
                //>> AH* SkrivUt(4, "Operator anrop:" + OperatorCall( op, arguments ));
                // AH: Hr borde man gra ett anrop till StreamEngine!
                arguments = new LinkedList(); // Mste nollstlla argumenten
                // efter varje operator.
                if (op.getOperation().equals("Tj")) {
                    SkrivUt(4, "Tj hittad.");
                    // Lgg till gray operator och argument!
                    tokens.add(j - 1, g);
                    tokens.add(j - 1, gval);
                    j = j + 2;
                    //Tj takes one operator and that is the string
                    //to display so lets update that operator
                    COSString previous = (COSString) tokens.get(j - 1);
                    String string = previous.getString();
                    prevny = null;
                    bytestr = previous.getBytes();
                    strlen = string.length();
                    //SkrivUt(4, "Men: " + men);
                    //SkrivUt(4, "string: "+ string);

                    // Kolla kommenterad kod.
                    // HTexten += string;
                    // string = string.replaceFirst( strToFind, message );
                    // previous.reset();
                    // previous.append( string.getBytes() );
                    // AH* Testa tillgg av kod.
                    /*
                    tokens.add(j-1, gop);
                    if (gray1)
                    {
                        tokens.add(j-1,cfloat1 );
                        gray1 = false;
                    } else
                    {
                        tokens.add(j-1, cfloat5);
                        gray1 = true;
                    }
                    j = j+2;
                            
                      */
                } else if (op.getOperation().equals("TJ")) {
                    SkrivUt(4, "TJ hittad.");
                    // Lgg till gray operator och argument!
                    tokens.add(j - 1, g);
                    tokens.add(j - 1, gval);
                    j = j + 2;
                    restretur = "";
                    int aktind = 0;
                    // fr den aktuella arrayen.
                    COSArray previous = (COSArray) tokens.get(j - 1);
                    firsttime = true;
                    for (int k = 0; k < previous.size(); k++) {
                        Object arrElement = previous.getObject(k);
                        if (arrElement instanceof COSString) {
                            COSString cosString = (COSString) arrElement;
                            String string = cosString.getString();
                            bytestr = ((COSString) arrElement).getBytes();
                            strlen = string.length();
                            prevny = null;
                            // SkrivUt(4, "Men: " + men);
                            // SkrivUt(4, "string: "+ string);

                            // HTexten += string;
                            // string = string.replaceFirst( strToFind, message );
                            // cosString.reset();
                            // cosString.append( string.getBytes() );
                        } else if (arrElement instanceof COSNumber) {
                            // Testa om det finns nr.
                            // Spara arrElement i aktarray!
                            // Tester visar att det r COSNumber som hanteras!
                            // aktarray.add( (COSNumber)arrElement );
                            // aktind++;
                            // SkrivUt(4, "COSNumber i splitMeningar.");
                        } else if (arrElement instanceof COSInteger) {
                            // Testa om det finns int.
                            // Spara arrElement i aktarray!
                            // aktarray.add( (COSInteger)arrElement );
                            // aktind++;
                            // SkrivUt(4, "COSInteger i splitMeningar.");
                        } else if (arrElement instanceof COSFloat) {
                            // Testa om det finns float.
                            // Spara arrElement i aktarray!
                            // aktarray.add( (COSFloat)arrElement );
                            // aktind++;
                            // SkrivUt(4, "COSFloat i splitMeningar.");
                        } else {
                            // Spara data till aktarray. Kolla vilken typ det r!
                            SkrivUt(4, "Oknd typ arrel i addGrey: " + arrElement.toString());
                        }
                    }
                    // AH: Tillagd kod!
                    /*
                    tokens.add(j-1, gop);
                    if (gray1)
                    {
                        tokens.add(j-1,cfloat1 );
                        gray1 = false;
                    } else
                    {
                        tokens.add(j-1, cfloat5);
                        gray1 = true;
                    }
                    j = j+2;
                    */
                }
            } else // Inte PDFOperator, samla argument!
            {
                if (next instanceof COSBase) {
                    arguments.add(next);
                    //SkrivUt(4, "COSBase " + next.toString());
                } else {
                    SkrivUt(4, "next inte rtt typ!");
                }
            }
        }
        //now that the tokens are updated we will replace the
        //page content stream.

        SkrivUt(4, ">>> Fre spara tokens i grayInsert.");

        PDStream updatedStream = new PDStream(doc1);
        OutputStream out = updatedStream.createOutputStream();
        ContentStreamWriter tokenWriter = new ContentStreamWriter(out);
        tokenWriter.writeTokens(tokens);
        page1.setContents(updatedStream);

        SkrivUt(4, ">>> Efter spara tokens i grayInsert.");

    } catch (java.io.IOException ioe) {
        SkrivUt(4, "Exception i addGrey .");
    }
    // Sparad skrpkod:
    // cosStream.setStreamTokens( tokens );
    // tokens = cosStream.getStreamTokens();
    mind = mindex;
    // Borde spara tokens hr!?
    SkrivUt(4, "ListTokens efter grayInsert.");
    listTokens(tokens);
    return restretur;

}

From source file:com.santaanna.friendlyreader.pdfstod.pdfstod3.ReplaceStringStreamEngine.java

License:Apache License

public String highlight(String reststr, COSStream cosStream, int pageind, boolean DoHighlight, int valdmening) {
    SkrivUt(1, "Frst i highlight.");
    // Anvnd meningsvektor fr att hmta meningar.
    // Metoden rknar bara tecknen i string och mening och antar att de r synkade
    // i vrigt./*from   w  ww  .  j  ava2s .  c o  m*/

    // ShowText Tj = new ShowText(); // Tj
    // ShowTextGlyph TJ = new ShowTextGlyph(); // TJ
    int mindex = mind;
    PDFOperator Tj = PDFOperator.getOperator("Tj");
    PDFOperator TJ = PDFOperator.getOperator("TJ");
    PDFOperator g = PDFOperator.getOperator("g");
    PDFOperator G = PDFOperator.getOperator("G");
    COSFloat gval = null;
    COSFloat g2val = null;
    COSFloat etta = null;
    COSFloat nolla = null;
    COSInteger tv = null;
    COSFloat red = null;
    COSFloat green = null;
    PDFOperator rg = PDFOperator.getOperator("rg");
    PDFOperator RG = PDFOperator.getOperator("RG");
    PDFOperator Tr = PDFOperator.getOperator("Tr");

    try {
        gval = new COSFloat("0.0");
        g2val = new COSFloat("0.6"); // AH* Hr stlls sammanfattningsgraden!
        etta = new COSFloat("1.0");
        nolla = new COSFloat("0.0");
        tv = new COSInteger("2");
        red = new COSFloat("0.753");
        green = new COSFloat("1.0");
    } catch (IOException ioec) {
        SkrivUt(0, "Fel p gval!");
    }
    String restretur = ""; // Resterande text p meningsrad. En arbetsstruktur.
    String men; // Aktuell meningsstruktur.
    if (reststr == null ? "" != null : !reststr.equals(""))
        men = reststr;
    else
        men = meningsvektor.get(mindex).helameningen;
    // terskrivet Hit!
    int menlen = men.length(); // Lngden p den aktuella meningen.
    int mvektlen = meningsvektor.size(); // Storleken p vektorn.
    byte[] bytestr; // string representerad som byte[]
    byte[] tempbstr; // byte[] fr temporr lagring.
    int strlen; // Lngden p den aktuella stringen.
    COSString prevny = null;
    boolean firsttime = true;
    boolean kapad = false;
    List tokens = null;
    int tempmennr = 0;
    String teststr = "";
    try {
        SkrivUt(1, "Andra i highlight.");
        tokens = cosStream.getStreamTokens();
        pageTokens.add(pageind, tokens);
        // tokens =  Fungerade tidigare.
        // listTokens( tokens ); // Data innan split.
        // List tokens = getTokenList();// AH* parser.getTokens(); Tidigare hmtning av lista.
        // Dvs hmta INTE tokens frn den parsade filen. Anvnd tidigare data.
        LinkedList arguments = new LinkedList(); // AH* argumenten till operatorn.
        SkrivUt(1, ">>> AddGray-Token size: " + tokens.size());
        for (int j = 0; j < tokens.size(); j++) {
            Object next = tokens.get(j);
            // SkrivUt(1, "Tokennr: " + j);
            if (next instanceof PDFOperator) {
                PDFOperator op = (PDFOperator) next;
                //Tj and TJ are the two operators that display
                //strings in a PDF
                //AH:
                //SkrivUt(4, "ArgumentList length: " + arguments.size());
                //>> AH* SkrivUt(4, "Operator anrop:" + OperatorCall( op, arguments ));
                // AH: Hr borde man gra ett anrop till StreamEngine!
                arguments = new LinkedList(); // Mste nollstlla argumenten
                // efter varje operator.
                if (op.getOperation().equals("Tj")) {
                    SkrivUt(1, "Tj hittad.");
                    // Lgg till gray operator och argument!
                    // tokens.add(j-1, g);
                    // Hr skall sammanfattningen gras!
                    tempmennr = mennr;
                    if (DoHighlight && !medisammanfattningen(false, pageind, valdmening)) // Ej Array.
                    {
                        tokens.set(j - 3, g2val);
                        SkrivUt(2, "EJ Highlight men:" + tempmennr);
                    } else
                        SkrivUt(2, "Highlight men:" + tempmennr);
                    mindex = mennr;
                    if (mennr >= meningsvektor.size())
                        return "";
                    SkrivUt(2, "mennr: " + tempmennr + " valdmening: " + valdmening);
                    SkrivUt(2, "Meningen: " + meningsvektor.get(tempmennr).helameningen);
                    if (tempmennr == valdmening) {
                        // Kolla frst om det r en tom text => Inte highlight!
                        SkrivUt(2, "Mennr == valdmening.");
                        /* Senaste bortkommenterade.
                        if (valdsida == -1) //
                        { // Tilldela valdsida bara om den inte tilldelats tidigare.
                            // Skall ocks kolla om det bara r blanka i meningsdelen 
                            // p denna sida.
                            teststr = meningsvektor.get(tempmennr).allaDelar.get(mendelnr).deltext;
                            SkrivUt(3, "xxxxxxxxx teststr: " + teststr);
                            if (!baraBlanka( teststr ))
                            {
                                valdsida = pageind; // Detta r den valda sidan.
                                SkrivUt(3, "*************************** valdsida: " + valdsida);
                            } else SkrivUt(3, "bara blanka i deltext till meniong: " + tempmennr);
                        } */
                        SkrivUt(3, ">>>>>>> valdmening:" + valdmening + " mennr: " + mennr);
                        tokens.add(j - 1, rg);
                        tokens.add(j - 1, nolla);
                        // tokens.add(j-1, green);
                        tokens.add(j - 1, nolla);
                        tokens.add(j - 1, red);
                        j += 4;
                        /*
                        tokens.add(j-1, RG);
                        tokens.add(j-1, nolla);
                        tokens.add(j-1, nolla);
                        tokens.add(j-1, red);
                        tokens.add(j-1, rg);
                        tokens.add(j-1, nolla);
                        tokens.add(j-1, nolla);
                        tokens.add(j-1, red);
                         * 
                         */

                        // Addera kod efter Tj:
                        /* tokens.add(j+9, G);
                        tokens.add(j+9, nolla);
                        tokens.add(j+9, g);
                        tokens.add(j+9, nolla);
                        j+= 13;
                         * 
                         */

                        // Kanske behver stta fler variabler.
                    }
                    //Tj takes one operator and that is the string
                    //to display so lets update that operator
                    restretur = "";
                    int aktind = 0;
                    COSString previous = (COSString) tokens.get(j - 1);
                    String string = previous.getString();
                    prevny = null;
                    bytestr = previous.getBytes();
                    strlen = string.length();
                    //SkrivUt(4, "Men: " + men);
                    //SkrivUt(4, "string: "+ string);

                    // Kolla kommenterad kod.
                    // HTexten += string;
                    // string = string.replaceFirst( strToFind, message );
                    // previous.reset();
                    // previous.append( string.getBytes() );
                    // AH* Testa tillgg av kod.
                    /*
                    tokens.add(j-1, gop);
                    if (gray1)
                    {
                        tokens.add(j-1,cfloat1 );
                        gray1 = false;
                    } else
                    {
                        tokens.add(j-1, cfloat5);
                        gray1 = true;
                    }
                    j = j+2;
                            
                      */
                } else if (op.getOperation().equals("TJ")) {
                    SkrivUt(1, "TJ hittad.");
                    // Lgg till gray operator och argument!
                    // tokens.add(j-1, g);
                    // Hr skall sammanfattningen gras!
                    tempmennr = mennr;
                    if (DoHighlight && !medisammanfattningen(true, pageind, valdmening)) // Array.
                    {
                        tokens.set(j - 3, g2val);
                        SkrivUt(2, "EJ Highlight men:" + tempmennr);
                    } else
                        SkrivUt(2, "Highlight men:" + tempmennr);
                    mindex = mennr;
                    if (mennr >= meningsvektor.size())
                        return "";
                    SkrivUt(2, "mennr: " + tempmennr + " valdmening: " + valdmening);
                    SkrivUt(2, "Meningen: " + meningsvektor.get(tempmennr).helameningen);
                    if (tempmennr == valdmening) // .
                    { //valdmening
                      // Kolla frst om det r en tom text => Inte highlight!
                        SkrivUt(2, "Mennr == valdmening.");
                        /* if (valdsida == -1) //
                        { // Tilldela valdsida bara om den inte tilldelats tidigare.
                            // Skall ocks kolla om det bara r blanka i meningsdelen
                            // p denna sida.
                            teststr = meningsvektor.get(tempmennr).allaDelar.get(mendelnr).deltext;
                            SkrivUt(3, "xxxxxxxxx teststr: " + teststr);
                            if (!baraBlanka( teststr ))
                            {
                                valdsida = pageind; // Detta r den valda sidan.
                                SkrivUt(3, "*************************** valdsida: " + valdsida);
                            } else SkrivUt(3, "bara blanka i deltext till mening: " + tempmennr);
                        }
                         *
                         */
                        SkrivUt(3, ">>>>>>> valdmening:" + valdmening + " mennr: " + mennr);

                        //tokens.add(j-2, RG);
                        //tokens.add(j-2, nolla);
                        //tokens.add(j-2, nolla);
                        // tokens.add(j-2, red);

                        tokens.add(j - 1, rg);
                        tokens.add(j - 1, nolla);
                        // tokens.add(j-1, green);
                        tokens.add(j - 1, nolla);
                        tokens.add(j - 1, red);

                        // Addera kod efter Tj:
                        // tokens.add(j+9, G);
                        // tokens.add(j+9, nolla);
                        // tokens.add(j+9, g);
                        // tokens.add(j+9, nolla);
                        // j+= 13;
                        j += 4;
                        // Kanske behver stta fler variabler.
                    }
                    restretur = "";
                    int aktind = 0;
                    // fr den aktuella arrayen.
                    COSArray previous = (COSArray) tokens.get(j - 1);
                    firsttime = true;
                    for (int k = 0; k < previous.size(); k++) {
                        Object arrElement = previous.getObject(k);
                        if (arrElement instanceof COSString) {
                            COSString cosString = (COSString) arrElement;
                            String string = cosString.getString();
                            bytestr = ((COSString) arrElement).getBytes();
                            strlen = string.length();
                            prevny = null;
                            // SkrivUt(4, "Men: " + men);
                            // SkrivUt(4, "string: "+ string);

                            // HTexten += string;
                            // string = string.replaceFirst( strToFind, message );
                            // cosString.reset();
                            // cosString.append( string.getBytes() );
                        } else if (arrElement instanceof COSNumber) {
                            // Testa om det finns nr.
                            // Spara arrElement i aktarray!
                            // Tester visar att det r COSNumber som hanteras!
                            // aktarray.add( (COSNumber)arrElement );
                            // aktind++;
                            // SkrivUt(4, "COSNumber i splitMeningar.");
                        } else if (arrElement instanceof COSInteger) {
                            // Testa om det finns int.
                            // Spara arrElement i aktarray!
                            // aktarray.add( (COSInteger)arrElement );
                            // aktind++;
                            // SkrivUt(4, "COSInteger i splitMeningar.");
                        } else if (arrElement instanceof COSFloat) {
                            // Testa om det finns float.
                            // Spara arrElement i aktarray!
                            // aktarray.add( (COSFloat)arrElement );
                            // aktind++;
                            // SkrivUt(4, "COSFloat i splitMeningar.");
                        } else {
                            // Spara data till aktarray. Kolla vilken typ det r!
                            SkrivUt(4, "Oknd typ arrel i addGrey: " + arrElement.toString());
                        }
                    }
                    // AH: Tillagd kod!
                    /*
                    tokens.add(j-1, gop);
                    if (gray1)
                    {
                        tokens.add(j-1,cfloat1 );
                        gray1 = false;
                    } else
                    {
                        tokens.add(j-1, cfloat5);
                        gray1 = true;
                    }
                    j = j+2;
                    */
                }
            } else // Inte PDFOperator, samla argument!
            {
                if (next instanceof COSBase) {
                    arguments.add(next);
                    //SkrivUt(4, "COSBase " + next.toString());
                } else {
                    SkrivUt(4, "next inte rtt typ!");
                }
            }
        }
        //now that the tokens are updated we will replace the
        //page content stream.

        SkrivUt(3, ">>> Fre spara tokens i highlight.");
        PDStream updatedStream = new PDStream(doc1);
        OutputStream out = updatedStream.createOutputStream();
        ContentStreamWriter tokenWriter = new ContentStreamWriter(out);
        tokenWriter.writeTokens(tokens);
        // if (updatedStream == null) SkrivUt(4, "updatedStream == null");
        if (page1 == null)
            SkrivUt(4, "page == null");
        page1.setContents(updatedStream);

        SkrivUt(3, ">>> Efter spara tokens i highlight.");

    } catch (java.io.IOException ioe) {
        SkrivUt(0, "Exception i Highlight .");
    }
    // Sparad skrpkod:
    // cosStream.setStreamTokens( tokens );
    // tokens = cosStream.getStreamTokens();
    mind = mindex;
    // Borde spara tokens hr!?
    // SkrivUt(4, "restretur: " + restretur);
    listTokens(tokens);
    return restretur;

}

From source file:com.santaanna.friendlyreader.pdfstod.pdfstod3.ReplaceStringStreamEngine.java

License:Apache License

/**
 * Sammanfatta PDF dokumentet baserat p ..
 *
 * @param inputFile The PDF to open.//from w  ww.  jav  a  2  s.  c o  m
 * @param outputFile The PDF to write to.
 * @param strToFind The string to find in the PDF document.
 * @param message The message to write in the file.
 *
 * @throws IOException If there is an error writing the data.
 * @throws COSVisitorException If there is an error writing the PDF.
 */
public Collection<SEmening> doIt(String inputFile, String outputFile1, boolean DoHighlight, int sumslidval,
        int valdmening) throws IOException, COSVisitorException {
    // the document
    // doc = null; // Output dokumentet (? Kollas!)
    PDFOperator gop = PDFOperator.getOperator("g");
    COSFloat cfloat5 = new COSFloat("0.25");
    COSFloat cfloat1 = new COSFloat("0.75");
    Boolean gray1 = true;
    outputFile = outputFile1;
    String meningsrest = "";
    String sidtext = "";
    Boolean filesaved = false;

    try {
        helaTexten = "";
        SkrivUt(3, "Fre DoIt doc1 load");
        doc1 = PDDocument.load(inputFile); // Indokumentet.
        SkrivUt(3, "Efter DoIt doc1 load");
        List pages = doc1.getDocumentCatalog().getAllPages();
        // SkrivUt(2, "Antal sidor: " + pages.size());
        for (int i = 0; i < pages.size(); i++) { // Frsta fasen skall samla hela texten samt ev ndra relativa till absoluta.
                                                 // TBVector = new Vector<SETextBlock>(); // TB vektorn fr denna sida.
                                                 // PageVector.add(i, TBVector); // Lgg till TB vektorn fr denna sida.
            SkrivUt(4, "Ny sida helaTexten: " + i);
            PDPage page = (PDPage) pages.get(i);
            PDStream contents = page.getContents();
            //AH Kod frn PageDrawer:
            if (contents != null) {
                PDResources resources = page.findResources();
                SkrivUt(4, "Fre getHelaTexten.");
                // Fas = relativ2absolut r inte implementerad n!
                // PDFStreamEngine.fas = PDFStreamEngine.rel2abs;
                setSumcharAlla(0); // Nollstll teckenrknaren fr strings
                sidtext = getHelaTexten(page.getContents().getStream()); //getTextFromPDF, Robin
                helaTexten += sidtext;
                // Hmta hela texten frn dokumentet.
                // SkrivUt(2, "Hela texten per sida0: " + sidtext);
                // helaTexten = ""; // Skall inte nollstllas nu!
                // helaTexten = ""; // AH* >> Nollstll INTE, - fr alla sidor.
                SkrivUt(4, "Efter getHelaTexten.");
                // cosStream.getStreamToken
                /*
                // PDStream nycont = new PDStream( getTokenList());
                PDFStreamEngine.fas = PDFStreamEngine.splitstrings;
                processStream( page, resources, page.getContents().getStream());
                SkrivUt(4, "Hela texten2: " + helaTexten);
                SkrivUt(4, "Efter andra processStream.");
                meningsvektor = Hittameningarna( helaTexten );
                helaTexten = ""; // AH* >> Nollstll???
                 *
                 */
            }
        } // Extrahera meningarna frn hela texten:
          // SkrivUt(2, "Hela texten1: " + helaTexten);
        meningsvektor = Hittameningarna(helaTexten); // Splittra texten i meningar.
        SkrivUt(1, "Meningsvektor.Size: " + meningsvektor.size());
        SEmening semen = null;
        for (int n = 0; n < meningsvektor.size(); n++) {
            // Lgg till mening till meningsvektor.
            // semen = new SEmening();
            // semen.helameningen = menvektor.get( n );
            // meningsvektor.add(n, semen); // Huvudstrukturen fr meningar.
            SkrivUt(1, "Mening: " + meningsvektor.get(n).helameningen);
        }
        /* for (int n = 0; n < meningsvektor.size(); n++ )
        {
        SkrivUt(4, "Mening: " + meningsvektor.get( n ).helameningen);
        } */

        // String helaTextTemp = helaTexten;

        // Vid nsta bearbetning skall string och array splittras vid
        // meningsgrnser.
        mind = 0;
        meningsrest = meningsvektor.get(mind).helameningen; // Kvarvarande text p aktuella sidan
        for (int i = 0; i < pages.size(); i++) {
            // Borde flytta p denna om de inte skall anvndas!
            // TBVector = new Vector<SETextBlock>(); // TB vektorn fr denna sida.
            // PageVector.add(i, TBVector); // Totalstruktur.
            // Lgg till TB vektorn fr denna sida.
            SkrivUt(4, "Ny sida Split: " + i);
            // PDPage ndrad till lokal variabel!
            page1 = (PDPage) pages.get(i);
            PDStream contents = page1.getContents();
            //AH Kod frn PageDrawer:
            SkrivUt(4, "Innan contents test.");
            if (contents != null) {
                PDResources resources = page1.findResources();
                SkrivUt(3, "Fre splitMeningar 1.");
                // PDFStreamEngine.fas = PDFStreamEngine.rel2abs;
                setSumcharAlla(0); // Nollstll teckenrknaren fr strings
                SkrivUt(4, "Fre splitMeningar 2.");
                meningsrest = splitMeningar(meningsrest, page1.getContents().getStream());
                SkrivUt(4, "*** meningsrest: " + meningsrest);
                SkrivUt(4, "3, Efter splitMeningar.");
            }
        }

        // Kolla denna kod!!!
        // saveAndClose( outputFile, doc1 ); // AH****
        // doc1 = PDDocument.load( inputFile ); // Indokumentet.
        // SkrivUt(3,"Efter DoIt doc1 load");
        // pages = doc1.getDocumentCatalog().getAllPages(); Nyinlagd. Kvar???

        // Hr skall g operatorer lggas till fr varje TJ och Tj!
        mind = 0; // Behvs denna hr?
        meningsrest = meningsvektor.get(mind).helameningen; // Kvarvarande text p aktuella sidan.

        for (int i = 0; i < pages.size(); i++) {
            // Borde flytta p denna om de inte skall anvndas!
            // TBVector = new Vector<SETextBlock>(); // TB vektorn fr denna sida.
            // PageVector.add(i, TBVector); // Totalstruktur.
            // Lgg till TB vektorn fr denna sida.
            SkrivUt(4, "Ny sida Gray: " + i);
            // PDPage ndrad till lokal variabel!
            page1 = (PDPage) pages.get(i);
            PDStream contents = page1.getContents();
            //AH Kod frn PageDrawer:
            SkrivUt(4, "Innan contents test.");
            if (contents != null) {
                PDResources resources = page1.findResources();
                SkrivUt(3, "Fre GrayInsert 1.");
                // PDFStreamEngine.fas = PDFStreamEngine.rel2abs;
                setSumcharAlla(0); // Nollstll teckenrknaren fr strings
                // SkrivUt(4, "Fre splitMeningar 2.");
                meningsrest = grayInsert(meningsrest, page1.getContents().getStream(), i);
                //SkrivUt(4, "*** meningsrest: "+ meningsrest);
                SkrivUt(3, "Efter grayInsert av sida.");
            }
        }
        SkrivUt(3, "Efter hela grayInsert.");

        // Bygg TB och meningsstrukturer.
        //
        mind = 0;
        meningsrest = meningsvektor.get(mind).helameningen; // Kvarvarande text p aktuella sidan.

        for (int i = 0; i < pages.size(); i++) {
            TBIndex = 0; // Index i textblocks strukturen.
            // Hr anvnds och byggs datastrukturerna!
            TBVector = new Vector<SETextBlock>(); // TB vektorn fr denna sida.
            PageVector.add(i, TBVector); // Totalstruktur.
            tbpagenr = i;
            // Lgg till TB vektorn fr denna sida.
            SkrivUt(4, "Ny sida Split: " + i);
            // PDPage ndrad till lokal variabel!
            page1 = (PDPage) pages.get(i);
            PDStream contents = page1.getContents();
            //AH Kod frn PageDrawer:
            SkrivUt(4, "Innan contents test.");
            if (contents != null) {
                PDResources resources = page1.findResources();
                SkrivUt(3, "Fre byggStrukturer 1.");
                // PDFStreamEngine.fas = PDFStreamEngine.rel2abs;
                setSumcharAlla(0); // Nollstll teckenrknaren fr strings
                SkrivUt(4, "Fre byggStrukturer 2.");
                meningsrest = byggStrukturer(meningsrest, page1.getContents().getStream(), i);
                SkrivUt(4, "*** meningsrest: " + meningsrest);
                SkrivUt(3, "Efter byggStrukturer.");
            }
        }

        // Skriv ut innehllet i TB strukturen:
        listTextBlocks();

        // Skriv ut meningarna:
        listMeningar();
        //*/
        // Sista passet skall samla in TP fontmetrics och spara dem till TB strukturer.

        SkrivUt(4, "Fr lngt.");
        mind = 0; // Behvs denna hr?

        for (int i = 0; i < pages.size(); i++) { // Frsta fasen skall samla hela texten samt ev ndra relativa till absoluta.
                                                 // TBVector = new Vector<SETextBlock>(); // TB vektorn fr denna sida.
                                                 // PageVector.add(i, TBVector); // Lgg till TB vektorn fr denna sida.
            tempsidnr = i;
            SkrivUt(4, "Ny sida A: " + i);
            PDPage page = (PDPage) pages.get(i);
            PDStream contents = page.getContents();
            //AH Kod frn PageDrawer:
            if (contents != null) {
                PDResources resources = page.findResources();
                SkrivUt(4, "Fre processStream.");
                // PDFStreamEngine.fas = PDFStreamEngine.rel2abs;
                setSumcharAlla(0); // Nollstll teckenrknaren fr strings
                // SkrivUt(4, "Hela texten2FRE: " + helaTexten);
                // processStream( page, resources, page.getContents().getStream()); // Hr anropas sidhanteringen!
                // SkrivUt(2, "Hela texten2: " + helaTexten);
                // helaTexten = ""; // AH* >> Nollstll INTE, - fr alla sidor.
                SkrivUt(4, "Efter processStream. fre nya");
                // cosStream.getStreamToken

                /*
                // PDStream nycont = new PDStream( getTokenList());
                PDFStreamEngine.fas = PDFStreamEngine.splitstrings;
                processStream( page, resources, page.getContents().getStream());
                SkrivUt(4, "Hela texten2: " + helaTexten);
                SkrivUt(4, "Efter andra processStream.");
                meningsvektor = Hittameningarna( helaTexten );
                helaTexten = ""; // AH* >> Nollstll???
                 *
                 */
            }
        }
        SkrivUt(3, "Efter processStream.");

        //if (DoHighlight)
        //{
        // Hr skall texten frmedlas till EasyReader och resultatlista med
        // meningar som skall highlightas skall returneras!
        if ((DoHighlight) && !(helaTexten.equals(""))) {
            SkrivUt(2, "Fre sammanfatta. helaTexten = \"\"");
            menisammanfattningen = sammanfatta(helaTexten, sumslidval);
            System.out.println(menisammanfattningen);
        } else
            menisammanfattningen = null;
        // Hr skall g operatorernas argument modifieras fr de som skall vara
        // med i sammanfattningen.
        mind = 0; // Behvs denna hr?
        meningsrest = meningsvektor.get(mind).helameningen; // Kvarvarande text p aktuella sidan.
        cosenr = 0; // index fr COSString eller COSArray.
        mennr = 0; // index fr aktuell mening.
        mendelnr = 0;
        mendelantal = 0; // Antal delar som meningen bestr av.
        valdsida = -1; // valda sidan inte knd n.
        for (int i = 0; i < pages.size(); i++) {
            // Borde flytta p denna om de inte skall anvndas!
            // TBVector = new Vector<SETextBlock>(); // TB vektorn fr denna sida.
            // PageVector.add(i, TBVector); // Totalstruktur.
            // Lgg till TB vektorn fr denna sida.
            SkrivUt(4, "Ny sida highlight: " + i);
            // PDPage ndrad till lokal variabel!
            page1 = (PDPage) pages.get(i);
            PDStream contents = page1.getContents();
            //AH Kod frn PageDrawer:
            SkrivUt(4, "Innan contents test.");
            if (contents != null) {
                PDResources resources = page1.findResources();
                SkrivUt(1, "Fre highlight 1. Sida: " + i);
                // PDFStreamEngine.fas = PDFStreamEngine.rel2abs;
                setSumcharAlla(0); // Nollstll teckenrknaren fr strings
                // SkrivUt(4, "Fre splitMeningar 2.");
                // if (DoHighlight) 
                meningsrest = highlight(meningsrest, page1.getContents().getStream(), i, DoHighlight,
                        valdmening);
                //SkrivUt(4, "*** meningsrest: "+ meningsrest);
                SkrivUt(1, "Efter highlight av sida:" + i);
            }
        }
        SkrivUt(3, "Efter hela highlight.");
        /*} else // Spara data till pageTokens fr sparande till fil efter.
        {
                
        }*/

        // Dags att hmta fontmetrics och spara till fil. r det samma som ovan?
        // Skall inte gras f.n!

        for (int i = 0; i < pages.size(); i++) {
            TBVector = new Vector<SETextBlock>(); // TB vektorn fr denna sida.
            PageVector.add(i, TBVector); // Lgg till TB vektorn fr denna sida.
            SkrivUt(4, "Ny sida X: " + i);
            // PDPage ndrad, inte lokal lngre!
            page = (PDPage) pages.get(i);
            PDStream contents = page.getContents();
            //AH Kod frn PageDrawer:
            if (contents != null) {
                PDResources resources = page.findResources();
                SkrivUt(4, "Fre processStream.");
                // PDFStreamEngine.fas = PDFStreamEngine.rel2abs;
                setSumcharAlla(0); // Nollstll teckenrknaren fr strings
                // AH* Nsta rad anvnds fr att hmta ut fontmetrics.
                /* processStream( page, resources, page.getContents().getStream()); // Hr anropas sidhanteringen!
                SkrivUt(4, "Hela texten1: " + helaTexten);
                // helaTexten = ""; // Skall inte nollstllas nu!
                SkrivUt(4, "Efter processStream. fre nya");
                // cosStream.getStreamToken
                 *
                 */

                // PDStream nycont = new PDStream( getTokenList());
                // PDFStreamEngine.fas = PDFStreamEngine.splitstrings;
                // Nedanstende har anropats ovan.
                // processStream( page, resources, page.getContents().getStream());
                // SkrivUt(4, "Hela texten3: " + helaTexten);
                SkrivUt(4, "Efter andra processStream.");
            }
            SkrivUt(3, "Efter hela andra processStream.");
            /*
            PDFStreamParser parser = new PDFStreamParser(contents.getStream());
            parser.parse();
             *
             */
            // SkrivUt(4, "Egna loopen Sida: " + i);
            /* List tokens = getTokenList();// AH* parser.getTokens(); Tidigare hmtning av lista.
            // Dvs hmta INTE tokens frn den parsade filen. Anvnd tidigare data.
             LinkedList arguments = new LinkedList(); // AH* argumenten till operatorn.
             for( int j=0; j<tokens.size(); j++ )
             {
            Object next = tokens.get( j );
            if( next instanceof PDFOperator )
            {
                PDFOperator op = (PDFOperator)next;
                //Tj and TJ are the two operators that display
                //strings in a PDF
                //AH:
                //SkrivUt(4, "ArgumentList length: " + arguments.size());
                //>> AH* SkrivUt(4, "Operator anrop:" + OperatorCall( op, arguments ));
                // AH: Hr borde man gra ett anrop till StreamEngine!
                arguments = new LinkedList(); // Mste nollstlla argumenten
                // efter varje operator.
                if( op.getOperation().equals( "Tj" ) )
                {
                    //Tj takes one operator and that is the string
                    //to display so lets update that operator
                    COSString previous = (COSString)tokens.get( j-1 );
                    String string = previous.getString();
                    string = string.replaceFirst( strToFind, message );
                    previous.reset();
                    previous.append( string.getBytes() );
                    // AH* Testa tillgg av kod.
                            
                    tokens.add(j-1, gop);
                    if (gray1)
                    {
                        tokens.add(j-1,cfloat1 );
                        gray1 = false;
                    } else
                    {
                        tokens.add(j-1, cfloat5);
                        gray1 = true;
                    }
                    j = j+2;
                             
                            
                }
                else if( op.getOperation().equals( "TJ" ) )
                {
                    COSArray previous = (COSArray)tokens.get( j-1 );
                    for( int k=0; k<previous.size(); k++ )
                    {
                        Object arrElement = previous.getObject( k );
                        if( arrElement instanceof COSString )
                        {
                            COSString cosString = (COSString)arrElement;
                            String string = cosString.getString();
                            string = string.replaceFirst( strToFind, message );
                            cosString.reset();
                            cosString.append( string.getBytes() );
                        }
                    }
                    // AH: Tillagd kod!
                    /*
                    tokens.add(j-1, gop);
                    if (gray1)
                    {
                        tokens.add(j-1,cfloat1 );
                        gray1 = false;
                    } else
                    {
                        tokens.add(j-1, cfloat5);
                        gray1 = true;
                    }
                    j = j+2;
                    
                             
                }
            } else // Inte PDFOperator, samla argument!
            {
                if (next instanceof COSBase)
                {
                     arguments.add( next);
                     //SkrivUt(4, "COSBase " + next.toString());
                } else
                {
                    SkrivUt(4, "next inte rtt typ!");
                }
            }
             }
                    
             */
            //now that the tokens are updated we will replace the
            //page content stream.
            // Uppdatera data till filen!
            SkrivUt(3, ">>> Fre spara tokens i DoIt.");
            PDStream updatedStream = new PDStream(doc1);
            SkrivUt(3, ">>> Efter updated stream i DoIt.");
            OutputStream out = updatedStream.createOutputStream();
            ContentStreamWriter tokenWriter = new ContentStreamWriter(out);
            tokenWriter.writeTokens(pageTokens.get(i));
            page.setContents(updatedStream);
            SkrivUt(3, ">>> Efter spara tokens i DoIt.");
        }
        /*
        if (!filesaved)
        {
        doc1.save( outputFile );
        filesaved = true;
        }
        doc1.close();
        SkrivUt(3, "doc1 closed 1.");
         *
         */
    } finally {
        saveAndClose(outputFile, doc1);
        /*
        SkrivUt(2, "Finally.");
        if( doc1 != null )
        {
        if (!filesaved)
        {
            doc1.save( outputFile );
            filesaved = true;
        }
        doc1.close();
        SkrivUt(3, "doc1 closed 2.");
        }
         *
         */
    }

    return meningsvektor;
}

From source file:net.padaf.preflight.utils.TestCOSUtils.java

License:Apache License

@Test
public void testIsFloat() {
    try {/*w w  w  .j  ava 2s . co  m*/
        COSObject co = new COSObject(new COSFloat(10.0f));
        co.setGenerationNumber(new COSInteger(0));
        co.setObjectNumber(new COSInteger(10));

        assertFalse(COSUtils.isFloat(co, new IOCOSDocument()));

        COSDocument doc = new COSDocument();
        doc.setXRef(new COSObjectKey(co), 1000);
        COSUtils.isFloat(co, doc);
        doc.close();
    } catch (IOException e) {
        fail(e.getMessage());
    }
}

From source file:org.apache.padaf.preflight.utils.TestCOSUtils.java

License:Apache License

@Test
public void testIsFloat() {
    try {/* ww  w .j a  v  a 2 s  . c o  m*/
        COSObject co = new COSObject(new COSFloat(10.0f));
        co.setGenerationNumber(COSInteger.ZERO);
        co.setObjectNumber(new COSInteger(10));

        assertFalse(COSUtils.isFloat(co, new IOCOSDocument()));

        COSDocument doc = new COSDocument();
        addToXref(doc, new COSObjectKey(co), 1000);
        COSUtils.isFloat(co, doc);
        doc.close();
    } catch (IOException e) {
        fail(e.getMessage());
    }
}

From source file:org.lockss.pdf.pdfbox.PdfBoxTokens.java

License:Open Source License

/**
 * <p>/* w w  w . j av  a  2  s  .  c o  m*/
 * Converts from a <code>float</code> to a {@link COSFloat}.
 * </p>
 * @param value A value.
 * @return A {@link COSFloat} instance.
 * @since 1.56
 */
protected static COSFloat asCOSFloat(float value) {
    return new COSFloat(value);
}