인쇄 관련 문의드립니다.

웹한글기안기 테스트중 궁금한 점이 있어 문의드립니다.

먼저, 웹한글기안기 샘플 프로젝트에서 인쇄 기능은 정상작동합니다.
그런데 테스트중인 프로젝트에서는 인쇄 버튼을 누르면 아래와 같은 메시지가 뜨네요.

Uncaught DOMException: Failed to read a named property ‘print’ from ‘Window’: Blocked a frame with origin “http://웹기안기서버IP:포트” from accessing a cross-origin frame.
at http://웹기안기서버IP:포트/webhwpctrl/js/main-hwpapp.js?version=10.80.0.2446:8:3977800

두 프로젝트의 차이점은
샘플 프로젝트는 baseUrl이 location.href,
테스트 프로젝트는 저희 개발서버 IP로 세팅되어있습니다.

var HwpCtrl = BuildWebHwpCtrl(“hwpctrl”, location.href, function() {

var hwpCtrl = BuildWebHwpCtrl(“hwpctrl”, “http://웹기안기서버IP:포트/webhwpctrl”, function() {

웹기안기는 별도의 테스트서버에 구축해놓은 상태고,
프로젝트는 로컬에서 테스트중입니다.
그리고 아래 게시물 참조해서 hwpctrlmain.html을 포함한 webhwpctrl 폴더를 저희 개발프로젝트에 복사해놓은 상태입니다.
이런 경우 해결방법은 어떻게 될까요?

1개의 좋아요

안녕하세요.

인쇄 동작에서 브라우저의 Print 기능을 사용하는데 크로스 도매인 환경에서는 위와 같은 오류가 발생합니다.

웹한글 기안기 인쇄 동작시 페이지의 “download_iframe” 이름의 별도 iframe 이 있을 경우 이를 이용해 print 함수를 호출합니다.
“download_iframe” 이름의 iframe이 없을 경우에는 pdf 파일을 새탭이나 새창으로 보여줍니다.

테스트중인 프로젝트에서 “download_iframe” 이름의 iframe 태그를 제거하면 오류발생하지 않을것 같습니다.

아. 그 방법은 이미 해봐서 알고있었습니다^ ^;;
pdf파일을 새 창으로 보여주지않고
샘플 프로젝트처럼 인쇄화면이 바로 뜨게 하고싶었는데 이건 어려운가보네요.

※ 웹한글기안기와 프로젝트가 다른 서버에 존재할 수도 있을텐데
이 경우에는 인쇄기능을 항상 이렇게 사용해야 하는걸까요?

크로스도메인 환경설정 말고, iframe에서 별도로 처리하는 방법이 있다고도 본 것 같은데…
이 부분은 보완이 필요해보입니다(__ )

추가 질의 하나만 더 해도 될까요?

지금 저희 개발프로젝트에서 한글은 팝업창에서 띄워놓은 상태인데요.

“download_iframe” 이름의 iframe을 주석처리하니까
크롬(엣지) 부모창의 새 탭에 pdf파일이 뜨던데, 혹시 새 창(팝업)으로 띄울수는 없나요?

기안기 최신버전에서는 새창으로 띄우도록 되어있습니다.
최신버전으로 적용하시면 될것 같습니다.

개발자센터 예제페이지에서 확인 가능합니다.

1개의 좋아요

현재 저희가 테스트중인 버전은 10.80.0.2446 이었습니다.
이 버전보다 최신버전이라는 말씀이시죠?

답변 감사합니다(__ )