Add Dependencies

Before we go to the coding section, we need to add Spire.PDF to our Java project. There are two ways to add the needed dependencies to our project.
For Maven projects, we need to add the following code to our project’s pom.xml file.
  1. <repositories>
  2. <repository>
  3. <id>com.e-iceblue</id>
  4. <name>e-iceblue</name>
  5. <url>http://repo.e-iceblue.com/nexus/content/groups/public/</url>
  6. </repository>
  7. </repositories>
  8. <dependencies>
  9. <dependency>
  10. <groupId>e-iceblue</groupId>
  11. <artifactId>spire.pdf.free</artifactId>
  12. <version>3.9.0</version>
  13. </dependency>
  14. </dependencies>
For non-maven projects, download Free Spire.PDF for Java pack from this website and add Spire.Pdf.jar in the lib folder into our project as a dependency.
Example 1. Extract all texts from the whole PDF
Spire.PDF for Java library provides thepage.extractText() method that can be used to extract text from each page of a PDF document. In the following example, you will learn how to extract all text from a single PDF documentby using this API.
  1. import com.spire.pdf.*;
  2. import com.spire.pdf.PdfPageBase;
  3. import java.io.*;
  4. public class extractAllTexts {
  5. public static void main(String[] args) throws Exception {
  6. String input = "Sample.pdf";
  7. //Load the PDF file
  8. PdfDocument pdf = new PdfDocument();
  9. pdf.loadFromFile(input);
  10. //Create a new txt file to save the extracted text
  11. String result = "output/extractAllText.txt";
  12. File file = new File(result);
  13. if (!file.exists()) {
  14. file.delete();
  15. }
  16. file.createNewFile();
  17. FileWriter fw = new FileWriter(file, true);
  18. BufferedWriter bw = new BufferedWriter(fw);
  19. //Extract text from all the pages on the PDF
  20. PdfPageBase page;
  21. for (int i = 0; i < pdf.getPages().getCount(); i++) {
  22. page = pdf.getPages().get(i);
  23. String text = page.extractText(true);
  24. bw.write(text);
  25. }
  26. bw.flush();
  27. bw.close();
  28. fw.close();
  29. }
  30. }
Example 2. Extract text from specific area
Spire.PDF for Java enables developers to extract text from the specific area from a PDF page by using page.extractText(new Rectangle2D.Float(80, 200, 500, 200)) method.
  1. import com.spire.pdf.*;
  2. import java.awt.geom.Rectangle2D;
  3. import java.io.*;
  4. public class extractTextFromSpecificArea {
  5. public static void main(String[] args) throws Exception {
  6. String input = "Sample.pdf";
  7. //Load the PDF file
  8. PdfDocument pdf = new PdfDocument();
  9. pdf.loadFromFile(input);
  10. //Create a new txt file to save the extracted text
  11. String result = "output/extractText.txt";
  12. File file = new File(result);
  13. if (!file.exists()) {
  14. file.delete();
  15. }
  16. file.createNewFile();
  17. FileWriter fw = new FileWriter(file, true);
  18. BufferedWriter bw = new BufferedWriter(fw);
  19. //Get the first page
  20. PdfPageBase page = pdf.getPages().get(0);
  21. //Extract text from a specific rectangle area within the page
  22. String text = page.extractText(new Rectangle2D.Float(80, 200, 500, 200));
  23. bw.write(text);
  24. bw.flush();
  25. bw.close();
  26. fw.close();
  27. }
  28. }
Example 3. Extract highlighted text from PDF
Some PDFs will add the highlighted color for some texts. Spire.PDF offers a page.extractText(textMarkupAnnotation.getBounds())method to extract the highlighted text from the PDF.
  1. import com.spire.pdf.*;
  2. import java.io.*;
  3. import com.spire.pdf.annotations.*;
  4. import com.spire.pdf.graphics.*;
  5. public class extractHighlightedText {
  6. public static void main(String[] args) throws Exception {
  7. String input = "Sample.pdf";
  8. //Load the PDF file
  9. PdfDocument pdf = new PdfDocument();
  10. pdf.loadFromFile(input);
  11. //Create a new txt file to save the extracted text
  12. String result = "output/extractText1.txt";
  13. File file = new File(result);
  14. if (!file.exists()) {
  15. file.delete();
  16. }
  17. file.createNewFile();
  18. FileWriter fw = new FileWriter(file, true);
  19. BufferedWriter bw = new BufferedWriter(fw);
  20. bw.write("Extracted highlighted text:");
  21. PdfPageBase page = pdf.getPages().get(0);
  22. for (int i = 0; i < page.getAnnotationsWidget().getCount(); i++) {
  23. if (page.getAnnotationsWidget().get(i) instanceof PdfTextMarkupAnnotationWidget) {
  24. PdfTextMarkupAnnotationWidget textMarkupAnnotation = (PdfTextMarkupAnnotationWidget) page.getAnnotationsWidget().get(i);
  25. bw.write(page.extractText(textMarkupAnnotation.getBounds()));
  26. //Get the highlighted color
  27. PdfRGBColor color = textMarkupAnnotation.getColor();
  28. bw.write("Color=" + (color.getR() & 0XFF) + "," + (color.getG() & 0XFF) + "," + (color.getB() & 0XFF) + "\n");
  29. }
  30. }
  31. bw.flush();
  32. bw.close();
  33. fw.close();
  34. }
  35. }
Example 4. Extract images from PDF
Spire.PDF for Java offers a page.extractImages() method to extract images from the PDF file.
  1. import com.spire.pdf.*;
  2. import javax.imageio.ImageIO;
  3. import java.awt.image.BufferedImage;
  4. import java.io.*;
  5. import java.util.ArrayList;
  6. public class extractImages {
  7. public static void main(String[] args) throws Exception {
  8. //Load the PDF File
  9. PdfDocument doc = new PdfDocument();
  10. doc.loadFromFile("Sample.pdf");
  11. StringBuilder buffer = new StringBuilder();
  12. ArrayList < BufferedImage > images = new ArrayList < BufferedImage > ();
  13. //loop through the pages
  14. for (PdfPageBase page: (Iterable < PdfPageBase > ) doc.getPages()) {
  15. //extract images from a particular page
  16. for (BufferedImage image: page.extractImages()) {
  17. //declare an int variable
  18. int index = 0;
  19. //specify the file path and name
  20. File output = new File("output/" + String.format("Image_%d.png", index++));
  21. //save image as .png file
  22. ImageIO.write(image, "PNG", output);
  23. }
  24. }
  25. }
  26. }