You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PowerApps PDF Viewer无法打开SharePoint存储的PDF文件求助

问题描述

我制作了一个简单PDF,在存入SharePoint前作为变量时,PDF Viewer能正常打开。相关代码:

Set(
    varMyPDF;
    PDF(
        PDFtosubmit;
        {
            Orientation: PaperOrientation.Portrait;
            Size: PaperSize.A4;
            Margin: "20px";
            ExpandContainers: true
        }
    )
)

上传到SharePoint的代码:

makePDF.Run({file:{name: "Name"; contentBytes: varMyPDF}})

我在同一屏幕用垂直画廊展示该文档库内容,尝试两种方式打开PDF均失败:

  1. 画廊OnSelect设置:
Set(varMyPDF; ThisItem.'Koppeling naar item')

→ 报错:the PDF can't be opened - open in browser instead

  1. 通过Power Automate流getPDF获取内容,流步骤:
    • PowerApps触发器(接收项目ID参数)
    • SharePoint-获取文件内容
    • Compose(base64转二进制)
    • 返回文本格式结果给Power Apps
      画廊OnSelect代码:
Set(varMyPDF; getPDF.Run(ThisItem.'Id ({Identifier})').result)

→ 报错:the PDF can't be open - check if the PDF is coming through https connection

找不到在Power Automate中强制HTTPS响应的方法,求解决方案。

解决方案

方案1:直接绑定文件绝对URL

无需变量中转,将PDF Viewer控件的Document属性直接绑定画廊选中项的绝对URL:

Gallery1.Selected.AbsoluteUri

PDF Viewer会通过HTTPS直接请求SharePoint上的PDF文件,规避格式不兼容问题。

方案2:修正Power Automate流的返回格式

如果必须通过流获取内容,调整流步骤:

  • 保留PowerApps触发器(接收ID参数)
  • SharePoint-获取文件内容(直接取File content)
  • 跳过base64转二进制的Compose操作,直接将File content以二进制数据格式返回给Power Apps
  • 在Power Apps中,将返回的二进制数据直接赋值给PDF Viewer的Document属性:
getPDF.Run(Gallery1.Selected.'Id ({Identifier})').fileContent

方案3:修复变量赋值格式

若坚持用变量,方案1的报错是因为'Koppeling naar item'是内部链接对象,不是PDF Viewer支持的格式,改为绑定文件的二进制内容:

Set(varMyPDF; ThisItem.ContentBytes)

再将PDF Viewer的Document属性设为varMyPDF。

关键说明
  • PDF Viewer仅支持二进制数据或HTTPS开头的绝对URL,不支持SharePoint内部链接对象或格式错误的文本数据
  • Power Automate返回二进制数据时默认通过HTTPS传输,之前的错误是因为转成文本格式导致数据损坏

内容的提问来源于stack exchange,提问作者Istvan Kokuti

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.19 13:10:09