क्रोम या क्रोमियम वाली कमांड लाइन से पीडीएफ के रूप में सेव करने के लिए कैसे प्रिंट करें


43

क्या मैं क्रोम या क्रोमियम के साथ कमांड लाइन से "पीडीएफ के रूप में सहेजें" को प्रिंट कर सकता हूं? मैं Chrome की अंतर्निहित कार्यक्षमता के साथ HTML फ़ाइलों को स्वचालित रूप से पीडीएफ में बदलने में सक्षम होना चाहता हूं।


@ गोलिमार यह एक आभासी प्रिंटर नहीं है। क्रोम में पीडीएफ निर्यात करने के लिए एक अंतर्निहित विकल्प है।
ipavlic

1
मुझे PDF के रूप में सहेजने के लिए कोई भी अंतर्निहित Chrome स्विच दिखाई नहीं देता है।
करण

@ करन जब आप Printवहां जाते हैं तो आपको Save to PDFचुनने के लिए एक गंतव्य स्थान उपलब्ध होना चाहिए । यह Google के सहायता पृष्ठ पर भी स्पष्ट रूप से कहा गया है: support.google.com/chrome/bin/…
ipavlic

2
शायद मेरी पिछली टिप्पणी स्पष्ट नहीं थी। आप यह जानना चाहते थे कि कमांड लाइन से यह कैसे करना है, और मैं जो कहना चाहता था वह यह था कि क्रोम / क्रोमियम को ऐसा करने के लिए कोई कमांड-लाइन स्विच / परम नहीं लगता, हालांकि मुझे पता है कि आप इसे यूआई से कर सकते हैं। आपको सेव ऑप्शन को ट्रिगर करने का कुछ तरीका खोजना होगा, शायद माउस क्लिक या कुंजी स्ट्रोक भेजकर।
करण

जवाबों:


11

पूरे वेब-ब्राउज़र को कॉल करने के बजाय, केवल काम करने के लिए HTML रेंडरिंग इंजन का उपयोग क्यों न करें? रूपांतरण करने के लिए wkhtmltopdf का उपयोग करें ।

wktohtml

आप मौजूदा वेबसाइट को पीडीएफ में भी बदल सकते हैं

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

नोट: तकनीकी रूप से Google Chrome का रेंडरिंग इंजन ब्लिंक है, जो वेबकिट का एक कांटा है। ब्लिंक और वेबकिट के बीच> 90% कॉमन कोड है, इसलिए आपको एक समान परिणाम प्राप्त करना चाहिए।


इस पर ध्यान देने की कोशिश करने और सूक्ष्म चीजों को गायब या टूटने से बचाने के लिए: wttmltopdf के स्रोत में QtWebkit पैच शामिल हैं जो क्लिक करने योग्य लिंक जैसी महत्वपूर्ण सुविधाओं को सक्षम करते हैं। यदि आपके वितरण के सामान्य qtwebkit पैकेज को एक निर्भरता के रूप में सूचीबद्ध किया गया है तो आपके वितरण के पैकेज में ऐसी सुविधाएँ गायब होने की संभावना है। स्रोत से wttmltopdf स्थापित करने में डिस्क और कुछ घंटों का 3.7GiB लगता है।
एको

34
-1 यह जवाब सवाल के अनुरूप नहीं है, wttmltox एक बेहतरीन टूल है, लेकिन पीडीएफ में एक्सपोर्ट करने पर यह क्रोम या फायरफॉक्स पर काम नहीं करता है।
कार्लोस सी सोटो

@ नहीं मुझे यकीन है कि समझ में नहीं आया। स्रोत से wkhtmltopdf बनाने से मुझे क्या उम्मीद है?
VH-NZZ

2
आप इसकी सिफारिश नहीं कर सकते हैं, यदि आपके पास परिष्कृत सीएसएस wkhtmltopdf बेकार है।
मुशायस

2
एसवीजी का प्रतिपादन नहीं किया गया है।
मार्को सुल

38

क्रोम ने हेडलेस प्रोग्राम शुरू किया है ।

उसके साथ, हम एक पीडीएफ बना सकते हैं। उदाहरण के लिए विंडोज़ के लिए अपनी कमांडलाइन नेविगेट करें

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

फिर कमांड मारो:

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

यदि आपके पास Chrome का कोई मौजूदा उदाहरण है, तो विंडोज पर चलने पर कमांड काम नहीं करेगा। पहले सभी क्रोम प्रक्रियाओं को मारें, फिर यह काम करेगा। इस असुविधा के आसपास काम करने के लिए एक ध्वज हो सकता है।
जॉन लेडिग्रेन

1
Windows संस्करण 66.0.3359.139 (आधिकारिक निर्माण) (64-बिट) के लिए क्रोम के रूप में @JohnLeidegren (कम से कम), यह किसी भी क्रोम प्रक्रियाओं को मारे बिना काम करता है।
naitsirhc

2
ध्यान दें कि आप --user-data-dir="C:\Users\...\AppData\Local\Google\Chrome\User Dataअपने उपयोगकर्ता के Chrome प्रोफ़ाइल के अंतर्गत चलने के लिए उपयोग कर सकते हैं । यह उपयोगी है, उदाहरण के लिए, एक वेबसाइट से सामग्री के निर्यात के लिए, जिसमें सत्र कुकीज़ उपलब्ध होने के बाद से उपयोगकर्ताओं को लॉग इन करना पड़ता है।
naitsirhc

@naitsirhc FYI करें, मुझे पिपेट करने वाला कमांड लाइन के सामान का एक अच्छा विकल्प लगता है, अगर आप कुछ और विस्तृत करने की कोशिश कर रहे हैं। यह विभिन्न कार्यों को करने के लिए दूरस्थ क्रोमियम के लिए एक अच्छा एपीआई है, यह आपके लिए संस्करणों का भी प्रबंधन करता है। बहुत अच्छा।
जॉन लीडग्रेन

एसवीजी को गलत तरीके से प्रस्तुत किया जाता है
मार्को

17

आपको Google Chrome / Chromium 59 या बाद के संस्करण का उपयोग करना चाहिए & यह केवल मैक ओएस और लिनक्स उपयोगकर्ताओं के लिए उपलब्ध है।

* विंडोज उपयोगकर्ताओं को अभी भी संस्करण 60 तक कुछ समय तक इंतजार करना होगा *

आदेश:

$ 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/

संदर्भ: https://developers.google.com/web/updates/2017/04/headless-chrome

EDIT: Google Chrome / Chromium 60 को विंडोज़ उपयोगकर्ताओं के लिए रोल आउट कर दिया गया है।

सीएमडी में कमांड का उपयोग:

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

आपकी pdf फाइल का नामकरण file1.pdf में सेव हो जाएगा

"C: \ Program Files या (x86) \ Google \ Chrome \ Application \ 60.0.3112.113 (क्रोम-संस्करण) \ file1.pdf"


--disable-gpuसबसे हाल के संस्करणों में अब आवश्यक नहीं होना चाहिए।
रिंग Ø

यह wttmltopdf या weasyprint से बेहतर / सुसंगत आउटपुट बनाता है
ierdna

4

https://github.com/fraserxu/electron-pdf को इस उद्देश्य के लिए बिल्कुल तैयार किया गया था।

सीएलआई इस तरह दिखता है: $ electron-pdf http://fraserxu.me ~/Desktop/fraserxu.pdf


मैंने इसे स्थापित किया, यह बिना किसी आउटपुट के अनिश्चित काल तक लटका रहता है। मैंने electron-pdf http://fraserxu.me test.pdfमदद के रूप में सुझाव दिया था, लेकिन मैंने gooogle.com को भी आज़माया
मार्को


0

सफलतापूर्वक स्थानीय HTML फ़ाइलों के पीडीएफ में बैच रूपांतरण किया - दृष्टिकोण साझा करना।

HTML फ़ाइलों का एक बैच जिसमें आप कनवर्ट करना चाहते हैं फ़ोल्डर में नेविगेट करें ...

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"
)

नोट - फ़ाइल पथ में% f को नकारने से बचने के लिए फ़ॉरवर्ड स्लैश का उपयोग करना चाहिए।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.