Results 1 to 8 of 8
  1. #1
    mai1234 is offline Member
    Join Date
    Jan 2011
    Posts
    7
    Rep Power
    0

    Default Code Explanations

    Hello guys,
    I downloaded a library called Apache PDFBOX in order to use the method for splitting pfds into several others...i just cant reallly understand what does the code mean and what its features, i mean like what it can offer

    i some1 can help me with this i would be really thankful!

    /*
    * Licensed to the Apache Software Foundation (ASF) under one or more
    * contributor license agreements. See the NOTICE file distributed with
    * this work for additional information regarding copyright ownership.
    * The ASF licenses this file to You under the Apache License, Version 2.0
    * (the "License"); you may not use this file except in compliance with
    * the License. You may obtain a copy of the License at
    *
    * http://www.apache.org/licenses/LICENSE-2.0
    *
    * Unless required by applicable law or agreed to in writing, software
    * distributed under the License is distributed on an "AS IS" BASIS,
    * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    * See the License for the specific language governing permissions and
    * limitations under the License.
    */
    package org.apache.pdfbox;

    import java.io.IOException;
    import java.io.InputStream;
    import java.io.FileInputStream;
    import java.io.FileOutputStream;

    import java.util.List;

    import org.apache.pdfbox.exceptions.InvalidPasswordExcept ion;
    import org.apache.pdfbox.exceptions.COSVisitorException;

    import org.apache.pdfbox.pdfparser.PDFParser;

    import org.apache.pdfbox.pdmodel.PDDocument;

    import org.apache.pdfbox.pdfwriter.COSWriter;

    import org.apache.pdfbox.util.Splitter;

    /**
    * This is the main program that will take a pdf document and split it into
    * a number of other documents.
    *
    * @author <a href="ben@benlitchfield.com">Ben Litchfield</a>
    * @version $Revision: 1.6 $
    */
    public class PDFSplit
    {
    private static final String PASSWORD = "-password";
    private static final String SPLIT = "-split";

    private PDFSplit()
    {
    }
    /**
    * Infamous main method.
    *
    * @param args Command line arguments, should be one and a reference to a file.
    *
    * @throws Exception If there is an error parsing the document.
    */
    public static void main( String[] args ) throws Exception
    {
    PDFSplit split = new PDFSplit();
    split.split( args );
    }

    private void split( String[] args ) throws Exception
    {
    String password = "";
    String split = "1";

    Splitter splitter = new Splitter();
    String pdfFile = null;
    for( int i=0; i<args.length; i++ )
    {
    if( args[i].equals( PASSWORD ) )
    {
    i++;
    if( i >= args.length )
    {
    usage();
    }
    password = args[i];
    }
    else if( args[i].equals( SPLIT ) )
    {
    i++;
    if( i >= args.length )
    {
    usage();
    }
    split = args[i];
    }
    else
    {
    if( pdfFile == null )
    {
    pdfFile = args[i];
    }
    }
    }

    if( pdfFile == null )
    {
    usage();
    }
    else
    {

    InputStream input = null;
    PDDocument document = null;
    List documents = null;
    try
    {
    input = new FileInputStream( pdfFile );
    document = parseDocument( input );

    if( document.isEncrypted() )
    {
    try
    {
    document.decrypt( password );
    }
    catch( InvalidPasswordException e )
    {
    if( args.length == 4 )//they supplied the wrong password
    {
    System.err.println( "Error: The supplied password is incorrect." );
    System.exit( 2 );
    }
    else
    {
    //they didn't suppply a password and the default of "" was wrong.
    System.err.println( "Error: The document is encrypted." );
    usage();
    }
    }
    }

    splitter.setSplitAtPage( Integer.parseInt( split ) );
    documents = splitter.split( document );
    for( int i=0; i<documents.size(); i++ )
    {
    PDDocument doc = (PDDocument)documents.get( i );
    String fileName = pdfFile.substring(0, pdfFile.length()-4 ) + "-" + i + ".pdf";
    writeDocument( doc, fileName );
    doc.close();
    }

    }
    finally
    {
    if( input != null )
    {
    input.close();
    }
    if( document != null )
    {
    document.close();
    }
    for( int i=0; documents != null && i<documents.size(); i++ )
    {
    PDDocument doc = (PDDocument)documents.get( i );
    doc.close();
    }
    }
    }
    }

    private static final void writeDocument( PDDocument doc, String fileName ) throws IOException, COSVisitorException
    {
    FileOutputStream output = null;
    COSWriter writer = null;
    try
    {
    output = new FileOutputStream( fileName );
    writer = new COSWriter( output );
    writer.write( doc );
    }
    finally
    {
    if( output != null )
    {
    output.close();
    }
    if( writer != null )
    {
    writer.close();
    }
    }
    }

    /**
    * This will parse a document.
    *
    * @param input The input stream for the document.
    *
    * @return The document.
    *
    * @throws IOException If there is an error parsing the document.
    */
    private static PDDocument parseDocument( InputStream input )throws IOException
    {
    PDFParser parser = new PDFParser( input );
    parser.parse();
    return parser.getPDDocument();
    }

    /**
    * This will print the usage requirements and exit.
    */
    private static void usage()
    {
    System.err.println( "Usage: java org.apache.pdfbox.PDFSplit [OPTIONS] <PDF file>\n" +
    " -password <password> Password to decrypt document\n" +
    " -split <integer> split after this many pages\n" +
    " <PDF file> The PDF document to use\n"
    );
    System.exit( 1 );
    }
    }



    Thank you

  2. #2
    masijade is offline Senior Member
    Join Date
    Jun 2008
    Posts
    2,571
    Rep Power
    10

    Default

    I would say to read its documentation.

  3. #3
    mai1234 is offline Member
    Join Date
    Jan 2011
    Posts
    7
    Rep Power
    0

    Default

    i cant find any :(

  4. #4
    masijade is offline Senior Member
    Join Date
    Jun 2008
    Posts
    2,571
    Rep Power
    10

    Default

    Not even here. I find plenty of it there.

  5. #5
    mai1234 is offline Member
    Join Date
    Jan 2011
    Posts
    7
    Rep Power
    0

    Default

    am sorry but i STILL cant find anything that explains this code and what exactly dies each line do

  6. #6
    masijade is offline Senior Member
    Join Date
    Jun 2008
    Posts
    2,571
    Rep Power
    10

    Default

    Why do you need to know what "each line of code" does in order to be able to use it?

    Edit: The documentation does answer

    Quote Originally Posted by mai1234 View Post
    what its features, i mean like what it can offer
    Last edited by masijade; 02-16-2011 at 12:02 PM.

  7. #7
    mai1234 is offline Member
    Join Date
    Jan 2011
    Posts
    7
    Rep Power
    0

    Default

    ok now i have a pdf and i want to split it into 3 parts?
    what should i do, where should i put the name/path of the file and so?

  8. #8
    masijade is offline Senior Member
    Join Date
    Jun 2008
    Posts
    2,571
    Rep Power
    10

    Default

    What does the documenttion say? I am not using it, so I am not going to read it.

Similar Threads

  1. Code to check if a piece of code is legal.
    By vahshir in forum New To Java
    Replies: 3
    Last Post: 08-30-2010, 04:21 AM
  2. Replies: 1
    Last Post: 03-04-2010, 12:19 PM
  3. Convert java code to midlet code
    By coldvoice05 in forum New To Java
    Replies: 1
    Last Post: 08-12-2009, 11:14 AM
  4. Convert java code to midlet code
    By coldvoice05 in forum Advanced Java
    Replies: 1
    Last Post: 08-09-2009, 01:21 PM
  5. Replies: 1
    Last Post: 04-26-2007, 03:52 PM

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •