2017-03-13 30 views
5

Projemde çırpınarak wkhtmltopdf kullanıyorum. https://www.dropbox.com/s/ml9cp2pa6d8wja5/Zaznaczenie_100.png?dl=0wkhtmltopdf - aynı yapılandırma farklı çıktı

ama pdf çok farklı bakıyor sunucuya proje dağıtma, görüntü alanının muhtemelen genişliği farklıdır: benim yerel makinede çıktı doğru https://www.dropbox.com/s/8g0c29bzaxltyb9/170311_123139_4775.jpg?dl=0

Her iki sistem tam olarak kullanmak pdf'yi oluşturmak için aynı yapılandırma.

Sorularım şunlardır:

  • nasıl belirli makinede wkhtmltopdf varsayılan yapılandırması nedir kontrol edebilirim?
  • Vizör boyutunu nasıl değiştirebilirim, böylece çıktım farklı makinelerde tam olarak aynı olurdu?

Çıkış sayfasının genişliğini ve yüksekliğini manuel olarak ayarladım (sırasıyla 21 cm ve 50 cm). DPI parametresiyle farklı kombinasyonlar denedim, ancak hiçbir etkisi yok gibi görünüyor.

wkhtmltpdf PHP sarıcı - snappy kullanıyorum - ancak ben kontrol ettim ve konsola aynı çıkışı aldım, bu nedenle sorun wkhtmltopdf ile ilişkili değil, snappy.

+0

DropBox bağlantılarınızın çalışması işe yaramıyor. Belki de resimlerinizi Stack Overflow'un imgur hosting'inde barındıran düzenleme kutusundan yeniden yüklemelisiniz. –

+0

Teşekkürler, düzeltildi! – Gacek

+0

wkhtmltopdf'deki iki sürümün aynı olduğunu onaylayabilir misiniz? – Ruslan

cevap

0

PDF çıktılarınızda farklı görünen başlıca şeylerden biri yazı tipi yüzüdür. wkhtmltopdf, bir tarayıcının bunu gerektireceği şekilde işletim sisteminize yazı tiplerinin yüklenmesini gerektirir. Yazı tiplerinin boşluk ve boyut farklılıklarının sayfanızın düzenini etkilemesi olasıdır. Önce kaynak dosyanızda hangi fontları kullanmaya çalıştığınıza bakmalı ve bunları sunucunuza yüklemelisiniz. Microsoft'un temel yazı tiplerini here'dan veya sunucunuzun dağıtım havuzlarından yüklemek iyi bir başlangıçtır. Eğer Google'ın web yazı halinde

@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; 
} 

:

bu çevrede alternatif bir yolu sunucu üzerinde bunları yüklemeden, bir URL'den yazı bağlamak için kaynak dosyası stil içinde @font-face direktifleri kullanmaktır bunun yerine kendi stil alabilirsiniz:

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

başka şey kontrol etmek için iş istasyonu ve sunucu üzerindeki wkhtmltopdf sürümleri olduğunu. wkhtmltopdf --version'un çalıştırılması, şu anda yüklü olan sürümünü size söyleyecektir. Sunucunuzun wkhtmltopdf dosyasının eski bir sürümünü çalıştırması durumu olabilir. Wkhtmltopdf dosyasının güncel versiyonunu ihtiyacınız olan en kolay şekilde kurmanın en kolay yolu, herhangi bir dağıtım için statik olarak bağlantılı Linux ikili dosyalarını indirebileceğiniz here. Farklı --margin-top, --margin-right, --margin-bottom ve --margin-left argümanları kullandığını denemek için

Son bir şey. --viewport-size adında bir bayrak daha iyi sonuçlar vermesine yardımcı olabilir. zaten hem aynı yapılandırmayı kullanan belirtilen

Eğer iş istasyonu ve sunucu hem wkhtmltopdf aynı sürümünü kullanıyorsanız
wkhtmltopdf --viewport-size 1024x768 page.html output.pdf 

, ancak, bu yapılandırma seçenekleri, bir fark yaratmak olmamalıdır.

+0

Yazı tipleri sorun değil. --viewport boyutunda bayrağı denedim, ama ölü gibi görünüyor - etkisi yok. Kenar boşlukları her iki makinede de aynıdır – Gacek

+0

@Gacek Sunucu ve iş istasyonunuzda wkhtmltopdf'ın hangi sürümleri vardır? Ve onları nereden yükledin? –

0

Candy Gumdrop'ı yedeklemek için, kenar boşluklarını denedik, ancak cevabımız, kullandığım 64 bitlik bir sürümü değil, üretim sunucusunda wkhtmltopdf dosyasının 32 bitlik bir kopyasının yeniden kullanıldığını belirtti. "Wkhtmltopdf --version" sonuçlarının sadece sürüm numarasıyla değil eşleşmesi gerekir.