2017-03-13 4 views
5

내 프로젝트에서 wkhtmltopdf를 사용하고 있습니다. https://www.dropbox.com/s/ml9cp2pa6d8wja5/Zaznaczenie_100.png?dl=0wkhtmltopdf - 동일한 구성의 다른 출력

하지만 난 PDF는 매우 다른 찾고 서버에 프로젝트를 배포 할 때, 뷰포트의 아마 폭은 다르다 : 내 로컬 컴퓨터에서 출력은 정확 https://www.dropbox.com/s/8g0c29bzaxltyb9/170311_123139_4775.jpg?dl=0

두 시스템 모두 정확히 사용 pdf를 생성하기위한 동일한 구성.

내 질문은 :

  • 어떻게 특정 기계에 wkhtmltopdf의 기본 구성은 무엇 확인할 수 있습니까?
  • 뷰포트 크기를 어떻게 변경하여 출력물이 다른 기계에서 정확히 같을 수 있습니까?

수동으로 출력 페이지의 너비와 높이를 설정합니다 (각각 21cm와 50cm). DPI 매개 변수와 다른 조합을 시도했지만 효과가없는 것 같습니다.

wkhtmltpdf PHP 래퍼 (snappy)를 사용하고 있는데 콘솔에서 동일한 출력을 얻었으므로 문제는 wkhtmltopdf과 관련되어 있습니다.

+0

DropBox 링크가 작동하지 않는 것 같습니다. 아마도 Stack Overflow의 imgur 호스팅에서 이미지를 호스팅 할 편집 상자를 통해 이미지를 다시 업로드해야합니다. –

+0

고마워요, 고쳐주세요! – Gacek

+0

wkhtmltopdf의 두 버전이 동일하다는 것을 확인할 수 있습니까? – Ruslan

답변

0

PDF 출력에서 ​​가장 많이 나타나는 주요 요소 중 하나는 글꼴입니다. wkhtmltopdf를 사용하려면 브라우저에서 필요로하는 것과 같은 방식으로 운영 체제에 글꼴을 설치해야합니다. 글꼴 간격 및 크기 조정의 차이가 페이지의 레이아웃에 영향을 줄 가능성이 있습니다. 먼저 소스 파일에서 사용하려고하는 글꼴을보고 서버에 설치해야합니다. 좋은 시작은 here 또는 서버 배포판의 저장소에서 Microsoft의 핵심 글꼴을 설치하는 것입니다. 당신은 구글의 웹 글꼴의 경우

@font-face { 
    font-family: 'Roboto'; 
    font-style: normal; 
    font-weight: 400; 
    src: local('Roboto'), local('Roboto-Regular'), url(https://fonts.gstatic.com/s/roboto/v15/CWB0XYA8bzo0kSThX0UTuA.woff2) format('woff2'); 
    unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2212, U+2215; 
} 

:

이 주변에 다른 방법은 서버에 설치하지 않고, URL에서 글꼴 링크 소스 파일 스타일 시트에 @font-face 지시를 사용하는 것입니다 대신 자신의 스타일 시트를 가져올 수 있습니다

<link href="https://fonts.googleapis.com/css?family=Roboto" rel="stylesheet" /> 

또 다른 일을 확인하는 것은 워크 스테이션과 서버에 wkhtmltopdf의 버전입니다. wkhtmltopdf --version을 실행하면 현재 설치된 버전을 알 수 있습니다. 서버에서 wkhtmltopdf의 오래된 버전을 실행하는 경우 일 수 있습니다. 필요한 기능을 갖춘 wkhtmltopdf의 최신 버전을 설치하는 가장 쉬운 방법은 here입니다. 배포판에 정적으로 링크 된 Linux 바이너리를 다운로드 할 수 있습니다. 다른 --margin-top, --margin-right, --margin-bottom--margin-left 인수를 사용하고 시도

마지막으로 한가지. 더 나은 결과를 제공하는 데 도움이되는 --viewport-size 플래그가 있습니다. 당신은 이미 모두 동일한 구성을 사용하는 명시된

워크 스테이션 및 서버 모두에서 wkhtmltopdf의 동일한 버전을 사용하는 경우
wkhtmltopdf --viewport-size 1024x768 page.html output.pdf 

그러나이 구성 옵션은, 변화를해서는 안된다.

+0

글꼴 문제가 없습니다. 나는 --viewport-size 플래그를 시도했지만 죽은 것처럼 보입니다 - 효과가 없습니다. 두 머신에서 여백이 동일하게 설정됩니다. – Gacek

+0

@Gacek 서버 및 워크 스테이션에 어떤 버전의 wkhtmltopdf가 있습니까? 그리고 어디에서 설치 했습니까? –

0

Candy Gumdrop을 백업하기 위해 우리는 여백을 시도했지만 관리자 답은 32 비트 복사본 인 wkhtmltopdf를 프로덕션 서버에서 재사용했습니다. 사용 된 64 비트 버전이 아닙니다. "wkhtmltopdf --version"의 전체 결과는 버전 번호뿐만 아니라 일치해야합니다.