어제 질문을 했는데 도움도 많이 받았고 이런 저런 내용도 많이 배워서 공유하려고 글 씁니다.
1. 문제 상황
- 파일 서버에 있는 PDF 파일을 단순히 브라우져에서 주소를 찍어주고 있었는데
배포 및 인쇄가 되면 안된다고 하며 단순히 보여만 주기를 원함
2. 과정
- 이게 브라우져에서 자체적으로 PDF를 보여주는 거라 어도브에서 해주지 않으면 안된다 내 소관 밖이다.
- 그리고 당연히 보이기만 하더라도 열리면 템프파일이든지 남을 수 있고 주소도 소스보면 바로 나오는데 의미가 없다라고
사용자를 설득했지만 사용자는 그런 건 모르겠고 되어야 된다는 입장이라 다른 방법을 고민하기로 했습니다.
3. Study 중 알게 된 지식
- PDF 에 Secure 설정이 있어서 만들 때 이 설정을 on 시키면 인쇄를 할 수 없다는 걸 알았으나
우리는 솔루션을 써서 PDF 를 자동생성하고 있고 해당 설정을 줄 수는 없었음
그리고 어차피 배포도 못하게 해야 되니 해결책은 아니었음
- 왠지 Layer 로 PDF 위를 싸면 될 거 같다라는 생각에 질문글을 올렸고 된다는 의견이 있어서
그 때부터 구글을 뒤지기 시작했습니다. ( 구글 짱 )
4. 결국 iframe 을 PDF 화면 위에 덮어서 그 밑에 있는 PDF 컨트롤을 뺏어가도록 구현 완료 ㅋㅋ
덮는 건 상위 프레임에 style을 강제로 주면 되더라구요.
<style>
.overlay {
width:98.5%; // 스크롤 때문에 남겨 놓음 ㅋㅋ
height:100%;
position:absolute;
top:0; left:0;
-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=20)";
filter:alpha(opacity=20);
opacity:0.2;
zoom: 1;
}
</style>
<iframe name='Contracat_Content2' class="overlay" allowtransparency="true" ></iframe>
그리고 상위 프레임을 지나서 아래 프레임이 보여야 되니까 투명도를 셋팅합니다.
브라우져 별로 투명도 셋팅이 틀려요 ( 구글 ,파폭, ie5~7 , ie8 , 이상 )
filter: alpha(opacity=50);
/* Older than Firefox 0.9 */
-moz-opacity:0.5;
/* Safari 1.x (pre WebKit!) */
-khtml-opacity: 0.5;
/* Modern!
/* Firefox 0.9+, Safari 2?, Chrome any?
/* Opera 9+, IE 9+ */
opacity: 0.5;
이거는 이야기가 왔다 갔다 해서 브라우져 마다 틀리다 정도로 이해하고 넘어갔어요 ㅎ..;
어쨌뜬 크롬에서 되는 걸 보고 완료..
4. 추가 문제 발생
- 추가로 ie 에서 test 하는데 투명은 되는데 뒤에 iframe 안에 열린 PDF를 못 가져오더라구요.
- 다른 건 다 투명으로 보이는데 아래 깔린 iframe 만 못 가져오고 ie에서만 못 가져와서..
- 결국 사용자에게 파폭 깔려 있는 지 확인 후 - 안 깔리면 설치 후 팝업 / 설치 되어 있으면 파폭으로 뜨도록...
5. 결론
- 찾다보니 embed로 유투브 플레이하고 못 건드리게 한다던가 이리저리 쓰이긴하더라구요.
ie 에서는 아래 깔린 iframe은 안 보이는 건 참 .. 해결도 안되고 ( 아시는 분 있으면 조언 좀.. )
해결책이라고 하기에는 조잡하긴 한데 찾다보니 재밌기도 했어서 결과 공유 했네요 ㅎㅎ
쓸데 없이 하루가 다 가긴 했지만요 ㅜ.ㅜ