2008-10-13 2 views
1

RFC 1942에 언급 된 표준 2- 패스 알고리즘이 있습니다. 그러나 실제로 구현 된 것을 본 적이 없습니다. http://www.ietf.org/rfc/rfc1942.txt. 누구든지 알고 있습니까? Mozilla 또는 WebKit 코드 기반에서 유용한 것을 찾지 못했지만, 어디에서 볼 것인지 잘 모르겠습니다.HTML 테이블을 이미지로 렌더링하는 데 적합한 알고리즘을 아는 사람이 있습니까?

실제로 이것은 HTML (표 셀의 내용)을 실제로 렌더링해야하지만 심플하게 유지하는 데있어 심오한 문제 일 수 있습니다. 평이한 HTML 테이블을 이미지로 유지하십시오. "이미지로"부분을 무시하는 HTML 테이블 렌더링 알고리즘조차도 ...

+0

알고리즘을 요청하면 사람들이 도구를 추천합니다. 나는 이것을 좋아하지 않는다. – Nils

답변

0

html 테이블 렌더링은 셀의 크기를 지정할 수있는 다양한 방법, 테이블 내에 중첩 된 테이블 등으로 인해 드문 것입니다. 당신이 원하는 모든 이미지 인 경우 몇 가지 소스를 얻으려면

는 간단한 해결책은 (기본적으로 IE의 COM 구성 요소입니다)의 .NET 브라우저 제어 및 화면 캡처 기능

일 것 조작해도 모질라 소스는 계속 사용할 수 있어야합니다.

+0

감사! 나는 조금 더 낮은 수준을 찾고 있는데 ... 이것은 C btw에있다. –

+0

@ [christopher Lang] : Mozilla 소스는 ​​C/C++로되어 있으며 원하는 내용을 가지고 있어야합니다. http://developer.mozilla.org/en/Download_Mozilla_Source_Code –

+1

스티븐, 감사합니다! 내가 찾은 코드를 통해 더 많은 검색을 한 후 - http://mxr.mozilla.org/mozilla-central/source/layout/tables/nsTablePainter.cpp 이것은 내가 원하는 것에 근접한 것입니다 ... 나는 갈 것입니다. 그것을 처음부터 다시 시도하고 코드베이스를 다시 참조하십시오. 다시 한 번 감사드립니다! –

0

이것이 제약 조건을 충족 시킬지 모르지만 y IE 또는 MSHTML IE 컨트롤과 IHTMLElementRender 인터페이스를 사용하여 테이블을 장치 컨텍스트로 렌더링 할 수 있습니다.

HtmlCapture ActiveX Control V2.0 (originally named HtmlSnap)

그들이 주장 일부 기능 : 상용 도구가 옵션 인 경우

+0

제안에 감사드립니다 - 불행히도이 솔루션은 크로스 플랫폼 (모바일!)이 될 것이므로 제 3 자 라이브러리없이 범용 알고리즘을 얻으려고합니다. 다시 한 번 감사드립니다! –

1

, 볼

  • SnapHtmlString()를 호출함으로써를, 당신은 걸릴 수 있습니다 html 문자열의 스냅 샷.
  • Microsoft IE 또는 Mozilla Firefox에서 렌더링 한 스냅 샷 이미지를 가져옵니다.
  • SnapUrl() 및 SaveImage()를 호출하면 웹 페이지의 스냅 샷을 BMP, JPG, JPEG, GIF, PNG, TIF, TGA 및 PCX와 같은 다양한 이미지로 가져올 수 있습니다.
  • HTML을 EMF 및 WMF와 같은 벡터 이미지 형식으로 변환하십시오.
  • 타사 종속성이없는 자체 포함 된 ActiveX 컨트롤입니다.
  • 결과 이미지의 사용자 정의 gdi 출력을 지원합니다.
  • 결과 이미지와 파일 모두를 메모리에 저장할 수 있습니다.
  • 풀 사이즈 웹 페이지와 미리보기 이미지를 모두 저장할 수 있습니다.
  • 전체 웹 페이지의 스냅 샷을 스크롤 막대없이 하나의 이미지로 가져옵니다.
  • 품질을 유지하기 위해 효율적인 알고리즘으로 그레이 스케일 또는 B & W 이미지를 만듭니다.
  • JPEG 압축 수준, TIFF 및 GIF의 압축 방법 선택을 지원합니다.
  • 가능한 한 이미지의 품질을 유지하면서 이미지의 색상 깊이를 설정할 수 있습니다.
  • 웹 페이지에 원하는대로 activeX, 이미지, Java 애플릿, 스크립트 및 비디오를 선택적으로 저장합니다.
  • 스냅 숏 요청에 사용자 지정 쿠키, http 헤더, 자격 증명을 보냅니다.
  • 프록시 서버를 통해 웹 페이지의 스냅 샷을 만듭니다.
  • VC, C-, Delphi, VB, C++ Builder, Java, JScript, Perl, VBScript, ASP, ASP.net 및 PHP로 작성된 30 개 이상의 샘플이 제공됩니다.
+0

고마워요! 이것은 도움이되고 가까운 것입니다. 비슷한 라이브러리를 찾았습니다. http://www.terrainformatica.com/htmlayout/main.whtm 유일한 문제는 외부 libs없이 낮은 수준에서이 작업을하고 싶습니다. 특히 상업적이지 않다. 그래도 감사합니다! –

+0

@ christopher-lang 좋은 찾기; HTMLayout이 재미있어합니다. – micahwittman

0

일반 HTML이 아닌 XHTML을 사용하는 경우 테이블의 구조에 대한 정보 (예 : colspan, rowspan 등)와 함께 해당 셀의 내용을 검색 할 수 있어야합니다.이 정보를 사용하여 다음을 사용하여 표를 렌더링 할 수 있습니다. 너의 자신의 국경, 패딩과 마진 값.

사용자 정의 치수를 렌더링하려는 경우 상황이 복잡해집니다. 그러나 테이블 데이터를 가져 와서 그릴 때 XML 파서를 사용할 수 있습니다. PHP의 파서는 여기에 있습니다 : 가깝게 http://ca3.php.net/xml

+0

감사합니다. 그러나 실제 테이블 정보를 얻는 것은 문제가 아닙니다. 실제로 정보가 수반하는 것에 대한 렌더링 작업을 수행하는 것입니다! 다시 제안에 감사드립니다! –

0

하나의 도구입니다 : (!하지만 무료) http://www.terrainformatica.com/htmlayout/main.whtm

이 라이브러리는, 이미지에 렌더링 된 HTML을 캡처 할 수있는 방법을 제공합니다, 그러나 그것은 오픈 소스가 아닙니다. 희망은 그것이 유용합니다!

불행히도 내 응용 프로그램은 MFC 또는 플랫폼 종속성 (악몽!)이없는 크로스 플랫폼, C/C++입니다. 테이블 렌더링을위한 범용 알고리즘을 찾고 싶습니다. 나는 RFC의 2-pass 옵션이 꽤 가까워 졌다고 생각한다. 내가 블로그에 올릴 수 있다면 여기에 내 최종 솔루션을 게시해야합니다!

0

CSS 스타일의 XML (XHTML 포함) 문서를 PDF로 렌더링하는 상업용 도구입니다. Prince XML을 살펴보십시오. 이 도구는 XHTML 및 CSS2.1과 같은 주요 W3C 표준을 준수합니다. 홈페이지에서 무료 데모 버전을 사용해보십시오!

이미지를 원할 때 : 생성 된 PDF를 프로그래밍 방식으로 이미지로 변환하는 것은 큰 문제가 아니어야합니다.

+0

감사합니다 Christoph! 이것은 흥미로운 도구로 보입니다 - HTML을 어떻게 캡처하고 있는지 궁금합니다 ... 흠. 불행히도 그것은 상업적입니다! 나는 이것을 처음부터 구현하고 싶습니다. 아니면 적어도 배울 수있는 오픈 소스 라이브러리를 사용하고 싶습니다. –

+0

이 스레드에서 유사한 작업을 수행하는 오픈 소스를 확인하십시오. - http://stackoverflow.com/questions/597348/foss-html-to-pdf-in-python-net-or-command-line/597355#597355 –

관련 문제