Chrome veya Chromium ile bir komut satırından PDF Olarak Kaydetmek İçin Nasıl Yazdırılır


43

Chrome veya Chromium ile bir komut satırından "PDF Olarak Kaydet" hedefine yazdırabilir miyim? Chrome'un yerleşik işlevselliği ile html dosyalarını otomatik olarak PDF'ye dönüştürebilmek istiyorum.


@golimar Sanal bir yazıcı değil. Chrome'un pdf'ye dışa aktarmak için yerleşik bir seçeneği vardır.
ipavlic

1
PDF olarak kaydetmek için herhangi bir yerleşik Chrome anahtarı göremiyorum.
Karan

@Karan Gittiğinizde , seçebileceğiniz uygun Printbir Save to PDFyer bulunmalıdır . Ayrıca Google’ın destek sayfasında da açıkça belirtilmiştir: support.google.com/chrome/bin/…
ipavlic

2
Belki de önceki yorumum net değildi. Bunu komut satırından nasıl yapacağınızı bilmek istediniz ve söylemek istediğim, Chrome / Chromium'un UI'den yapabileceğinizi bilmeme rağmen, bunu yapmak için komut satırı anahtarları / paramları olmadığı görünüyor. Belki de fare tıklamaları veya tuş vuruşları göndererek Farklı Kaydet seçeneğini tetiklemenin bir yolunu bulmanız gerekir.
Karan

Yanıtlar:


11

Tüm bir web tarayıcısını çağırmak yerine, neden sadece işi yapmak için HTML işleme motorunu kullanmıyorsunuz? Dönüşüm gerçekleştirmek için wkhtmltopdf kullanın .

wktohtml

Ayrıca mevcut bir web sitesini PDF'ye dönüştürebilirsiniz

$ wkhtmltopdf http://google.com google.pdf

Not: teknik olarak Google Chrome'un oluşturma motoru bir Webkit çatalı olan Blink'tir. Blink ve Webkit arasında ortak kodun%> 90'ı olduğundan, benzer bir sonuç almalısınız.


Bunu denemekten ve eksik veya kırılmış ince şeyleri almaktan not alın: wkhtmltopdf'ın kaynağı, tıklanabilir bağlantılar gibi önemli özellikleri sağlayan QtWebkit yamaları içerir. Dağıtımınızın olağan qtwebkit paketini bir bağımlılık olarak listeliyorsa, dağıtımınızın paketinde bu gibi özellikler bulunmuyor olabilir. Wkhtmltopdf dosyasını kaynaktan yüklemek 3.7GiB disk ve birkaç saat alıyor.
Anko

33
-1 Bu cevap soruya karşılık gelmiyor, wkhtmltox harika bir araçtır ancak PDF'ye dışa aktarırken krom veya firefox kadar iyi performans göstermez.
Carlos C Soto,

@Anko Anladığımdan emin değilim. Wkhtmltopdf dosyasını kaynaktan oluşturarak ne beklemeliyim?
VH-NZZ

2
sofistike CSS varsa wkhtmltopdf işe yaramazsa, bunu da tavsiye edemez.
MushyPeas

2
SVG'ler oluşturulmaz.
Marco Sulla

37

Chrome başsız bir program başlattı .

Bununla bir pdf oluşturabiliriz. örneğin, pencereler için komut satırınıza gidin

C:\Users\{{your_username}}\AppData\Local\Google\Chrome SxS\Application>

Sonra komuta bas:

chrome --headless --print-to-pdf="d:\\{{path and file name}}.pdf" https://google.com

Yalnızca bir sorun var, Windows'ta çalışan mevcut Chrome örneğiniz varsa, komut çalışmaz. Önce tüm Chrome işlemlerini öldür, sonra işe yarayacak. Bu rahatsızlıktan kurtulmak için bir bayrak olabilir.
John Leidegren

1
@JohnLeidegren (en azından) Windows için Chrome Versiyonu 66.0.3359.139 (Resmi Yapı) (64-bit), bu, herhangi bir Chrome işlemini öldürmeden çalışır.
naitsirhc

2
--user-data-dir="C:\Users\...\AppData\Local\Google\Chrome\User DataKullanıcınızın Chrome profilinde yayınlanmak için kullanabileceğinizi unutmayın . Bu, örneğin oturum çerezleri bulunduğundan, kullanıcıların oturum açmasını gerektiren bir web sitesinden içerik dışa aktarmak için kullanışlıdır.
naitsirhc

@naitsirhc FYI, daha ayrıntılı bir şeyler yapmaya çalışıyorsanız kuklacıyı komut satırı işlerine gerçekten iyi bir alternatif olarak buldum. Çeşitli görevleri yapmak için uzak kromtan hoş bir API'ye sahip, ayrıca sizin için sürümleri de yönetiyor. Çok hoş.
John Leidegren

SVG'ler hatalı bir şekilde görüntülendi
Marco Sulla

17

Google Chrome / Chromium 59 veya sonraki bir sürümünü kullanıyor olmalısınız & Yalnızca MAC OS ve Linux kullanıcıları için kullanılabilir.

* Windows kullanıcıları hala Sürüm 60’a kadar bir süre beklemek zorundalar. *

Komut:

$ google-chrome --headless --disable-gpu --print-to-pdf=file1.pdf http://www.example.com/

$ chromium-browser --headless --disable-gpu --print-to-pdf=file1.pdf http://www.example.com/

Referans: https://developers.google.com/web/updates/2017/04/headless-chrome

EDIT: Google Chrome / Chromium 60, Windows kullanıcıları için kullanıma sunuldu.

CMD'de komut kullanımı:

C:\Program Files\Google\Chrome\Application> chrome.exe --headless --disable-gpu --print-to-pdf=file1.pdf http://www.example.com/

Sizin pdf dosyası adlandırma file1.pdf içinde tasarruf olacak

"C: \ Program Files veya (x86) \ Google \ Chrome \ Uygulama \ 60.0.3112.113 (krom sürümü) \ file1.pdf"


--disable-gpuen son sürümlerde artık gerekli olmamalıdır.
Yüzük,

bu, wkhtmltopdf veya weasyprint'den çok daha iyi / tutarlı bir çıktı oluşturur
ierdna


0

Yerel html dosyalarının toplu olarak PDF'ye dönüştürülmesi başarıyla gerçekleştirildi.

Dönüştürmek istediğiniz toplu html dosyalarını içeren bir klasöre gidin ...

for %f in (*.html) do (
start /wait chrome --headless --disable-gpu --print-to-pdf="C:/[DESTINATION FOLDER PATH]%f.pdf" "C:/[SOURCE HTML FILE FOLDER PATH -- ALSO CURRENT FOLDER]%f"
)

Not - dosya yolunda% f değerini engellemek için eğik çizgi kullanmanız gerekir.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.