2009-08-03 6 views
3

WebKit에서 인쇄 할 때 출력에 자동으로 수축 계수가 적용되는 것처럼 보입니다. WebKit 소스를 수정하지 않고 인쇄 할 때 축소 할 수 없게하는 방법이 있습니까?
Qt 4.6 트렁크를 사용하고 길이가 더 긴 setFixedLayout을 사용하여 WebKit을 속이지 않도록 트릭 할 수 있다고 생각하지만 아직 시도하지 않았습니다. 기본 WebKit을 사용하여이 작업을 수행 할 수있는 방법이 있습니까?Qt WebKit Printing Shrink Factor

EDIT : 크롬은 인쇄 레이아웃 높이를 확장하여이를 처리합니다.
http://src.chromium.org/viewvc/chrome/trunk/src/chrome/renderer/print_web_view_helper.cc?view=markup

답변

3

QT 4.5에서는 몇 달 전 문제가 발생했습니다. Qt 4.6에 관한 내용은 아닙니다.

범인은 줄 115와 126에서 src/3rdparty/webkit/WebCore/page/PrintContext.cpp입니다. 알다시피 축소 요인은 일정하지 않지만 사용 가능한 인쇄 영역에 내용이 가장 적합하도록 계산됩니다.

허용되는 축소 범위 (PrintingMinimumShrinkFactorPrintingMaximumShrinkFactor)를 제어하는 ​​두 상수를 모두 1으로 설정하면 문제가 해결됩니다. 당시에이 문제를 매우 철저히 분석 한 결과, Qt를 패치하는 것보다 나은 해결책을 찾지 못했습니다.

+0

103 행으로 변경된 변수의 이름을 나열하는 것이 좋습니다. do {및 109는 다음과 같습니다. printedPagesHeight + = currPageHeight; 변경할 값이 있다고 가정합니다. const float PrintingMinimumShrinkFactor = 1.25f; 및 const float PrintingMaximumShrinkFactor = 2.0f; 현재 각각 120 번과 126 번 라인에 있습니다. 메서드 이름 : \t void PrintContext :: begin (float width) .. –

+0

네, 맞습니다. 나는 그 대답의 일부를 분명히했습니다. – sebasgo