wkhtmltopdf: ไม่สามารถเชื่อมต่อกับเซิร์ฟเวอร์ X


113

ฉันใช้wkthmltopdfเพื่อแปลงเอกสาร html เป็น pdf ได้ทันทีบนเว็บเซิร์ฟเวอร์ linux ของฉัน โปรแกรมที่จำเป็นเดิม X11 หรือเซิร์ฟเวอร์ X คล้ายกับการทำงานอย่างถูกต้อง แต่ผ่านการร้องขอหลายโดยนักพัฒนาที่จะมีการทำงานนี้บนเซิร์ฟเวอร์โดยไม่ต้อง GUI ผมค่อนข้างมั่นใจว่ามันทำงานเซิร์ฟเวอร์เอ็กซ์เสมือนในรุ่นแบบคงที่ ฉันใช้โปรแกรมเวอร์ชันคงที่ (สแตนด์อะโลน) และใช้งานได้ดีมาก! ฉันจะวางไฟล์ปฏิบัติการไว้ในโฟลเดอร์และเรียกใช้:

./wkhtmltopdf file1.html file2.pdf

อย่างไรก็ตามฉันต้องการติดตั้งโปรแกรมนี้ทั้งระบบ ผมใช้apt-get install wkhtmltopdf(เพิ่งติดตั้งเมื่อวานนี้) และตั้งแต่ฉันกำลังทำงานบนระบบ 64 apt-get install ia32-libsบิตผมยังจำเป็น หลังจากการติดตั้งฉันสามารถค้นหาเวอร์ชันดังนี้:

wkhtmltopdf --version

เอาท์พุท:

Name:
  wkhtmltopdf 0.9.9

License:
  Copyright (C) 2008,2009 Wkhtmltopdf Authors.



  License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>.
  This is free software: you are free to change and redistribute it. There is NO
  WARRANTY, to the extent permitted by law.

Authors:
  Written by Jakob Truelsen. Patches by Mário Silva, Benoit Garret and Emmanuel
  Bouthenot.

ตอนนี้เมื่อฉันพยายามเรียกใช้โปรแกรมที่ติดตั้งด้วยความถนัดฉันได้รับข้อผิดพลาดต่อไปนี้:

wkhtmltopdf: cannot connect to X server

ไม่มีใครรู้ว่าฉันจะแก้ไขปัญหานี้ได้อย่างไร ฉันเดาว่าเวอร์ชันนี้ไม่มีเซิร์ฟเวอร์ X เสมือนหรืออะไรสักอย่าง

คำตอบ:


206

หรือลองใช้ (จากhttp://drupal.org/node/870058 )

  1. ดาวน์โหลด wkhtmltopdf หรือดีกว่าติดตั้งด้วยตัวจัดการแพ็คเกจ:

    sudo apt-get install wkhtmltopdf
    
  2. แตกไฟล์และย้ายไปที่ /usr/local/bin/

  3. เปลี่ยนชื่อเป็นเพื่อwkhtmltopdfให้ตอนนี้คุณมีไฟล์ปฏิบัติการที่/usr/local/bin/wkhtmltopdf
  4. ตั้งค่าการอนุญาต: sudo chmod a+x /usr/local/bin/wkhtmltopdf
  5. ติดตั้งแพ็คเกจการสนับสนุนที่จำเป็น

    sudo apt-get install openssl build-essential xorg libssl-dev
    
  6. ตรวจสอบว่าใช้งานได้หรือไม่: เรียกใช้

    /usr/local/bin/wkhtmltopdf http://www.google.com test.pdf
    

    ถ้าได้ผลแสดงว่าคุณทำเสร็จแล้ว หากคุณได้รับข้อผิดพลาด "ไม่สามารถเชื่อมต่อกับเซิร์ฟเวอร์ X" ให้ไปที่หมายเลข 7

  7. เราจำเป็นต้องเรียกใช้งานแบบไร้หัวบนเซิร์ฟเวอร์ x 'เสมือน' เราจะทำสิ่งนี้ด้วยแพ็คเกจชื่อ xvfb

    sudo apt-get install xvfb
    
  8. เราจำเป็นต้องเขียนเชลล์สคริปต์เล็กน้อยเพื่อห่อ wkhtmltopdf ใน xvfb สร้างไฟล์ที่เรียกwkhtmltopdf.shและเพิ่มสิ่งต่อไปนี้:

    xvfb-run -a -s "-screen 0 640x480x16" wkhtmltopdf "$@"
    
  9. ย้ายเชลล์สคริปต์นี้ไปที่/usr/local/binและตั้งค่าสิทธิ์:

    sudo chmod a+x /usr/local/bin/wkhtmltopdf.sh
    
  10. ตรวจสอบว่าใช้งานได้อีกครั้งหรือไม่: เรียกใช้

    /usr/local/bin/wkhtmltopdf.sh http://www.google.com test.pdf
    

โปรดทราบว่าhttp://www.google.comอาจทำให้เกิดข้อผิดพลาดเช่น "ResourceObject ที่เสร็จสมบูรณ์ได้รับสัญญาณการโหลดเสร็จแล้วนี่อาจเป็นข้อบ่งชี้ว่า iframe ใช้เวลาโหลดนาน" http://www.example.comคุณอาจต้องการที่จะทดสอบกับหน้าง่ายเช่น


1
ในตอนแรกฉันลองใช้บทช่วยสอนนั้นแล้วและมันก็ไม่ได้ผลเช่นกันฉันไม่ชอบที่จะต้องสร้างกระดาษห่อหุ้มด้วยลิงก์สัญลักษณ์ อย่างที่ฉันเขียนไว้ในคำตอบของฉันถ้าคุณเพียงแค่ย้ายไฟล์ปฏิบัติการแบบคงที่ไปยัง/usr/bin/ไดเร็กทอรีคุณสามารถใช้งานได้จากทุกที่ พวกเขาเพิ่ม x-server เสมือนลงในสแตติกที่สามารถเรียกใช้งานได้ดังนั้นจึงไม่จำเป็นต้องสร้างสคริปต์ wrapper
jeffery_the_wind

มันได้ผลสำหรับฉัน .. ในบางสถานการณ์ ฉันคิดว่าการติดตั้งไลบรารี 32 บิตที่หายไปแก้ไขให้ฉัน - ขอบคุณสำหรับเคล็ดลับนั้น
TimoSolo

คำสั่งในหมายเลข 6 If you get the error "Cannot connect to X server" then continue to number 6.ควรหมายถึงอะไร? ฉันสับสนกับเรื่องนี้มาก คุณหมายถึงพูดต่อไปยังหมายเลข 7 หรือไม่?
Noz

ใช่นั่นคือความหมาย ... บทความต้นฉบับมีหมายเลขรายการไม่ถูกต้อง ไปที่ # 7
dwaz

ขอบคุณเรียงลำดับใหม่ .. คำตอบที่แนะนำควรใช้ได้ในกรณีส่วนใหญ่ดังนั้นลองทำก่อน
TimoSolo

61

สิ่งนี้ช่วยแก้ปัญหาให้ฉันได้:

sudo apt-get install xvfb
xvfb-run --server-args="-screen 0, 1024x768x24" wkhtmltopdf file1.html file2.pdf

นี่เป็นวิธีที่ง่ายและปลอดภัยที่สุดเนื่องจากการติดตั้ง wkhtmltopdf มาตรฐานไม่รวม x-server
ปีเตอร์

นี่คือวิธีแก้ปัญหา "ไม่สามารถเชื่อมต่อกับเซิร์ฟเวอร์ X" ในกรณีส่วนใหญ่
tripleee

2
บน Redhat ที่ใช้ distros ใช้sudo yum install xorg-x11-server-Xvfbresp sudo dnf install xorg-x11-server-Xvfb.
ทีเอ็นที

28

ฉันพยายามทำsudo apt-get install wkhtmltopdfแต่ไม่ประสบความสำเร็จใด ๆ แต่ฉันแนะนำให้คุณลอง:

  1. ดาวน์โหลดไฟล์ปฏิบัติการล่าสุด (.11 rc1):

    wget https://wkhtmltopdf.googlecode.com/files/wkhtmltopdf-0.11.0_rc1-static-i386.tar.bz2

  2. คลายการบีบอัด:

    tar -vxf wkhtmltopdf-0.11.0_rc1-static-i386.tar.bz2

  3. เปลี่ยนชื่อ:

    mv wkhtmltopdf-i386 wkhtmltopdf

  4. chmod เป็นปฏิบัติการ:

    chmod a+x wkhtmltopdf

  5. วางลงใน / usr / bin:

    sudo mv wkhtmltopdf /usr/bin


code.google.com/p/wkhtmltopdf/issues/detail?id=730ดูเหมือนว่า vs 11.0_rc1 มีปัญหาบางอย่าง
montrealmike

สิ่งนี้ใช้ได้กับฉัน แต่การสร้าง pdf ล้มเหลวดังนั้นฉันจึงแทนที่คำแนะนำข้างต้นด้วยhttps://wkhtmltopdf.googlecode.com/files/wkhtmltopdf-0.9.9-static-i386.tar.bz2
martincarlin87

1
ดาวน์โหลด wkhtmltox-linux-amd64_0.12.0-03c001d.tar.xz ใช้งานได้สำหรับฉันตอนนี้ ด้วยเหตุผลบางประการล่าสุดไม่
chasetheskyforever

1
ฉันสามารถยืนยันได้ว่าสิ่งนี้ใช้ได้กับฉัน: (รับ atm เวอร์ชันเสถียรล่าสุด) wget download.gna.org/wkhtmltopdf/0.12/0.12.3/… tar -vxf wkhtmltox-0.12.3_linux-generic-amd64.tar.xz chmod a + x wkhtmltox / bin / wkhtmltopdf sudo mv wkhtmltopdf / usr / local / bin / wkhtmltopdf
Magico

27

เพิ่งสร้างมันขึ้นมา:

1- ดาวน์โหลด wkhtmltopdf dependencies

# apt-get install wkhtmltopdf

2- ดาวน์โหลดจากแหล่งที่มา

# wget http://downloads.sourceforge.net/project/wkhtmltopdf/xxx.deb

# dpkg -i xxx.deb

3- ลอง

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

มันทำงานได้ดี

มันได้ผล!


ฉันต้องเรียกใช้apt-get install -fหลังจากติดตั้งแพคเกจเพื่อรับการอ้างอิง อย่างอื่นทำงานเหมือนมีเสน่ห์ ชอบวิธีนี้มากกับวิธีอื่น ๆ ที่อธิบายไว้
dmuir

2
ฉันเห็นด้วย. วิธีนี้ทำให้ฉันถึงรอบปัจจุบัน คำสั่ง dpkg -i สร้างข้อมูลที่คลุมเครือ แต่ไม่ว่ามันจะใช้งานได้ wget -q http://downloads.sourceforge.net/project/wkhtmltopdf/0.12.2.1/wkhtmltox-0.12.2.1_linux-trusty-amd64.debตามด้วยsudo dpkg --install wkhtmltox-0.12.2.1_linux-trusty-amd64.deb
Bill Butler

นี่ยังคงเป็นทางออกที่ดีกว่าสำหรับคำถามนี้
versvs

1
ฉันต้องเรียกใช้sudo mv wkhtmltopdf /usr/binจาก/usr/local/bin/ไดเร็กทอรี แต่มันใช้งานได้ดี! ฉันลองวิธีอื่น ๆ ในหน้านี้โดยไม่มีโชคก่อน ..
shaneparsons

สิ่งนี้ควรได้รับการโหวตสูงขึ้นเป็นโซลูชันล่าสุดและง่ายกว่าโดยไม่ต้องอาศัยแพ็คเกจอื่น (ซึ่งช่วยแก้ปัญหา 'ไม่สามารถเชื่อมต่อกับเซิร์ฟเวอร์ X' ได้ด้วย) และฉันมีปัญหากับพา ธ css สัมพัทธ์ไม่ถูกโหลดเมื่อใช้ xvfb
zynick

16

ฉันพบวิธีการแก้ไขปัญหานี้โดยไม่มีเซิร์ฟเวอร์ X ปลอม ในเวอร์ชันล่าสุดของ wkhtmltopdf ไม่จำเป็นต้องใช้เซิร์ฟเวอร์ X ในการทำงาน แต่ไม่มีในที่เก็บ linux อย่างเป็นทางการ

โซลูชันสำหรับ Ubuntu 14.04.4 LTS (trusty) i386

$ sudo apt-get install xfonts-75dpi
$ wget http://download.gna.org/wkhtmltopdf/0.12/0.12.2/wkhtmltox-0.12.2_linux-trusty-i386.deb
$ sudo dpkg -i wkhtmltox-0.12.2_linux-trusty-i386.deb
$ wkhtmltopdf http://www.google.com test.pdf

โซลูชันสำหรับ Ubuntu 14.04.4 LTS (trusty) amd64

$ sudo apt-get install xfonts-75dpi
$ wget http://download.gna.org/wkhtmltopdf/0.12/0.12.2/wkhtmltox-0.12.2_linux-trusty-amd64.deb
$ sudo dpkg -i wkhtmltox-0.12.2_linux-trusty-amd64.deb
$ wkhtmltopdf http://www.google.com test.pdf

ผู้ใช้felixhummelมีทางออกที่ดีมาก แต่พื้นที่เก็บข้อมูลที่มี utilite เปลี่ยนไป


ด้วยเหตุผลบางอย่างสิ่งนี้ใช้ได้ผลสำหรับฉันและเวอร์ชันที่ใหม่กว่า (0.13) ก็ไม่ได้ขอบคุณ!
talsibony

นี่เป็นวิธีแก้ปัญหาที่ใช้ได้ผลสำหรับฉันฉันได้ลองใช้วิธีแก้ปัญหาอื่น ๆ มากมาย แต่ก็ไม่ได้ผล เนื่องจากฉันยังใหม่กับสภาพแวดล้อม php / Laravel ดังนั้นฉันจึงไม่มีความรู้อย่างลึกซึ้งเกี่ยวกับไลบรารีและการอ้างอิงเหล่านี้ แต่โซลูชันนี้ยอดเยี่ยมเพียงแค่ช่วยประหยัดเวลาของฉัน :)
Amit

วันนี้วิธีแก้ปัญหานี้ยอดเยี่ยมจริงๆฉันย้ายไปที่การผลิตและได้รับปัญหาเดียวกันโดยไม่ต้องเสียเวลาใด ๆ ฉันแค่เรียกใช้โซลูชันเหล่านี้และทำงานได้อย่างราบรื่น :)
Amit

gna.org ปิดตัวลงแล้ว :(
Jya

11

ขยายคำตอบของทิโมธี ...

หากคุณเป็นนักพัฒนาเว็บที่ต้องการใช้ wkhtmltopdf เป็นส่วนหนึ่งของเว็บแอปของคุณคุณสามารถติดตั้งลงใน/usr/bin/โฟลเดอร์ของคุณได้ดังนี้:

cd /usr/bin/
curl -C - -O http://wkhtmltopdf.googlecode.com/files/wkhtmltopdf-0.11.0_rc1-static-i386.tar.bz2
tar -xvjf wkhtmltopdf-0.11.0_rc1-static-i386.tar.bz2
mv wkhtmltopdf-i386 wkhtmltopdf

wkhtmltopdfตอนนี้คุณสามารถทำงานได้ทุกที่ใช้

ฉันใช้ไลบรารีSnappyเป็นการส่วนตัวใน PHP นี่คือตัวอย่างของความง่ายในการสร้าง PDF:

<?php

// Create new PDF
$pdf = new \Knp\Snappy\Pdf('wkhtmltopdf');

// Set output header
header('Content-Type: application/pdf');

// Generate PDF from HTML
echo $pdf->getOutputFromHtml('<h1>Title</h1><p>Your content goes here.</p>');

11

อัปเดตเป็น wkhtmltopdf เวอร์ชันล่าสุดจาก SourceForge (0.12 ณ การเขียนนี้) ไม่จำเป็นต้องใช้ X Server เพื่อทำงาน

ตัวอย่างสำหรับ Ubuntu 14.04:

$ cd /tmp/                                                                                                                                                                                                       
$ wget -q http://downloads.sourceforge.net/project/wkhtmltopdf/0.12.2.1/wkhtmltox-0.12.2.1_linux-trusty-amd64.deb
$ dpkg -x wkhtmltox-0.12.2.1_linux-trusty-amd64.deb foo

$ echo '<p>hi</p>' | ./foo/usr/local/bin/wkhtmltopdf - /tmp/hi.pdf
Loading pages (1/6)
Counting pages (2/6)                                               
Resolving links (4/6)                                                       
Loading headers and footers (5/6)                                           
Printing pages (6/6)
Done                                                                      

$ head -n3 /tmp/hi.pdf 
%PDF-1.4
1 0 obj
<<

1
ฉันได้ติดตั้ง 0.12.1 แล้วและยังแจ้งว่าไม่สามารถเชื่อมต่อกับเซิร์ฟเวอร์ X ได้ ฉันพลาดอะไรไปรึเปล่า?
Ales Maticic

ลองอีกครั้งและใช้งานได้สำหรับฉัน (ไม่ต้องติดตั้งเพียงเพื่อให้กล่องสะอาด) ดูแก้ไขด้านบน
felixhummel

9

สำหรับ 14.04.1-Ubuntu https://wkhtmltopdf.org/downloads.html

wget https://downloads.wkhtmltopdf.org/0.12/0.12.4/wkhtmltox-0.12.4_linux-generic-amd64.tar.xz -O mktemp.tar.xz
tar xf mktemp.tar.xz
sudo cp wkhtmltox/bin/wkhtmltopdf /usr/bin/wkhtmltopdf
sudo chmod +x /usr/bin/wkhtmltopdf
rm mktemp.tar.xz
rm wkhtmltox -rf
apt-get update
apt-get install -y libxrender1 libxtst6 libxi6
wkhtmltopdf http://www.google.com test.pdf

6
sudo -i
apt-get install wkhtmltopdf xvfb libicu48
mv /usr/bin/wkhtmltopdf /usr/bin/wkhtmltopdf-origin
touch /usr/bin/wkhtmltopdf && chmod +x /usr/bin/wkhtmltopdf && cat > /usr/bin/wkhtmltopdf << END
#!/bin/bash

/usr/bin/xvfb-run -a -s "-screen 0 1024x768x24" /usr/bin/wkhtmltopdf-origin  "\$@"
END

6

ปัญหาน่าจะเป็นในwkhtmltopdf เวอร์ชันเก่า - เวอร์ชัน 0.9 จากที่เก็บการแจกจ่ายจำเป็นต้องใช้เซิร์ฟเวอร์ X แต่เวอร์ชันปัจจุบัน - 0.12.2.1 ไม่ต้องการ - สามารถรัน headless ได้

ดาวน์โหลดแพ็คเกจสำหรับการแจกจ่ายของคุณจากhttp://wkhtmltopdf.org/downloads.htmlและติดตั้ง - สำหรับ Ubuntu:

sudo apt-get install xfonts-75dpi
sudo dpkg -i wkhtmltox-0.12.2.1_linux-trusty-amd64.deb

6

wkhtmltopdf> 0.11ไม่มีX-serverปัญหานี้
ดังนั้นการติดตั้ง0.12.2.1บนเซิร์ฟเวอร์ linux

  1. ตอนแรกติดตั้งเซิร์ฟเวอร์ xvfb:

    sudo apt-get install xvfb
    
  2. รับ wkhtmltopdf เวอร์ชันที่ต้องการจากhttp://wkhtmltopdf.org/downloads.html

  3. ติดตั้ง wkhtmltopdf:

    sudo dpkg -i wkhtmltox-0.12.2.1_linux-trusty-amd64.deb
    

    หรือติดตั้งด้วย wget

    URL='http://download.gna.org/wkhtmltopdf/0.12/0.12.2.1/wkhtmltox-0.12.2.1_linux-trusty-amd64.deb'; FILE=`mktemp`; wget "$URL" -qO $FILE && sudo dpkg -i $FILE; rm $FILE
    
  4. ติดตั้งการพึ่งพา (ถ้าจำเป็น):

    sudo apt-get -f install
    
  5. สร้างลิงค์ symblic ใน/usr/local/bin/:

    echo 'exec xvfb-run -a -s "-screen 0 640x480x16" wkhtmltopdf "$@"' | sudo tee /usr/local/bin/wkhtmltopdf.sh >/dev/null
    sudo chmod a+x /usr/local/bin/wkhtmltopdf.sh
    
  6. ตอนนี้ลองด้านล่างและควรใช้งานได้

    /usr/local/bin/wkhtmltopdf http://www.google.com test.pdf
    

5

ฉันเพิ่งรู้ว่าฉันสามารถย้ายไฟล์ปฏิบัติการแบบคงที่ไปยัง/usr/bin/ไดเร็กทอรีและเรียกใช้งานได้จากทุกที่



1

ผมไม่ทำตามคำแนะนำที่นี่และทำให้การทำงาน wkhtmltopdf สำหรับฉัน แต่ฉันต้องการที่จะนำเสนอบิตของมุมมองที่ผมค้นพบในขณะที่ทำเต้นรำเล็ก ๆ น้อย ๆ ของตัวเองกับ-wkhtmltopdfxvfb

นี่เป็นสิ่งสำคัญเนื่องจากเหตุผลเดียวกับที่ทำให้เกิดcannot connect to X serverข้อผิดพลาดที่น่าอับอายก็ทำให้รันด้วยข้อ จำกัด ที่เข้มงวดแม้ว่าคุณจะให้เซิร์ฟเวอร์ X ก็ตาม ข้อ จำกัด เหล่านี้รวมถึงไม่สามารถรับแหล่งข้อมูลเข้าหลายแหล่งตั้งค่าส่วนหัวและส่วนท้าย ฯลฯ (ตรวจสอบส่วนฟังก์ชันการทำงานที่ลดลงของคู่มือ )

wkhtmltoxโดยตัวมันเองไม่จำเป็นต้องใช้ X11 แต่มันใช้ประโยชน์จากไลบรารี QT ซึ่งทำ ในเวอร์ชันใหม่ ๆ ของนักพัฒนา wkthmltox ได้สร้างแพตช์สำหรับ QT ซึ่งอนุญาตให้รันด้วย X11

ปัจจุบันบางเวอร์ชันสร้างขึ้นจาก QT ที่ได้รับการแก้ไขและบางเวอร์ชันไม่ wkhtmltopds --versionคุณสามารถตรวจสอบรุ่นของคุณโดยใช้ ควรมีบรรทัดต่อท้ายว่าCompiled against wkhtmltopdf patched qt.

ดังนั้นสรุปได้ว่าหากคุณติดตั้งและใช้เวอร์ชันที่ใช้ไลบรารีที่ได้รับการแก้ไขแล้วควรทำงานบนเซิร์ฟเวอร์ linux ที่ไม่มีxvfbเซิร์ฟเวอร์ตามที่ฉันสามารถยืนยันได้


1

วิธีแก้ปัญหาสำหรับ Centos7 :

yum -y install xorg-x11-fonts-75dpi \
               xorg-x11-fonts-Type1 \
&& rpm -Uvh http://download.gna.org/wkhtmltopdf/0.12/0.12.2.1/wkhtmltox-0.12.2.1_linux-centos7-amd64.rpm

เราพบปัญหานี้ภายในคอนเทนเนอร์นักเทียบท่าและการติดตั้งข้างต้นมีwkhtmltopdfพร้อม QT ที่ได้รับการแก้ไขแล้ว


2
สำหรับฉัน URL ใช้งานไม่ได้ฉันใช้อันนี้:sudo rpm -Uvh https://github.com/wkhtmltopdf/wkhtmltopdf/releases/download/0.12.2.1/wkhtmltox-0.12.2.1_linux-centos7-amd64.rpm
WebOrCode

1

ให้ความสนใจ: ไฟล์ของคุณอาจเป็นwkhtmltopdf.shหรือwkhtmltopdfตรวจสอบในขั้นตอนที่สอง

คุณต้องคัดลอกลงในไดเร็กทอรี: / usr / local / binทำให้ sur สามารถเรียกใช้งานได้และเพิ่ม symlink ของwkhtmltopdf.shเช่น:

1- คำสั่ง:

sudo apt-get install wkhtmltopdf

2 - ใส่ไบนารีในไดเร็กทอรี/ usr / binเพื่อให้เบราว์เซอร์ไม่ได้รับอนุญาตให้ดำเนินการในไดเร็กทอรีนี้ คุณต้องคัดลอกwkhtmltopdf.sh ไปยังไดเร็กทอรี/ usr / local / binทำให้เบราว์เซอร์มีสิทธิ์ในไดเร็กทอรีนี้เช่น:

sudo cp /usr/bin/wkhtmltopdf.sh /usr/local/bin/wkhtmltopdf.sh

3 - หลังจากทำให้ไบนารีได้รับอนุญาตให้ดำเนินการเช่น:

sudo chmod a+x /usr/local/bin/wkhtmltopdf.sh

4 - ตอนนี้คุณสามารถทดสอบได้แล้วก็ใช้งานได้ดังนี้:

/usr/local/bin/wkhtmltopdf.sh http://www.google.com google.pdf

ทำให้ดาวน์โหลด pdf ในไดเร็กทอรีปัจจุบันในเทอร์มินัลของคุณ

5 - ไม่บังคับตอนนี้คุณสามารถเพิ่ม symlink ในไดเร็กทอรี/ usr / local / bin ของคุณเช่น

ln -s /usr/local/bin/wkhtmltopdf.sh /usr/local/bin/wkhtmltopdf

0
  1. ดาวน์โหลดไฟล์จากลิงค์นี้
  2. แตกไฟล์และย้ายไฟล์ปฏิบัติการ (/ wkhtmltox / bin / wkhtmltopdf) ไปที่ /usr/bin/
  3. เปลี่ยนชื่อเป็น wkhtmltopdf หากชื่อปัจจุบันไม่ใช่ wkhtmltopdf ตอนนี้คุณมีไฟล์ปฏิบัติการที่/usr/bin/wkhtmltopdf
  4. ตั้งค่าสิทธิ์: sudo chmod a + x / usr / bin / wkhtmltopdf
  5. ติดตั้งแพ็คเกจการสนับสนุนที่จำเป็น sudo apt-get install openssl build-essential xorg libssl-dev
  6. ตอนนี้ตรวจสอบด้วยwkhtmltopdf http://www.google.com test.pdf คำใบ้: ข้อมูลรายละเอียดจากลิงค์นี้


0

หากคุณกำหนดค่า wkhtmltopdf สำหรับ Rails หรือบางครั้งใน Centos คุณสามารถทำตามขั้นตอนต่อไปนี้:

  1. ไปที่https://wkhtmltopdf.org/downloads.htmlและคัดลอกลิงค์ของไฟล์ rpm

ในเซิร์ฟเวอร์ Centos bash

  1. wget link_of_wkhtmltopdf_rpm.rpm

  2. rpm -ivh link_of_wkhtmltopdf_rpm.rpm

  3. which wkhtmltopdf

=> คุณจะได้รับเส้นทางของ wkhtmltopdf

  1. ตั้งค่า wicked_pdf หรือ pdfkit ด้วยพา ธ ในขั้นตอนที่ 4 นี่คือตัวอย่างการกำหนดค่าด้วย wickedpdf config / initializers / wicked_pdf.rb

    if Rails.env != "production"
        path = %x[which wkhtmltopdf].gsub(/\n/, "")
    else
        path = "path_of_wkhtmltopdf_in_step_4"
    end
    WickedPdf.config = { exe_path: path }
    
  2. รีสตาร์ทเซิร์ฟเวอร์

DONE



0

เพียงแค่บอกแบ็กเอนด์ Qt ไม่ให้ใช้ X:

QT_QPA_PLATFORM=offscreen wkhtmltopdf <input> <outfile.pdf>
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.