开发者社区 问答 正文

在文档智能中怎么直接把本地PDF文件上传之后的结果输出成一个Excel文件,可以给一个代码吗?

在文档智能中怎么直接把本地PDF文件上传之后的结果输出成一个Excel文件,可以给一个Python代码吗?ae45b71da0d906a0a6a67e48d983717e.png

展开
收起
花开富贵111 2024-04-24 10:08:32 63 发布于黑龙江 分享
分享
版权
举报
阿里云 AI 助理回答

要在文档智能中将本地PDF文件上传并转换为Excel文件,您可以使用阿里云提供的SubmitConvertPdfToExcelJobAdvance接口。以下是基于Python SDK的代码示例,展示如何实现这一功能。

代码示例

# -*- coding: utf-8 -*-
from alibabacloud_docmind_api20220711.client import Client as DocmindApiClient
from alibabacloud_tea_openapi.models import Config
from alibabacloud_docmind_api20220711.models import SubmitConvertPdfToExcelJobAdvanceRequest
from alibabacloud_tea_util.models import RuntimeOptions
from alibabacloud_credentials.client import Client as CredClient

def create_client():
    """
    创建并初始化客户端。
    """
    # 使用默认凭证初始化Credentials Client
    cred = CredClient()
    config = Config(
        # 通过credentials获取配置中的AccessKey ID
        access_key_id=cred.get_credential().get_access_key_id(),
        # 通过credentials获取配置中的AccessKey Secret
        access_key_secret=cred.get_credential().get_access_key_secret()
    )
    # 设置访问域名
    config.endpoint = "docmind-api.cn-hangzhou.aliyuncs.com"
    return DocmindApiClient(config)

def submit_pdf_to_excel_job():
    """
    提交PDF转Excel任务并获取结果。
    """
    client = create_client()

    # 打开本地PDF文件
    file_path = "./example.pdf"  # 替换为您的PDF文件路径
    with open(file_path, "rb") as file:
        request = SubmitConvertPdfToExcelJobAdvanceRequest(
            file_url_object=file,  # 本地文件流
            file_name="example.pdf",  # 文件名,需包含后缀
            force_merge_excel=False  # 是否强制合并为一个sheet,默认为False
        )

        runtime = RuntimeOptions()
        try:
            # 提交异步任务
            response = client.submit_convert_pdf_to_excel_job_advance(request, runtime)
            print("提交任务成功,返回结果:")
            print(response.body)

            # 获取业务订单号,用于后续查询任务状态
            job_id = response.body.data.id
            print(f"任务ID: {job_id}")
        except Exception as error:
            print("提交任务失败,错误信息:")
            print(error.message)

if __name__ == "__main__":
    submit_pdf_to_excel_job()

代码说明

  1. 创建客户端

    • 使用CredClient从默认凭证中获取AccessKey IDAccessKey Secret
    • 配置访问域名docmind-api.cn-hangzhou.aliyuncs.com
  2. 提交任务

    • 调用SubmitConvertPdfToExcelJobAdvance接口,支持本地文件上传方式。
    • file_url_object参数用于传递本地文件流。
    • file_name参数指定文件名(需包含.pdf后缀)。
    • force_merge_excel参数控制是否将所有内容合并到一个Sheet中,默认为False
  3. 处理响应

    • 成功提交任务后,返回的响应中包含RequestIdData字段。
    • Data.Id是业务订单号,用于后续查询任务状态。
  4. 轮询结果

    • 提交任务后,您需要调用GetDocumentConvertResult接口轮询任务状态,建议每10秒轮询一次,最多轮询120分钟。
    • 如果任务完成,结果会包含生成的Excel文件的下载地址。

注意事项

  • 文件大小限制:不支持超过100MB或1000页以上的PDF文件。
  • 任务有效期:任务提交后,您可以在24小时内查询处理结果,超过24小时后将无法查询。
  • 依赖安装:确保已安装相关SDK依赖,例如alibabacloud-docmind-api20220711alibabacloud-credentials

通过上述代码,您可以轻松实现将本地PDF文件上传并转换为Excel文件的功能。如果需要进一步查询任务状态,请参考GetDocumentConvertResult接口的相关文档。

有帮助
无帮助
AI 助理回答生成答案可能存在不准确,仅供参考
0 条回答
写回答
取消 提交回答