Aspose.PDF FOSS for Python Características

Aspose.PDF FOSS for Python Características

Aspose.PDF FOSS para Python Características

Aspose.PDF FOSS para Python es una biblioteca pure-Python para crear, abrir, modificar y guardar documentos PDF. Esta página examina las principales áreas de capacidad y las clases que actúan como sus puntos de entrada. Cada área se cubre en profundidad en su propia página de guía para desarrolladores.


Gestión de documentos y páginas

Document es el objeto raíz para cada operación. Constrúyalo sin argumentos para iniciar un documento nuevo y vacío, o llame a load_from() para leer uno existente desde una ruta, bytes o flujo. document.pages expone el mutable PageCollection, y Page.add_text coloca texto posicionado en una página.

from aspose_pdf import Document

document = Document()
page = document.pages.add()
page.add_text("Hello from Aspose.PDF FOSS!", x=72, y=720, font_size=18)
document.save("hello.pdf")

Extracción de texto y búsqueda

PdfExtractor se vincula a un documento y extrae texto página por página. bind_pdf() abre la fuente, extract_text() realiza la extracción y get_text() devuelve el resultado acumulado.

from aspose_pdf import PdfExtractor

extractor = PdfExtractor()
extractor.bind_pdf("hello.pdf")
extractor.extract_text()
print(extractor.get_text())
extractor.close()

Para búsqueda y reemplazo posicionados, por fragmento, TextFragmentAbsorber expone objetos TextFragment coincidentes con text_search_options controlando la sensibilidad a mayúsculas y la coincidencia de expresiones regulares.


Renderizado de Página a Imágenes

Document.save_page_as_image renderiza una sola página directamente a un archivo PNG o TIFF con una DPI configurable. Para acceso de bajo nivel, Page.render devuelve un RasterizedPage con datos de píxeles sin procesar a través de get_pixel() y pixels.

from aspose_pdf import Document

document = Document()
document.load_from("hello.pdf")
document.save_page_as_image(0, "page-1.png", dpi=150)

Formularios y Campos Interactivos

Los campos AcroForm se gestionan a través de Document.form, una fachada Form. Form.add_text_field() (y sus equivalentes de casilla de verificación, botón de radio, lista y cuadro combinado) crea un nuevo campo asociado a una página y a un rectángulo de widget, devolviendo un Field. Form.fields enumera todos los campos que existen actualmente en el documento.

from aspose_pdf import Document

document = Document()
page = document.pages.add()
document.form.add_text_field("customer_name", page, (72, 700, 300, 720))

for field in document.form.fields:
    print(field.name, field.field_type)

document.save("form.pdf")

Seguridad, Cifrado y Firmas

Document.encrypt protege un documento con una contraseña de usuario (necesaria para abrirlo) y una contraseña de propietario (necesaria para cambiar permisos); decrypt() y change_passwords() gestionan la protección en un documento ya abierto. is_encrypted informa del estado actual.

from aspose_pdf import Document

document = Document()
document.load_from("hello.pdf")
document.encrypt(user_password="secret", owner_password="owner-secret")
document.save("encrypted.pdf")

La verificación de firmas digitales es manejada por PdfSignature.validate, que devuelve un ValidationResult que describe el estado de confianza y revocación, y SigningUtils proporciona asistentes de firma de certificado y PKCS#7/CAdES.


Cumplimiento de PDF/A y PDF/UA

Document.validate_pdfa ejecuta una comprobación de cumplimiento heurística PDF/A y devuelve un PdfAValidationResult; convert_to_pdfa() intenta remediar el documento hacia ese nivel. validate_pdfua() y auto_tag() proporcionan la comprobación de accesibilidad equivalente y el etiquetado automático del árbol de estructura para PDF/UA.

from aspose_pdf import Document

document = Document()
document.load_from("hello.pdf")

result = document.validate_pdfa("1b")
if not result.is_valid:
    document.convert_to_pdfa("1b")

document.auto_tag()
document.save("compliant.pdf")

Consejos y mejores prácticas

  • Modifique el objeto devuelto directamente por document.pages, page.annotations o document.form — las ediciones realizadas en una copia separada de una página o campo no se reflejan cuando llama a save().
  • PageCollection está indexado desde cero en esta vinculación Python (document.pages[0] es la primera página).
  • Capture InvalidPasswordException y PdfParseException antes del AsposePdfException más amplio al llamar a load_from() con entrada no confiable, de modo que pueda reaccionar de manera diferente a una contraseña incorrecta que a un archivo corrupto.
  • Llame a document.optimize() o compress_streams() antes de save() en documentos fuertemente editados para eliminar recursos no utilizados y reducir el tamaño del archivo.
  • Pase un PdfLoadLimits limitado a load_from() al procesar PDFs de una fuente no confiable, para limitar la memoria y el recuento de objetos durante el análisis.

Problemas comunes

ProblemaCausaSolución
save() produce un archivo con ediciones sin cambiosSe hicieron ediciones a una copia de página, anotación o campo en lugar del objeto obtenido de document.pages, annotations o formModifique el objeto devuelto directamente por esas colecciones
InvalidPasswordException en load_from()El documento está protegido con contraseña y no se proporcionó ninguna contraseña, o se proporcionó la incorrectaIntroduce la contraseña correcta: document.load_from(path, password="...")
validate_pdfa() todavía reporta un error de fuente después de convert_to_pdfa()No se encontró ningún archivo de fuente coincidente en el font_lookup_directory proporcionadoAgregue la fuente faltante al directorio de búsqueda, o regístrela con FontRepository antes de convertir
La imagen renderizada parece vacíaÍndice de página incorrecto pasado a save_page_as_image() o render()pages está indexado desde cero — confirme el índice y verifique si PdfExtractor devuelve texto para esa página
El campo agregado con Form.add_text_field() no aparece en la páginaEl rectángulo del widget cae fuera del media_box de la páginaConfirme que las coordenadas del rectángulo estén dentro del Page.media_box

FAQ

¿Depende Aspose.PDF FOSS para Python de un motor PDF comercial?

No. Es un motor PDF puro-Python creado desde cero, publicado bajo la licencia MIT. Sus únicas dependencias en tiempo de ejecución son cryptography y asn1crypto, utilizados para cifrado y verificación de firmas.

¿Puedo crear un PDF desde cero en lugar de abrir uno existente?

Sí. Document() sin argumentos crea un documento vacío en memoria; llama a document.pages.add() para añadir páginas antes de guardar.

¿A qué formatos raster puedo renderizar una página?

Page.render y Document.save_page_as_image generan salida raster PNG o TIFF; el RasterizedPage devuelto también expone datos de píxeles sin procesar a través de get_pixel() y la propiedad pixels.

¿Qué excepción debo capturar para errores específicos del paquete?

Captura AsposePdfException. Cada error específico del paquete — incluyendo el análisis (PdfParseException), la contraseña y el cifrado (PdfSecurityException, InvalidPasswordException), y las fallas de validación (PdfValidationException) — se deriva de él.

¿A dónde voy a continuación?

Comenzando cubre la instalación, el licenciamiento y un primer ejemplo funcional. Esta guía para desarrolladores continúa con temas de gestión de documentos como formularios, archivos adjuntos incrustados, descubrimiento de fuentes y creación de esquemas/marcadores.


API Reference Resumen

Clase/MétodoDescripción
DocumentObjeto raíz — crear, cargar, guardar y gestionar un PDF
Document.pagesEl PageCollection mutable del documento
Document.load_from / Document.saveLeer desde o escribir en una ruta, bytes o flujo
Document.encrypt / Document.decryptProteger con contraseña o eliminar la protección
Document.validate_pdfa / Document.convert_to_pdfaComprobación heurística de cumplimiento de PDF/A y conversión
Document.validate_pdfua() / Document.auto_tagPDF/UA comprobación de accesibilidad y etiquetado automático de la estructura
Page.add_textAgregar texto posicionado a una página
Page.renderRenderizar una página a un RasterizedPage
PdfExtractorExtraer texto de la página y archivos adjuntos incrustados
PdfFileEditorConcatenar, dividir, insertar y eliminar páginas entre archivos
Form / FieldAcroForm contenedor y campos de formulario individuales
PdfSignature / SigningUtilsValidación y creación de firma digital
AsposePdfExceptionClase base para cada excepción específica de paquete

Ver también

 Español