안녕하세요.
프로그램에서 엑셀파일을 바로 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로 저장은 되는 것 같은데 값리턴이... 문제일 것 같습니다.
스마트폼 등으로 양식 신규만드는 것이 가장 안전할까요?
안녕하세요.
기본적으로 OLE 를 사용하는 방식은 로컬 PC의 MS Office 리소스를 사용하므로, 반드시 사용자 PC에서 실행되어야 합니다.
(OLE 를 통한 엑셀 -> PDF 저장이든, VBA 를 통한 방법이든 사용자 PC에서 실행됩니다.)
따라서, 사용자 PC를 경유하지 않고 서버 사이드 레벨에서 엑셀 -> PDF 작업은 불가능합니다.
제가 알고 있는 선에서는 서버 사이드에서 PDF 생성을 하려면,
SAP 내 Add-in 서비스인 Adobe Document Service 에서 가능합니다.
대신 ADS 는 활성화하려면 별도의 라이센스가 필요한 걸로 알고 있어서 스탠다드 레벨에서는 불가능하다고 보셔야 합니다.
가장 현실적인 방법은, 스마트폼을 만들어서 데이터 바인딩 후, OTF to PDF 로 생성해서 외부 메일 전송으로 하셔야 할 것 같습니다.
이 작업은 서버사이드에서도 가능합니다.