PNG JPG BMP TIFF PDF
Aspose.PDF  for Python

Comprimir PDF en Python SDK

Optimizar documento PDF usando Cloud Python SDK.

Get Started

Cómo comprimir PDF a través de Cloud Python SDK

Para comprimir PDF, usaremos Aspose.PDF Cloud Python SDK. Este SDK en la nube ayuda a los programadores de Python a desarrollar aplicaciones en la nube para crear, anotar, editar y convertir PDF usando el lenguaje de programación Python a través del REST API de Aspose.PDF. Simplemente cree una cuenta en Aspose for Cloud y obtenga la información de su aplicación. Una vez que tenga el App SID y la clave, estará listo para usar Aspose.PDF Cloud Python SDK. Si el paquete de Python está alojado en Github, puede instalarlo directamente desde Github:

Instalación desde Github


     
    pip install git+https://github.com/aspose-pdf-cloud/aspose-pdf-cloud-python.git

Comando de la Consola del Administrador de Paquetes

     
    pip install asposepdfcloud

Pasos para comprimir PDF a través de Python SDK

Los desarrolladores de Aspose.PDF Cloud pueden cargar y optimizar fácilmente PDF en solo unas pocas líneas de código.

  1. Instale Python SDK
  2. Defina la Clase Config
  3. Inicialice el Cliente API de PDF
  4. Suba el documento PDF con el método upload_document
  5. Comprimir el documento PDF usando el método compress_pdf_document (en este ejemplo comprimimos imágenes y reducimos su calidad, puede configurar otros parámetros si lo necesita). Consulte las Páginas de Documentación si necesita más detalles.
  6. Enviar solicitud de compresión a través de post_optimize_document().
  7. Descargue el PDF resultante
 

Comprimir PDF usando Python


    import shutil
    import json
    import logging
    from pathlib import Path
    from asposepdfcloud import ApiClient, PdfApi, OptimizeOptions

    # Configure logging
    logging.basicConfig(level=logging.INFO, format="%(asctime)s - %(levelname)s - %(message)s")


    class Config:
        """Configuration parameters."""
        CREDENTIALS_FILE = Path(r"Credentials/credentials.json")
        LOCAL_FOLDER = Path(r"C:\Samples")
        TEMP_FOLDER = 'TempPdfCloud'
        PDF_DOCUMENT_NAME = "sample.pdf"
        LOCAL_RESULT_DOCUMENT_NAME = "output_sample.pdf"

    class PdfCompress:
        """Class for compress PDF links using Aspose PDF Cloud API."""
        def __init__(self, credentials_file: Path = Config.CREDENTIALS_FILE):
            self.pdf_api = None
            self._init_api(credentials_file)

        def _init_api(self, credentials_file: Path):
            """Initialize the API client."""
            try:
                with credentials_file.open("r", encoding="utf-8") as file:
                    credentials = json.load(file)
                    api_key, app_id = credentials.get("key"), credentials.get("id")
                    if not api_key or not app_id:
                        raise ValueError("init_api(): Error: Missing API keys in the credentials file.")
                    self.pdf_api = PdfApi(ApiClient(api_key, app_id))
            except (FileNotFoundError, json.JSONDecodeError, ValueError) as e:
                logging.error(f"init_api(): Failed to load credentials: {e}")

        def upload_document(self):
            """Upload a PDF document to the Aspose Cloud server."""
            if self.pdf_api:
                file_path = Config.LOCAL_FOLDER / Config.PDF_DOCUMENT_NAME
                stotage_path = Config.TEMP_FOLDER + '/' + Config.PDF_DOCUMENT_NAME
                try:
                    self.pdf_api.upload_file(stotage_path, str(file_path))
                    logging.info(f"upload_document(): File {Config.PDF_DOCUMENT_NAME} uploaded successfully.")
                except Exception as e:
                    logging.error(f"upload_document(): Failed to upload file: {e}")

        def download_result(self):
            """Download the processed PDF document from the Aspose Cloud server."""
            if self.pdf_api:
                try:
                    temp_file = self.pdf_api.download_file(Config.TEMP_FOLDER + '/' + Config.PDF_DOCUMENT_NAME)
                    local_path = Config.LOCAL_FOLDER / Config.LOCAL_RESULT_DOCUMENT_NAME
                    shutil.move(temp_file, str(local_path))
                    logging.info(f"download_result(): File successfully downloaded: {local_path}")
                except Exception as e:
                    logging.error(f"download_result(): Failed to download file: {e}")

        def compress_pdf_document(self):
            """Compress the PDF document."""
            if self.pdf_api:
                optimize_options = OptimizeOptions(
                    allow_reuse_page_content=False,
                    compress_images=True,
                    image_quality=75,
                    link_duplcate_streams=False,
                    remove_unused_objects=False,
                    remove_unused_streams=False,            
                    unembed_fonts=False
                )        
            opts = {
                "options" : optimize_options,
                "folder" : Config.TEMP_FOLDER
            }
            try:
                response = self.pdf_api.post_optimize_document(Config.PDF_DOCUMENT_NAME, **opts)

                if response.code == 200:
                    logging.info(f"compress_pdf_document(): PDF document '{Config.PDF_DOCUMENT_NAME}' successfully compressed.")
                else:
                    logging.error(f"compress_pdf_document(): Failed to compress document. Response code: {response.code}")
            except Exception as e:
                logging.error(f"compress_pdf_document(): Error while compress document: {e}")


    if __name__ == "__main__":
        pdf_compress = PdfCompress()
        pdf_compress.upload_document()
        pdf_compress.compress_pdf_document()
        pdf_compress.download_result()
 

Con nuestra biblioteca de Python puedes:

Comprimir documentos PDF con Aspose.PDF Cloud Python SDK.

  • Combinar documentos PDF.
  • Dividir archivos PDF.
  • Convertir PDF a otros formatos y viceversa.
  • Manipular anotaciones.
  • Trabajar con imágenes en PDF, etc.
  • Puede probar nuestra App gratuita para probar la funcionalidad en línea.