2017-02-16 1 views
0

이것은 성공한 itext pdf 라이브러리가있는 java에서 pdf를 만드는 코드입니다. 내 문제는 지금 자바 코드에서 온로드 또는 둘 다 호출 할 때 html에서 자바 스크립트 코드를 추가 할 수 없다는 것입니다. 나는 예외가 없다. 내가 뭘 잘못하고 있는거야? 성취가 가능한거야? PDF 파일을 생성 할 때java itextpdf가 포함 된 pdf에서 자바 스크립트로드

public class App { 
    public static final String src = "new.pdf"; 
    public static final String HTML = "test.html"; 

    public static void main(String[] args) throws IOException, DocumentException { 


     Document document = new Document(); 
     PdfWriter writer = PdfWriter.getInstance(document, new FileOutputStream(src)); 
     // writer.addJavaScript("<script>alert('asdas')</script>"); 
     document.open(); 
     document.setJavaScript_onLoad("yourFunction()"); 
     XMLWorkerHelper.getInstance().parseXHtml(writer, document, new FileInputStream(HTML)); 
     document.close(); 
    } 

} 

<html> 
    <head> 
     <style>.col{padding:3px 20px 3px 20px}</style> 
     <script type="text/javascript"> 
      function yourFunction(){ 
       alert('You clicked the bottom text'); 
      } 
     </script> 
    </head> 
<body style="font-family:tahoma" onload="yourFunction()"> 
<div style="background:rgb(230,230,230); padding:5px ;border:1px solid black;"> 
    <b style="color:rgb(51,153,255)">Sample header</b> 
    <img style="float:right" height="25px" width="80px" src="resources/images/itext.png"/> 
</div> 
<br/> 
<table border='0' style='border-collapse: collapse;'> 
    <tr> 
     <td class="col">String 1</td> 
     <td class="col">: 1234354545</td> 
    </tr> 
    <tr> 
     <td class="col">String 32</td> 
     <td class="col">: rere</td> 
    </tr> 
    <tr> 
     <td class="col">String 3</td> 
     <td class="col">: ureuiu</td> 
    </tr> 
    <tr> 
     <td class="col">Date</td> 
     <td class="col">: dfdfjkdjk</td> 
    </tr> 
</table> 
<br/> 
<br/> 
<br/> 
<hr/> 
<br/> 
Contact us 
</body> 
</html> 

답변

1

XMLWorker는 자바 스크립트를 구문 분석 할 수 없습니다. XMLWorker는 사실 그것을 무시하므로 setJavaScript_onLoad()를 사용하여 호출하는 것은 HTML 파일에있는 함수에 관계없이 작동하지 않습니다. 여기서 달성하고자하는 것이 무엇인지 잘 모르겠지만 Java 기능을 사용하여 포함 된 자바 스크립트를 평가할 수 있습니다. iText 컨텍스트에서 스크립트를 실행할 수 없습니다.

PDF에 포함 된 자바 스크립트가 필요한 경우 iText를 사용하여 HTML 구문 분석 후 추가 할 수 있습니다. 이를 위해서는 Javascript를 별도로 가지고 제공된 API에 맞게 조정해야합니다. PDF 파일에서 수행 할 수있는 작업을 보려면 Javascript API를 확인해야합니다. 일반적으로 Javascript를 실행할 수있는 페이지, 양식 등에 "추가 작업"사전을 추가합니다. AA 사전을 구성하는 방법과 제공되는 트리거에 대한 PDF 사양을 확인할 수 있습니다. 그러나 다시 한번 HTML에 Javascript를 PDF로 넣을 수있을 것으로 기대하지 마십시오.

자바 스크립트에서 수행하려는 작업과 답변을 좀 더 구체적으로 처리하려고 할 때 좀 더 구체적이어야합니다.

+0

나는이 게시물을 보았고 나는 이전 버전의 http://javabeat.net/javascript-communication-between-html-and-pdf-in-itext/에서 가능하다고 생각했다. – xXxpRoGrAmmErxXx

+1

나는 당신의 질문을 약간 잘못 읽었다. 내 대답을 넓힐거야. –

관련 문제