게시판 즐겨찾기
편집
드래그 앤 드롭으로
즐겨찾기 아이콘 위치 수정이 가능합니다.
iframe를 이용한 pdf viewer 질문드립니다
게시물ID : programmer_16802짧은주소 복사하기
작성자 : podo91
추천 : 0
조회수 : 721회
댓글수 : 0개
등록시간 : 2016/04/19 21:48:26

현재 개발 pc내에서는 iframe를 이용한 pdf viewer기능이 잘되는데


원격으로 클라이언트pc에서 서버로 접속해서 pdf viewer를 볼때 화면이 pdf 로딩창에서 멈추고 불러오질않습니다.


로컬에서 돌릴때는 되는걸로봐서는 원격에서접속햇을때의 보안문제 때문에 iframe를 이용한 pdf viewer가 실행이안되는 것같은데 또, 윈도우 서버2008 환경에서 로컬로 돌릴때도 실행이안되는데..


어떻게해야할지 막막해서 질문드립니다 .. 소스상의 문제인지.. 보안이나 다른 설정의문제인지..




아래는 flex와 iframe를 이용한 예제를 바탕으로 제가 현재 작성한 소스입니다.



 



<script language="javascript">   
  
var pdfObject;



function loadIFrame(url){
    try{ 
     /*
      * Reason I do 'object' for IE is, it can handle multiple pdfs as objects and by creating it
      * as an object, we will get access to all of the Acrobat JS methods, which is very useful
      * I will try to show the power of AcroJS in my Part 3 and 4 of this tutorial
      */
     if (navigator.appName.indexOf ("Microsoft") !=-1)
     {
      document.getElementById("pdfFrame").innerHTML = "<object id='pdfIFrame' data='"+url+"' type='application/pdf' >  </object>"; 
     }
     else //for non IE browser (FF, Safari)
     {
      document.getElementById("pdfFrame").innerHTML = "<iframe id='pdfIFrame' name='pdfIFrame' src='"+url+"' frameborder='0'>  </iframe>"; 
     }
     pdfObject = document.getElementById("pdfIFrame");
    }
    catch(e)
     {
     alert("Error in loadIFrame \name:"+e.name+"\nmessage:"+e.message);
      }
}


function moveIFrame(x,y,w,h) {
    var frameRef=document.getElementById("pdfFrame");
    frameRef.style.left=x;
    frameRef.style.top=y;
    var iFrameRef=document.getElementById("pdfIFrame");   
    iFrameRef.width=w;
    iFrameRef.height=h;
}


// function hideIFrame(){
//     document.getElementById("pdfFrame").style.visibility="hidden";
// }
     
function showIFrame(){
    document.getElementById("pdfFrame").style.visibility="visible";
}


// /*
//  * If you want to hide the PDF in your Flex interface and still print it, on click of a button,
//  * This function will allow you to do that.
//  */
function printIFramePDF(srcUrl)
 { 
  try{
   if (navigator.appName.indexOf ("Microsoft") !=-1) //For IE (7)  
    {
      if(document.getElementById("pdfFrame").style.visibility == "visible")
        {pdfObject.print();}
        else
        {
         showIFrame();
         pdfObject.print();
         setTimeout("hideIFrame()", 800);
         }
    }
   else //for non-IE browser (FF)     
    {
     frames["pdfIFrame"].focus();
    frames["pdfIFrame"].print();
     }
     
   }
  catch(e){
   alert("Error in printIFramePDF:\n name = "+ e.name + "\n message = " + e.message);
  }
}
  
  
</script>  
<body>
<form name="frm" method="post" action="">
<table width="100%" height="100%" border="0" cellpadding="0" cellspacing="0" align="center">
 <tr>
  <td>
   <table width="100%" height="100%" cellpadding="0" cellspacing="0" border="0" align="center">
    <tr>
        <td align="center" valign="top" width="100%" height="100%" onClick="goPage()">
      <object id="sadf" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"
       codebase="http://fpdownload.macromedia.com/get/flashplayer/current/swflash.cab"
       width="100%" height="100%">
          <param name="movie" value="../swf/SamplePDFLoader.swf?gb=<%=gb%>"/>
          <param name="bgcolor" value="#869ca7" />     
       <param name="allowScriptAccess" value="sameDomain" />   
       <param name="wmode" value="opaque" />   
        </object>
     </td>
       </tr>
   </table> 
  </td>   
 </tr>
 
</table> 
</form> 
<div id="pdfFrame"  name="pdfFrame"  style="position:absolute; background-color:transparent; border:0px; visibility:hidden;" ></div>    
</body> 
</html>

전체 추천리스트 보기
새로운 댓글이 없습니다.
새로운 댓글 확인하기
글쓰기
◀뒤로가기
PC버전
맨위로▲
공지 운영 자료창고 청소년보호