SMW0 양식으로 데이터 바인딩한 엑셀파일을 PDF로 변환하는 기능

  • Home
  • ABAPABAP QnA
  • SMW0 양식으로 데이터 바인딩한 엑셀파일을 PDF로 변환하는 기능

안녕하세요. 

 

프로그램에서 엑셀파일을 바로 PDF로 변환하는 기능이 있을까요?

 

현재 프로그램은 SMW0에 업로드한 엑셀양식을 Function WWWDATA_IMPORT을 사용해서

MIME파일로 엑셀을 가져와 프로그램에서 데이터를 바인딩하여 PC에 저장하고있습니다.

 

RFC에서 이 프로그램을 호출하여 엑셀파일을 PDF로 변환해 웹에 이진데이터로 전송을 하고 싶은데…

 

아래 방법을 찾아봤는데 잘 적용이 안되는 것 같아서.. 아래 방법 중에 사용할만한 방법이 있는지 또는 다른 방법이 있을지 궁금합니다.

1. OLE 사용

https://community.sap.com/t5/application-development-discussions/convert-excel-to-pdf-with-abap-code/td-p/12142075

링크에 있는 글을 참고했는데 이 케이스는 엑셀파일을 프로그램에서 업로드해 OLE로 엑셀을 열어서 PDF로 저장하는 케이스라

프로그램내에서 만든 엑셀을 PDF로 전환하는 지금 프로그램에는 적용이 어려울 것 같습니다.

OLE로 신규시트열어서 만드는 것도 생각해봤는데 양식에 표가 여러개 복잡하게 들어있어.. 힘들 것 같더군요 

 

2. 파일을 개인 폴더에 저장 후 가져와서 메일 발송 

-> 한번에 여러건 발송이 필요해서… 이 방법이면 스마트폼등으로 양식을 신규 개발하는 게 좋을 것 같아 고민됩니다.

 

3. VBA 로직으로 엑셀 바인딩 변경

이 경우 SAVE AS로 PDF로 저장은 되는 것 같은데 값리턴이… 문제일 것 같습니다.

 

스마트폼 등으로 양식 신규만드는 것이 가장 안전할까요?


2 Comments

avatar

안녕하세요.

 

기본적으로 OLE 를 사용하는 방식은 로컬 PC의 MS Office 리소스를 사용하므로, 반드시 사용자 PC에서 실행되어야 합니다.

(OLE 를 통한 엑셀 -> PDF 저장이든, VBA 를 통한 방법이든 사용자 PC에서 실행됩니다.)

 

따라서, 사용자 PC를 경유하지 않고 서버 사이드 레벨에서 엑셀 -> PDF 작업은 불가능합니다.

 

 

제가 알고 있는 선에서는 서버 사이드에서 PDF 생성을 하려면, 

SAP 내 Add-in 서비스인 Adobe Document Service 에서 가능합니다.

대신 ADS 는 활성화하려면 별도의 라이센스가 필요한 걸로 알고 있어서 스탠다드 레벨에서는 불가능하다고 보셔야 합니다.

 

가장 현실적인 방법은, 스마트폼을 만들어서 데이터 바인딩 후, OTF to PDF 로 생성해서 외부 메일 전송으로 하셔야 할 것 같습니다.

이 작업은 서버사이드에서도 가능합니다.

 

avatar

안녕하세요 자세한 답변 감사합니다.

어떤 방식이든 사용자의 PC에서 실행되어야한다고 말씀해주시니까 OLE에 대해 빠른 이해가 됐습니다.

ADS는 또 별도의 라이센스가 필요하군요… 스마트폼으로 진행해야겠습니다.

정말 감사합니다. 많은 도움이 되었습니다!

Leave a Reply