Sha256: 0cf92d9b4d330b818ce6807fd2a2e95bb7956ff620583056ed684946353c841a

Contents?: true

Size: 1.61 KB

Versions: 5

Compression:

Stored size: 1.61 KB

Contents

package org.documentcloud;

import java.util.List;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;

import org.apache.pdfbox.pdmodel.PDDocument;
import org.apache.pdfbox.util.Splitter;
import org.apache.pdfbox.pdfwriter.COSWriter;
import org.apache.pdfbox.exceptions.COSVisitorException;

// Use PDFBox's Splitter to break apart a large PDF into individual pages.
public class ExtractPages extends Extractor {

  private PDDocument doc;
  private String basename;

  // The mainline.
  public static void main(String[] args) {
    (new ExtractPages()).run(args);
  }

  // Extract each page of the given PDF.
  public void extract(String pdfPath) {
    try {
      basename  = getBasename(pdfPath);
      doc = PDDocument.load(pdfPath);
      decrypt(doc);
      List pages = (new Splitter()).split(doc);
      if (pageNumbers != null) {
        for (Integer num : pageNumbers) writePage((PDDocument) pages.get(num.intValue()- 1), num.intValue());
      } else {
        for (int i=0; i<pages.size(); i++) writePage((PDDocument) pages.get(i), i + 1);
      }
      doc.close();
    } catch(Exception e) {
      System.out.println(e.getMessage());
      System.exit(1);
    }
  }

  // Writes out a page as a single-page PDF.
  private void writePage(PDDocument page, int pageNumber) throws IOException, COSVisitorException {
    String pageName       = basename + "_" + String.valueOf(pageNumber) + ".pdf";
    FileOutputStream out  = new FileOutputStream(outputFile(pageName));
    COSWriter writer      = new COSWriter(out);
    writer.write(page);
    out.close();
    writer.close();
    page.close();
  }

}

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
docsplit-0.2.0 lib/docsplit/ExtractPages.java
docsplit-0.1.3 lib/docsplit/ExtractPages.java
docsplit-0.1.2 lib/docsplit/ExtractPages.java
docsplit-0.1.1 lib/docsplit/ExtractPages.java
docsplit-0.1.0 lib/docsplit/ExtractPages.java