Power Apps导出PDF时Expand Containers在Gallery和Container中失效求助
问题分析与解决方案
代码中的核心问题
你的代码存在几处语法和逻辑错误,导致ExpandContainers: true未生效,同时审批流程调用也会失败:
PDF函数参数语法错误
在file对象里的PDF()调用,你把配置参数写在了括号外面,这会导致该PDF生成时完全没应用ExpandContainers等设置,正确写法是把配置参数放进PDF()的第二个参数中。冗余的PDF内容定义
你在PDFContent里同时定义了ContentBytes和file两个包含PDF内容的字段,属于重复定义,只需要保留一个符合Power Automate要求的文件格式即可。审批流程调用的参数错误
最后一个参数的字符串拼接逻辑错误,直接把变量写在引号内Power Apps无法识别,需要用&做拼接,同时存在引号未闭合的问题,参数顺序也可能与Flow的要求不匹配。
修正后的代码
Set( PDFContent, { contentBytes: PDF( ResultMainContainer_Test, { Orientation: PaperOrientation.Portrait, Size: PaperSize.A4, DPI: 150, ExpandContainers: true } ), name: "Executive Summary.pdf" } ); // 注意:请确认ApprovalEmail流程的输入参数顺序与调用顺序一致 ApprovalEmail.Run( "Executive Summary.pdf", "Please review and approve.", "Approver email", "[Approval request] " & User().Email & " " & User().FullName, PDFContent );
确保ExpandContainers生效的额外配置
除了代码修正,还需要调整容器和Gallery的布局属性:
- 主容器ResultMainContainer_Test:将
Height设为Auto,不要固定为屏幕高度(比如App.Height),让容器能根据子内容自动扩展。 - 右侧容器RightContainer_Test:同样把
Height设为Auto,确保它能容纳Gallery的完整内容。 - Gallery控件:将
Height设为Self.TotalHeight,让Gallery显示所有项的全部内容,而非截断在屏幕范围内。
验证步骤
- 先单独测试
PDF(ResultMainContainer_Test, {ExpandContainers: true}),可以将结果赋值给一个Image控件的Image属性,查看是否包含Gallery的全部内容。 - 确认Power Automate的
ApprovalEmail流程接收的文件参数是contentBytes+name的标准文件对象格式。
内容的提问来源于stack exchange,提问作者Quincy Chan
相关产品推荐
相关产品推荐

