Ten samouczek zawiera szczegółowe informacje na temat czytania tabeli PDF w Javie i uzyskiwania dostępu do tekstu należącego do każdej komórki w żądanej tabeli. Będziesz mieć pełną kontrolę nad odwoływaniem się do określonej tabeli na stronie docelowej PDF i analizowaniem wszystkich wierszy i komórek w celu pobrania danych. Do napisania tego czytnika tabel PDF w Javie nie jest wymagane żadne inne narzędzie ani oprogramowanie innej firmy.
Kroki, aby przeczytać tabelę PDF w Javie
- Skonfiguruj aplikację czytnika tabel PDF, aby dodać Aspose.PDF z repozytorium Maven
- Załaduj przykładowy plik PDF zawierający tabelę, używając obiektu klasy Document
- Utwórz instancję i zainicjuj obiekt TableAbsorber, aby pobrać wszystkie tabele PDF z wybranej strony PDF
- Iteruj przez wszystkie wiersze w żądanej tabeli
- Przejrzyj wszystkie komórki w żądanym wierszu i pobierz wszystkie fragmenty tekstu z każdej komórki
- Wyświetl tekst pobrany z komórki
Te kroki wyjaśniają, jak korzystać z Java wyodrębniania tabeli z PDF wraz z informacjami o wymaganych bibliotekach, które mają zostać dodane do projektu. Określa również kolejność operacji, aby wykonać zadanie, takie jak najpierw załadowanie pliku PDF, następnie uzyskanie dostępu do określonej strony i pobranie żądanej tabeli. Na koniec przeanalizuj wszystkie wiersze i komórki, aby uzyskać informacje.
Kod do odczytu tabeli PDF w Javie
import com.aspose.pdf.License; | |
import com.aspose.pdf.AbsorbedCell; | |
import com.aspose.pdf.AbsorbedRow; | |
import com.aspose.pdf.AbsorbedTable; | |
import com.aspose.pdf.Document; | |
import com.aspose.pdf.TableAbsorber; | |
import com.aspose.pdf.TextFragmentCollection; | |
public class ReadPDFTableInJava { | |
public static void main(String[] args) throws Exception { // main function for reading PDF table data in ReadPDFTableInJava | |
// For avoiding the trial version limitation, load the Aspose.PDF license prior to reading table data | |
License licenseForHtmlToPdf = new License(); | |
licenseForHtmlToPdf.setLicense("Aspose.Pdf.lic"); | |
// Load a source PDF document which contains a table in it | |
Document pdfDocument = new Document("PdfWithTable.pdf"); | |
// Instantiate the TableAbsorber object for PDF tables extraction | |
TableAbsorber tableAbsorber = new TableAbsorber(); | |
// visit the table collection in the input PDF | |
tableAbsorber.visit(pdfDocument.getPages().get_Item(1)); | |
// Access the desired table from the tables collection | |
AbsorbedTable absorbedTable = tableAbsorber.getTableList().get(0); | |
// Parse all the rows and get each row using the AbsorbedRow | |
for (AbsorbedRow pdfTableRow : absorbedTable.getRowList()) | |
{ | |
// Access each cell in the cells collection using AbsorbedCell | |
for (AbsorbedCell pdfTableCell : pdfTableRow.getCellList()) | |
{ | |
// Access each text fragment from the cell | |
TextFragmentCollection textFragmentCollection = pdfTableCell.getTextFragments(); | |
// Access each text fragment from the fragments collection | |
for (com.aspose.pdf.TextFragment textFragment : textFragmentCollection) | |
{ | |
// Display the table cell text | |
System.out.println(textFragment.getText()); | |
} | |
} | |
} | |
System.out.println("Done"); | |
} | |
} |
Aby wyodrębnić tabelę z PDF, kod Java jest tutaj, który używa klas TableAbsorber i AbsorbedTable do obsługi tabel w PDF. Używa również klas AbsorbedRow i AbsorbedCell do zarządzania wierszami i kolumnami przed użyciem klasy TextFragment do pobierania danych komórki. Ponadto istnieje wiele innych klas pochłaniaczy dostępnych dla różnych elementów w dokumencie, takich jak czcionki, akapity, tekst i fragmenty tekstu.
W tym artykule opisano, że za pomocą języka Java wyodrębnianie tabeli PDF można wykonać w kilku krokach. Jeśli chcesz dowiedzieć się, jak czytać tekst i obrazy z pliku PDF, zapoznaj się z artykułem na jak czytać plik PDF w Javie.