내 브라우저에 평면을 나타내는 SVG 파일이 있으며 특정 축척으로 출력물을 인쇄해야합니다. SVG 내용을 조작하기 위해 SVG.js를 사용하고 있지만 내 요구를 충족시키기 위해 올바른 뷰포트보기 상자 조합을 찾을 수 없습니다.저울로 인쇄하기위한 SVG
제가 아는 것은 SVG 소스 파일 크기입니다. x 및 y 좌표를 통해 평면에서 1cm와 일치하는 올바른 "화면 크기"를 찾기위한 거리를 픽셀 수로 계산했습니다.
인쇄의 경우 "특정 비늘"(예 : 1/50)을 존중해야합니다. 그래서 "화면 크기"와 SVG 파일 크기를 사용하여 실제 크기를 얻으려고했습니다. 그런 다음 전체 크기에 1/50 (0.02) 배율을 적용했습니다. 그런 다음 72dpi 해상도로 여러 픽셀을 추측하려고했습니다. 여기
내 코드입니다 :var svgNode = SVG(planNode);
var totalWidthCm = (svgNode.width().replace('px', '') * screenScale * printScaleVal);
var totalHeightCm = (svgNode.height().replace('px', '') * screenScale * printScaleVal);
var totalWidthPx = totalWidthCm * 0.393701 * 72;
var totalHeightPx = totalHeightCm * 0.393701 * 72;
svgNode.height(totalHeightPx + 'px');
svgNode.width(totalWidthPx + 'px');
svgNode.viewbox('0', '0', '1000', '600');
SVG 출력 상 :
<svg xmlns:cc="http://creativecommons.org/ns#" xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg" version="1.1" width="495.79113386880005px" height="387.87611496479997px"
preserveAspectRatio="xMinYMin slice" id="plan" xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:svgjs="http://svgjs.com/svgjs" viewBox="0 0 496 388">
.....
</svg>
사실은 내가 전체 또는 슬라이스를 표시 할 뷰포트 및 뷰 박스를 설정하는 방법을 모르겠입니다 A4 또는 A3 형식으로 인쇄하려면 SVG를 조정하십시오.
오 사랑하는 SVG 전문가, 내 병이 당신을 도달 할 것입니다 희망 : D
"화면의 X 픽셀이 인쇄 될 때 X 픽셀이 될 것이라는 사실에 의존 할 수 없습니다. 일부 표본을 인쇄해야합니다 스케일을 계산하기 위해 인쇄 된 SVG를 측정하십시오. 브라우저와 프린터 간에는 차이가있을 것입니다. "실제로 큰 문제입니다. 계획은 웹 응용 프로그램을 통해 클라이언트가 액세스 할 수 있지만 각 클라이언트는 자신의 프린터를 가지고 있습니다.지도를 인쇄해야하는 전문가가 많습니다. 그들이 규모로 인쇄하는 방법을 알고 싶다. – uncleBounty
앱에서 일종의 보정 과정이 필요할 수 있습니다. –