2012-06-15 2 views
0

Play 1.2.3을 사용하여 웹 응용 프로그램을 작성했습니다. 이 기능 중 하나는 렌더링 된 HTML 페이지를 PDF으로 내보내는 것입니다. 이미 서버에서 보낸 매개 변수를 기반으로 동적으로 렌더링 된 HTML 템플릿이 있습니다.
렌더링 된 HTML을 PDF로 변환하려면 wkhtmltopdf을 사용할 계획입니다. 이 목적으로 모든 템플릿 태그를 대체하여 프레임 워크가 처리 한 최종 HTML을 가로 챌 수있는 방법이 있습니까? 아니면 이것을 달성하는 더 좋은 방법이 있습니까?렌더링 된 가로 채기

답변

2

는 이미위한 모듈이있다 : http://www.playframework.org/modules/pdf

당신은 문자열로 렌더링 된 템플릿을 얻기 위해 템플릿을로드하는 방법을 Controller 클래스에보고 일부를 대체 할 수있는 스스로를하고 싶은 경우

protected static String renderTemplate(String templateName, Map<String,Object> args) { 
    try { 
     Template template = TemplateLoader.load(template(templateName)); 
     // Get the template into a String 
     return template.render(args); 
    } catch (TemplateNotFoundException ex) { 
     if (ex.isSourceAvailable()) { 
      throw ex; 
     } 
     StackTraceElement element = PlayException.getInterestingStrackTraceElement(ex); 
     if (element != null) { 
      throw new TemplateNotFoundException(templateName, Play.classes.getApplicationClass(element.getClassName()), element.getLineNumber()); 
     } else { 
      throw ex; 
     } 
    } 
+0

감사합니다. @Seb Play의 PDF 모듈을 사용해 보았는데 HTML 템플릿에서 PDF를 생성 할 수있었습니다. 그러나 제 HTML은 대량의 데이터로 인해 가로 및 세로 스크롤이 모두 발생합니다. 생성 된 PDF는 수직 스크롤을 처리하지만 수평 스크롤은 처리하지 않습니다. 예를 들어, HTML 테이블에서 오른쪽의 일부 열 (보이는 페이지 너머)이 잘립니다. 이것은 알려진 버그입니까? – Ananth

+0

pdf 렌더링을 사용하면 페이지 너비를 처리하고 이에 따라 테이블 크기를 설정해야합니다. 나는 이것이 수평 스크롤의 문제에 직면 한 적이 없어서 이것이 pdf 모듈에 의해 관리되는지 모른다. 당신은 이것에 대한 yahpconverter 사이트 (문서가 많지 않음)를보실 수 있습니다. –

+0

이전 의견에서 저의 문제를 제대로 표현하지 못했을 수 있습니다. 예를 들어, pageload에서 Javascript를 통해 렌더링 된 HTML을 동적으로 변경하면 PDF 모듈에서 해당 HTML을 사용할 수 없습니다. 권리? – Ananth