2011-03-14 4 views
1

HTML을 PDF로 변환하는 데 다음을 사용하고 있습니다.FlyingSaucer : 외부 CSS를 무시하고 HTML 문서를 PDF로 변환 하시겠습니까?

InputStream convert(InputStream fileInputStream) { 

     PipedInputStream inputStream = new PipedInputStream() 
     PipedOutputStream outputStream = new PipedOutputStream(inputStream) 
     new Thread({ 
      DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); 
      factory.setNamespaceAware(false); 
      DocumentBuilder builder = factory.newDocumentBuilder(); 
      Document document = builder.parse(fileInputStream) 

      ITextRenderer renderer = new ITextRenderer() 
      renderer.setDocument(document, "") 
      renderer.layout() 
      renderer.createPDF(outputStream) 
     }).start() 

     return inputStream 
    } 

설명서에서 분명히 어딘가에 "사용자 에이전트"확인자를 설정할 수 있어야하지만 정확히 어디 있는지 정확히 알 수는 없습니다. 누구든지 문서에서 외부 CSS를 무시하는 방법을 알고 있습니까?

답변

1

같은 질문이지만 하나에 대한 내 대답은 여기에서도 작동하지 : Resolving protected resources with Flying Saucer (ITextRenderer)

재정이 방법 :

public CSSResource getCSSResource(String uri) { 
    return new CSSResource(resolveAndOpenStream(uri)); 
} 

public CSSResource getCSSResource(String uri) { 
    return new CSSResource(new ByteArrayInputStream([] as byte[])); 
} 
+0

와 어떻게 해결하지? 내가 null을 retuning 해봤지만 nullpointerexception을 제공합니다. java.lang.NullPointerException이 org.xhtmlrenderer.context.StylesheetFactoryImpl.parse (StylesheetFactoryImpl.java:93)에서 \t –

+0

예, 당신은 빈의 InputStream와 CSSResource을 반환해야 업데이트한다. – Adam

관련 문제