Формы PDF широко используются для сбора данных в структурированном и стандартизированном формате. Программное извлечение данных формы может стать мощным способом автоматизации задач обработки данных и оптимизации рабочих процессов. В этой статье мы рассмотрим несколько методов извлечения данных из PDF-форм на примерах кода.
Метод 1: библиотека PyPDF2 (Python)
PyPDF2 — популярная библиотека Python, которая позволяет извлекать данные из файлов PDF. Чтобы извлечь данные формы с помощью PyPDF2, выполните следующие действия:
import PyPDF2
def extract_form_data(pdf_path):
pdf = PyPDF2.PdfFileReader(pdf_path)
form = pdf.getFormTextFields()
data = {}
for field in form:
data[field] = form[field].value
return data
# Usage example
pdf_path = "example.pdf"
extracted_data = extract_form_data(pdf_path)
print(extracted_data)
Метод 2: библиотека iText (Java)
iText — это библиотека Java, предоставляющая широкие возможности манипулирования PDF-файлами. Вот пример использования iText для извлечения данных формы из файла PDF:
import com.itextpdf.forms.PdfAcroForm;
import com.itextpdf.forms.fields.PdfFormField;
import com.itextpdf.kernel.pdf.PdfDocument;
import com.itextpdf.kernel.pdf.PdfReader;
public class PDFFormExtractor {
public static void main(String[] args) {
String pdfPath = "example.pdf";
try (PdfReader reader = new PdfReader(pdfPath);
PdfDocument document = new PdfDocument(reader)) {
PdfAcroForm form = PdfAcroForm.getAcroForm(document, true);
form.flattenFields();
for (PdfFormField field : form.getFormFields().values()) {
System.out.println(field.getFieldName() + ": " + field.getValueAsString());
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
Метод 3: библиотека pdftools (R)
Если вы предпочитаете работать с R, пакет pdftools предоставляет удобный способ извлечения данных из PDF-формы. Вот пример:
library(pdftools)
pdf_path <- "example.pdf"
form_data <- pdf_form_fields(pdf_path)
extracted_data <- lapply(form_data, function(field) {
field$name <- field$name
field$value <- field$value
return(field)
})
print(extracted_data)
Метод 4: библиотека таблиц (Python)
Если ваша PDF-форма содержит табличные данные, Tabula — это полезная библиотека Python для извлечения таблиц. Вот пример:
import tabula
def extract_table_data(pdf_path):
tables = tabula.read_pdf(pdf_path, pages='all')
return tables
# Usage example
pdf_path = "example.pdf"
extracted_tables = extract_table_data(pdf_path)
print(extracted_tables)
В этой статье мы рассмотрели несколько методов программного извлечения данных из PDF-форм. Мы рассмотрели библиотеки PyPDF2 и iText для извлечения общих форм, pdftools для пользователей R и Tabula для извлечения табличных данных. В зависимости от предпочитаемого вами языка программирования и конкретных требований вы можете выбрать наиболее подходящий метод для эффективного извлечения данных из PDF-форм.