본문 바로가기
기술자료 (KB)/Power Platform

Power Apps – 화면에 나타난 값을 PDF로 변환하기

by 이완주 2023. 3. 29.

화면에 나타나는 Gallery 데이터를 PDF로 변환하여 메일로 보내거나 혹은 다운로드 받아 사용하고 싶다.

 

기존 방식은 GalleryHTML로 변경하고 다시 PDF로 변경 하여야만 가능했으며

한글이 깨지는 현상으로 Gallery 데이터를 HTML로 변경 후 JPEG로 다시 변경한 이후 PDF로 변경해야만 했다.

이 경우 HTML에서 JPEG로 변경할 때 일부 스타일이 적용되지 않는 문제가 발생했다.

 

아래 기능을 사용하면 위의 문제를 모두 해결할 수 있었다.

 

Power Apps PDF viewer 컨트롤(실험)

https://learn.microsoft.com/ko-kr/power-apps/maker/canvas-apps/controls/control-pdf-viewer

실험적 기능은 기본적으로 Off 되어 있어 아래와 같이 오류가 발생 함.

설정 예정된 기능 실험적 – PDF 함수

Screen, Gallery, Container 등 화면에 나타나는 데이터를 PDF 함수를 사용하여 PDF 작업이 가능하다.

위의 실험적 기능을 설정하면 아래와 같이 PDF 뷰어 기능을 활용하여 결과 화면을 미리 볼 수 있다.

왼쪽 Container 정보를 Pdf로 변환하여 PDF 뷰어로 확인한 내용이다.

아래 내용은 varPDFBlob 변수에 PDF 함수를 이용하여 A4 사이즈에 맞게 마진 설정한 내용을 저장

ExpandContainers: true

위의 옵션을 사용하지 않으면 화면에 보이는 내용만 PDF로 변환하기 때문에 A4 용지에 맞게 구성하려면 옵션을 true로 설정해야 한다.

Set(varPDFBlob,PDF(Container1_1,{ExpandContainers: true,Size:PaperSize.A4, Margin:"24pt 24pt 24pt 24pt"}));

 

 

 

PDF 내용을 메일로 보내려고 한다면 아래와 같이 설정하면 현재 로그온한 사용자에게 메일을 발송하게 된다.

Office365Outlook.SendEmailV2(User().Email,"PDF 메일 보내기","첨부된 PDF 문서를 확인해 주시기 바랍니다.",
{Attachments:Table({Name:"sample.pdf",ContentBytes:PDF(Container1_1,{ExpandContainers: true,Size:PaperSize.A4, Margin:"24pt 24pt 24pt 24pt"})})})

 

메일 수신 내용

문서를 SharePoint에 만들고 웹에서 실행

Set(varPDFFile,FilePDFSave.Run({file:{name:TitleLabel1_2.Text & ".pdf",
    contentBytes: PDF(Main2Container1_2,{ExpandContainers: true,Size:PaperSize.A4, Margin:"30pt 25pt 40pt 25pt"})}}).linkoutput;);
Launch(Last(Split(varPDFFile,"-")).Value);

 

아래는 Power Automate에서 FilePDFSave 실행에 대한 설정입니다.

SharePoint의 경로는 사용자가 접근 가능한 경로 임으로 Pdf 파일이 남아 있어서는 안 된다.

이 경우 파일을 삭제하고자 한다면 어떻게 해야 하나?

아래 글에 나와 있는 파일 일괄 삭제 기능을 활용하여 파일을 삭제하면 된다.

Power Automate - SharePoint 파일 일괄 삭제

 

예약 지연    활용하여 5초 지연을 설정하면 원하는 값을 얻을 수 있다.

지연을 설정하지 않으면 만들고 바로 삭제하여 파일을 다운 받을 수 없게 된다.

아래가 실제 제가 사용한 내용입니다.

item()?['{Identifier}']

댓글