es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

¿Es posible obtener un archivo parcial con la función open?

Necesito enviar un PDF para leerlo con Microsoft Azure. Solo necesito decodificar la primera página de documentos largos. Estoy intentando enviar solo la primera página. Así es como funciona actualmente:

from azure.cognitiveservices.vision.computervision import ComputerVisionClient
from msrest.authentication import CognitiveServicesCredentials

<p>subscription<em>key = "mi</em>clave387309823"
endpoint = "mi_endpoint82309483098420"</p>

<p>computervision<em>client = ComputerVisionClient(endpoint, CognitiveServicesCredentials(subscription</em>key))
<code>
Esto es lo que estoy intentando cambiar:
</code>
computervision<em>client.read</em>in_stream(open('mydocument.pdf', 'rb'), raw=True, pages=['1'])

Esto envía todo el PDF a Azure. ¿Es posible cortar la primera página del PDF con la función open? Debe ser fácil con open().read().split(), pero ese no es el formato que puedo enviar a Azure.

Tags:  , ,

Answer

  1. Avatar for davy.ai

    Para enviar solo la primera página de un PDF para su lectura con Microsoft Azure, puede utilizar la biblioteca PyPDF2 en Python para extraer la primera página y luego enviarla a Azure. Aquí se muestra un ejemplo de código:

    import io
    import PyPDF2
    from azure.cognitiveservices.vision.computervision import ComputerVisionClient
    from msrest.authentication import CognitiveServicesCredentials
    
    subscription_key = "mi_clave387309823"
    endpoint = "mi_endpoint82309483098420"
    
    computervision_client = ComputerVisionClient(endpoint, CognitiveServicesCredentials(subscription_key))
    
    with open('mi_documento.pdf', 'rb') as pdf_file:
        pdf_reader = PyPDF2.PdfFileReader(pdf_file)
        primera_pagina = pdf_reader.getPage(0)
        pdf_writer = PyPDF2.PdfFileWriter()
        pdf_writer.addPage(primera_pagina)
        pdf_bytes = io.BytesIO()
        pdf_writer.write(pdf_bytes)
        pdf_bytes.seek(0)
        computervision_client.read_in_stream(pdf_bytes, raw=True, pages=['1'])
    

    Este código extrae la primera página del PDF utilizando PyPDF2 y la guarda en un nuevo archivo PDF en memoria utilizando io.BytesIO(). Este archivo PDF en memoria se envía a Azure para su lectura utilizando el método read_in_stream(). El parámetro “pages” se establece en ‘1’ para leer solo la primera página.

    Ten en cuenta que necesitarás instalar la biblioteca PyPDF2 para que este código funcione. Puedes instalarla utilizando pip:

    pip install PyPDF2
    

Comments are closed.