2011-06-08 3 views
-1

Lorsque j'ouvre un PDF sur le navigateur, je veux l'imprimer dans un div pas toute la page. Comment puis-je faire cela? Voici mon code source JSP:Imprimer un PDF dans un div

<%@ page language="java" import="com.search.ts.* 
           ,java.io.* 
           ,java.net.* 
           ,javax.xml.namespace.QName 
           ,javax.jws.* 
           ,javax.xml.ws.* " 
                contentType="text/html; charset=ISO-8859-1" 
    pageEncoding="ISO-8859-1"%> 
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> 
<html> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> 
<title>Ebook reader</title> 

<%@ page language="java" import="com.search.ts.CallSEI_CallSPort_Client,java.util.*,com.search.ts.Links,com.search.ts.LinksResponse" %> 

<link rel="stylesheet" type="text/css" href="style.css" /> 

</head> 
<body> 

      <div id="right_section"> 
       <div class="right_box"> 

<% 

     String filename= request.getParameter("err"); 
     //String filename =(String) request.getAttribute("linkbook"); 
     File file = new File("F:/fichiers/", filename+".pdf"); 

     response.setContentType(getServletContext().getMimeType(file.getName())); 
     response.setContentLength((int) file.length()); 
     response.setHeader("Content-Disposition", "inline; filename=\"" + file.getName() + "\""); 

     BufferedInputStream input = null; 
     BufferedOutputStream output = null; 

     try { 
      input = new BufferedInputStream(new FileInputStream(file)); 
      output = new BufferedOutputStream(response.getOutputStream()); 

      byte[] buffer = new byte[8192]; 
      int length; 
      while ((length = input.read(buffer)) > 0) { 
       output.write(buffer, 0, length); 
      } 
     } finally { 
      if (output != null) try { output.close(); } catch (IOException ignore) {} 
      if (input != null) try { input.close(); } catch (IOException ignore) {} 
     } 


     %> 


      </div> 
</div> 


</body> 
</html> 

Répondre

0

j'étais dans le sembler PRBm vous devez envoyer à partir de la 1ère page pdf un lien avec le nom du pdf (myfile.pdf), comme ceci:

<a href="pdfread.jsp?err=<%=filename %>"><%=bookName %> </a> 

à la page pdfread.jsp et dans cette page que mettre

<% 
    String filename= request.getParameter("err"); 
%> 
<embed src="${pageContext.request.contextPath}/pdfreader/<%=filename %>#toolbar=0&navpanes=0&scrollbar=0" width="500" height="375"> 
    </embed> 

et ce code, vous devez le mettre dans un servlet avec un do get

String filename= request.getParameter("err"); 
    //String filename =(String) request.getAttribute("linkbook"); 
    File file = new File("F:/fichiers/", filename+".pdf"); 

    response.setContentType(getServletContext().getMimeType(file.getName())); 
    response.setContentLength((int) file.length()); 
    response.setHeader("Content-Disposition", "inline; filename=\"" + file.getName() + "\""); 

    BufferedInputStream input = null; 
    BufferedOutputStream output = null; 

    try { 
     input = new BufferedInputStream(new FileInputStream(file)); 
     output = new BufferedOutputStream(response.getOutputStream()); 

     byte[] buffer = new byte[8192]; 
     int length; 
     while ((length = input.read(buffer)) > 0) { 
      output.write(buffer, 0, length); 
     } 
    } finally { 
     if (output != null) try { output.close(); } catch (IOException ignore) {} 
     if (input != null) try { input.close(); } catch (IOException ignore) {} 
    } 

voir ce lien pour le faire

How to use doGet in jsp with Servlet

0

il y a des options plus simples avec moins de code impliqué .... un coup d'oeil http://www.webdeveloper.com/forum/showthread.php?t=152923

+0

Pouvez-vous poster le code ici, juste au cas où le site lié tombe en panne dans le futur? Aussi, gardez le lien vers l'original. C'est une bonne idée de sauvegarder ces choses afin que si quelqu'un arrive deux ans plus tard et que la page liée soit partie, ils auront toujours la solution. –

+0

Vous devez copier la solution de travail de votre lien vers cette réponse (au moins le code), dans le cas où le lien est mort à l'avenir, afin que les gens puissent accéder à la solution via SO. –