PDF es un formato de documento portátil que se utiliza para representar datos como imágenes, tablas y muchos más. Hoy en día el uso de PDF se incrementa rápidamente en diferentes campos. Muchas aplicaciones han cambiado el uso excesivo de archivos PDF para representar datos. Entonces, algunas de las aplicaciones tienen el requisito de extraer los datos del archivo PDF y mostrar esos datos dentro de nuestra aplicación. En este artículo, crearemos una aplicación para extraer los datos del archivo PDF y mostrarlos en nuestra aplicación.
¿Qué vamos a construir?
En este artículo, crearemos una aplicación simple en la que extraeremos los datos del PDF con un clic de botón y mostraremos los datos extraídos en nuestra Vista de texto.
XML
<?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" tools:context=".MainActivity"> <ScrollView android:layout_width="match_parent" android:layout_height="match_parent"> <!--text view for displaying our extracted text--> <TextView android:id="@+id/idPDFTV" android:layout_width="match_parent" android:layout_height="match_parent" /> </ScrollView> <!--button for starting extraction process--> <Button android:id="@+id/idBtnExtract" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentBottom="true" android:layout_centerHorizontal="true" android:layout_marginBottom="20dp" android:text="Extract Text from PDF" android:textAllCaps="false" /> </RelativeLayout>
Java
import android.os.Bundle; import android.view.View; import android.widget.Button; import android.widget.TextView; import androidx.appcompat.app.AppCompatActivity; import com.itextpdf.text.pdf.PdfReader; import com.itextpdf.text.pdf.parser.PdfTextExtractor; public class MainActivity extends AppCompatActivity { // creating variables for // button and text view. private Button extractPDFBtn; private TextView extractedTV; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); // initializing variables for button and text view. extractedTV = findViewById(R.id.idPDFTV); extractPDFBtn = findViewById(R.id.idBtnExtract); // adding on click listener for button extractPDFBtn.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { // calling method to extract // data from PDF file. extractPDF(); } }); } private void extractPDF() { try { // creating a string for // storing our extracted text. String extractedText = ""; // creating a variable for pdf reader // and passing our PDF file in it. PdfReader reader = new PdfReader("res/raw/amiya_rout.pdf"); // below line is for getting number // of pages of PDF file. int n = reader.getNumberOfPages(); // running a for loop to get the data from PDF // we are storing that data inside our string. for (int i = 0; i < n; i++) { extractedText = extractedText + PdfTextExtractor.getTextFromPage(reader, i + 1).trim() + "\n"; // to extract the PDF content from the different pages } // after extracting all the data we are // setting that string value to our text view. extractedTV.setText(extractedText); // below line is used for closing reader. reader.close(); } catch (Exception e) { // for handling error while extracting the text file. extractedTV.setText("Error found is : \n" + e); } } }
Publicación traducida automáticamente
Artículo escrito por chaitanyamunje y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA