2010-06-04 1 views
5

QWebFrame의 WebKit을 활용하여 HTML 페이지를 PDF로 변환하고 있습니다. 페이지가 QPrinter로 전송되기 전에 추가 렌더링 논리를 적용 할 수 있습니까?Qt에서 QWebFrame :: print()로 렌더링 레이어를 추가 할 수 있습니까?

내가 원하는 것은 HTML의 링크 및 양식 컨트롤을 벡터 그래픽 덤프 대신 PDF의 대화 형 도구로 변환 할 수 있다는 것입니다.

모든 안내에 감사드립니다.

답변

1

QWebFrame::renderTreeDump()QWebFrame::findAllElements() (Qt 4.6의 새로운 기능)을 사용하여 가능한 해결책을 찾았습니다.

"추가 렌더링 레이어를 제공하지는 않지만 원하는 작업을 수행합니다. findAllElements()을 호출하여 DOM 트리를 마킹하고 HTML 요소의 속성을 설정하여 원하는 모든 논리를 적용합니다.

폼 컨트롤을 내 렌더링 프로세스로 바꾸는 등 복잡한 작업을 수행하려면 DOM 트리와 렌더 트리를 모두 고르고 DOM 트리를 사용하여 QPrinter으로 전송되지 않도록해야합니다. 결국, 결과 PDF 파일을 긁어 내고 렌더링 트리와 DOM 트리에서 얻은 정보를 사용하여 컨트롤을 렌더링했습니다.

이 작업은 불필요하게 복잡합니다. 누구든지이 문제에 대한보다 우아한 해결책을 가지고 있습니까?

관련 문제