Bây giờ nó đã được cài đặt, bạn vẫn cần di chuyển các tệp wkhtmltopdf và wkhtmltoimage trong /usr/bin/ để làm cho Wkhtmltopdf hoạt động với Ubuntu và người dùng có thể truy cập được. Đầu tiên điều hướng đến đúng thư mục
Tất cả các bản tải xuống hiện được lưu trữ thông qua các bản phát hành GitHub, vì vậy bạn có thể duyệt tìm một bản tải xuống cụ thể hoặc sử dụng các liên kết bên dưới
Không sử dụng wkhtmltopdf với bất kỳ HTML không đáng tin cậy nào – hãy đảm bảo khử trùng mọi HTML/JS do người dùng cung cấp, nếu không, nó có thể dẫn đến việc chiếm đoạt hoàn toàn máy chủ mà nó đang chạy trên đó. Vui lòng đọc trạng thái dự án để biết chi tiết đẫm máu
Ổn định
Chuỗi ổn định hiện tại là 0. 12. 6, được phát hành vào ngày 11 tháng 6 năm 2020 – xem các thay đổi kể từ 0. 12. 5
Tất cả các gói trên được sản xuất tự động và được xây dựng trên bản phát hành bản vá phân phối/hệ điều hành mới nhất tại thời điểm phát hành
Lưu trữ
Xin lưu ý rằng các báo cáo lỗi sẽ không được chấp nhận đối với những điều sau đây, được coi là lỗi thời. Thay vào đó, bạn nên sử dụng bản phát hành ổn định mới nhất và báo cáo sự cố nếu có sự hồi quy từ bản phát hành trước đó
Nếu bạn cần các phiên bản cũ hơn
layers:
wkhtmltoxLayer:
name: wkhtmltox
description: wkhtmltox binaries for pdf/image generation
package:
artifact: wkhtmltox-x.xx.xxx.amazonlinux2_lambda.zip
functions:
PdfGenerator:
handler: generatePdf.handler
layers:
- { Ref: WkhtmltoxLayerLambdaLayer }
environment:
FONTCONFIG_PATH: /opt/fonts
0, bạn có thể xem các bản tải xuống lỗi thờiCâu hỏi thường gặp
Tại sao bạn có bản dựng tĩnh với Qt được vá?
Câu hỏi hay. Một số tính năng yêu cầu bạn sử dụng Qt đã vá vì những tính năng này chưa được cập nhật – vui lòng đọc trạng thái dự án để được giải thích dài hơn
Hầu hết các bản phân phối Linux [khá dễ hiểu] sẽ thích dự án này ngược dòng các bản vá và chọn biên dịch mà không có các tính năng đó. Điều này dẫn đến hành vi hoàn toàn khác – bạn có một công cụ web mới hơn, nhưng hành vi có thể thay đổi từ phân phối này sang phân phối khác
Tại sao không có bản dựng Linux “chung” [đã được cung cấp trước đó]?
Mặc dù các bản dựng là tĩnh, điều rất quan trọng là phải hiểu ý nghĩa của nó trong ngữ cảnh của Qt – trên đó wkhtmltopdf được xây dựng. Bản dựng tĩnh có nghĩa là chỉ Qt được liên kết theo cách này – các gói hệ thống còn lại vẫn cần được cài đặt. Trong một khoảng thời gian, các khu vực khác biệt chính giữa các bản phân phối đã được tìm thấy bằng cách thử và sai
- các phiên bản thư viện khác nhau. không phải mọi bản phân phối đều cung cấp các phiên bản giống nhau. Điều này đặc biệt đúng với trường hợp của
1 vàlayers: wkhtmltoxLayer: name: wkhtmltox description: wkhtmltox binaries for pdf/image generation package: artifact: wkhtmltox-x.xx.xxx.amazonlinux2_lambda.zip functions: PdfGenerator: handler: generatePdf.handler layers: - { Ref: WkhtmltoxLayerLambdaLayer } environment: FONTCONFIG_PATH: /opt/fonts
2, với rất nhiều bản phân phối lựa chọn giữa 1. 2, 1. 5 và 1. 6 cho phiên bản cũ và nhiều phiên bản củalayers: wkhtmltoxLayer: name: wkhtmltox description: wkhtmltox binaries for pdf/image generation package: artifact: wkhtmltox-x.xx.xxx.amazonlinux2_lambda.zip functions: PdfGenerator: handler: generatePdf.handler layers: - { Ref: WkhtmltoxLayerLambdaLayer } environment: FONTCONFIG_PATH: /opt/fonts
2 và/hoặc nhánh rẽ của nó làlayers: wkhtmltoxLayer: name: wkhtmltox description: wkhtmltox binaries for pdf/image generation package: artifact: wkhtmltox-x.xx.xxx.amazonlinux2_lambda.zip functions: PdfGenerator: handler: generatePdf.handler layers: - { Ref: WkhtmltoxLayerLambdaLayer } environment: FONTCONFIG_PATH: /opt/fonts
4. Mặc dù vấn đề này có thể được giải quyết dễ dàng bằng cách liên kết tĩnh chúng [và thực tế đã được thực hiện như vậy đối với các bản phát hành trước] – nó đã bị hỏng khi nói đến điểm tiếp theolayers: wkhtmltoxLayer: name: wkhtmltox description: wkhtmltox binaries for pdf/image generation package: artifact: wkhtmltox-x.xx.xxx.amazonlinux2_lambda.zip functions: PdfGenerator: handler: generatePdf.handler layers: - { Ref: WkhtmltoxLayerLambdaLayer } environment: FONTCONFIG_PATH: /opt/fonts
- các phiên bản OpenSSL khác nhau. do OpenSSL có thành tích xấu khi đó [bây giờ đã tốt hơn], các bản phân phối bắt đầu nâng cấp mạnh mẽ phiên bản OpenSSL của họ và vô hiệu hóa các phần không sử dụng của thư viện. Điều này dẫn đến tình huống không có khả năng tương thích ngược hiệu quả và mọi thứ bắt đầu bị hỏng một cách ngẫu nhiên – xem #3001 để đọc rất dài về các vấn đề gặp phải. Đây là động lực trực tiếp để tạo ra một kho lưu trữ bao bì riêng
- libc không tương thích. không phải mọi bản phân phối đều có cùng phiên bản glibc. Nếu bạn biên dịch bằng phiên bản mới hơn, nó sẽ không hoạt động trên bản phân phối sử dụng phiên bản cũ hơn. Điều này đã được khắc phục trước đó bằng cách sử dụng CentOS 6 [có phiên bản glibc đủ cũ]. Nhưng do sự nổi lên của Docker, hình ảnh
5 đã trở nên rất phổ biến. Điều này hoàn toàn không sử dụng glibc, nhưng musl libc. Vì vậy, các tệp nhị phân chung không bao giờ thực sự hoạt động trên Alpinelayers: wkhtmltoxLayer: name: wkhtmltox description: wkhtmltox binaries for pdf/image generation package: artifact: wkhtmltox-x.xx.xxx.amazonlinux2_lambda.zip functions: PdfGenerator: handler: generatePdf.handler layers: - { Ref: WkhtmltoxLayerLambdaLayer } environment: FONTCONFIG_PATH: /opt/fonts
Mặc dù Python cũng đã cố gắng thực hiện điều này bằng manylinux – nhưng không phải lúc nào nó cũng hoạt động tốt [e. g.
layers:
wkhtmltoxLayer:
name: wkhtmltox
description: wkhtmltox binaries for pdf/image generation
package:
artifact: wkhtmltox-x.xx.xxx.amazonlinux2_lambda.zip
functions:
PdfGenerator:
handler: generatePdf.handler
layers:
- { Ref: WkhtmltoxLayerLambdaLayer }
environment:
FONTCONFIG_PATH: /opt/fonts
5 không được khuyến nghị với bánh xe nhị phân nếu bạn tìm kiếm trên google] và yêu cầu bạn liên kết tĩnh mọi thứ. Điều này có thể phù hợp với họ, nhưng wkhtmltopdf cũng phụ thuộc vào cấu hình thời gian chạy trên các phông chữ thực được cài đặt [tôi. e. layers:
wkhtmltoxLayer:
name: wkhtmltox
description: wkhtmltox binaries for pdf/image generation
package:
artifact: wkhtmltox-x.xx.xxx.amazonlinux2_lambda.zip
functions:
PdfGenerator:
handler: generatePdf.handler
layers:
- { Ref: WkhtmltoxLayerLambdaLayer }
environment:
FONTCONFIG_PATH: /opt/fonts
7 và layers:
wkhtmltoxLayer:
name: wkhtmltox
description: wkhtmltox binaries for pdf/image generation
package:
artifact: wkhtmltox-x.xx.xxx.amazonlinux2_lambda.zip
functions:
PdfGenerator:
handler: generatePdf.handler
layers:
- { Ref: WkhtmltoxLayerLambdaLayer }
environment:
FONTCONFIG_PATH: /opt/fonts
0]. Không thể trừu tượng hóa mọi thứ và kiểm tra/sửa chữa mọi thứ cho mọi hệ điều hành/bản phân phối với nguồn tài nguyên hạn chế mà dự án này có – sẽ hợp lý hơn khi tạo ra các phiên bản dành riêng cho bản phân phối hầu như được đảm bảo hoạt động, vì chúng sử dụng các phiên bản cụ thể mà Tôi không thấy bản tải xuống thích hợp cho nền tảng của mình
Nếu bản phân phối bạn đang sử dụng được liệt kê
- nhưng không phải là bản phát hành bản vá cụ thể – hãy thử nó, vì nó rất có thể hoạt động bất kể
- bản phát hành chính không được liệt kê – chúng tôi chỉ hỗ trợ các phiên bản LTS, vì vậy hãy thử phiên bản LTS cũ hơn bản phát hành của bạn
- không thể cài đặt gói – bạn luôn có thể giải nén nó [google cho
1], nhưng bạn sẽ cần cài đặt các phần phụ thuộclayers: wkhtmltoxLayer: name: wkhtmltox description: wkhtmltox binaries for pdf/image generation package: artifact: wkhtmltox-x.xx.xxx.amazonlinux2_lambda.zip functions: PdfGenerator: handler: generatePdf.handler layers: - { Ref: WkhtmltoxLayerLambdaLayer } environment: FONTCONFIG_PATH: /opt/fonts
Đi đến kho lưu trữ bao bì và bắt đầu thảo luận nếu nền tảng của bạn không được liệt kê
Làm cách nào để sử dụng nó với các thiết lập FaaS?
Bạn sẽ cần giải nén gói dành riêng cho phân phối, đóng gói gói đó với các thư viện, cấu hình và/hoặc phông chữ cần thiết rồi tải lên. Xem câu hỏi StackOverflow này cho Google Cloud Function. PR được hoan nghênh mở rộng phần này, nếu bạn có thêm thông tin về điều này – đây không phải là thiết lập mà người bảo trì sử dụng 😄
Làm cách nào để sử dụng nó trong AWS Lambda?
Tất cả các tệp cần thiết cho lớp lambda được đóng gói trong một kho lưu trữ zip [Amazon Linux 2 / lambda zip]. Bạn có thể kiểm tra cục bộ bằng cách giải nén kho lưu trữ vào thư mục
layers:
wkhtmltoxLayer:
name: wkhtmltox
description: wkhtmltox binaries for pdf/image generation
package:
artifact: wkhtmltox-x.xx.xxx.amazonlinux2_lambda.zip
functions:
PdfGenerator:
handler: generatePdf.handler
layers:
- { Ref: WkhtmltoxLayerLambdaLayer }
environment:
FONTCONFIG_PATH: /opt/fonts
2 và chạy các lệnh tiếp theo$ docker run --rm -it -v$PWD/layer:/opt amazonlinux:2
bash-4.2# LD_LIBRARY_PATH=/opt/lib FONTCONFIG_PATH=/opt/fonts /opt/bin/wkhtmltopdf //google.com/ /opt/google.pdf
Sau đó, bạn có thể tìm thấy tệp pdf được tạo từ trang chủ google trong thư mục
layers:
wkhtmltoxLayer:
name: wkhtmltox
description: wkhtmltox binaries for pdf/image generation
package:
artifact: wkhtmltox-x.xx.xxx.amazonlinux2_lambda.zip
functions:
PdfGenerator:
handler: generatePdf.handler
layers:
- { Ref: WkhtmltoxLayerLambdaLayer }
environment:
FONTCONFIG_PATH: /opt/fonts
2 của mìnhĐể sử dụng
layers:
wkhtmltoxLayer:
name: wkhtmltox
description: wkhtmltox binaries for pdf/image generation
package:
artifact: wkhtmltox-x.xx.xxx.amazonlinux2_lambda.zip
functions:
PdfGenerator:
handler: generatePdf.handler
layers:
- { Ref: WkhtmltoxLayerLambdaLayer }
environment:
FONTCONFIG_PATH: /opt/fonts
4 trong hàm lambda của bạn, bạn có thể đặt nội dung của kho lưu trữ cùng với hàm lambda của bạn hoặc tạo một lớp. Đừng quên cung cấp biến môi trường cho layers:
wkhtmltoxLayer:
name: wkhtmltox
description: wkhtmltox binaries for pdf/image generation
package:
artifact: wkhtmltox-x.xx.xxx.amazonlinux2_lambda.zip
functions:
PdfGenerator:
handler: generatePdf.handler
layers:
- { Ref: WkhtmltoxLayerLambdaLayer }
environment:
FONTCONFIG_PATH: /opt/fonts
7 [_______06]Trong trường hợp bạn sử dụng Serverless framework, bạn có thể thêm các dòng tiếp theo vào tệp
layers:
wkhtmltoxLayer:
name: wkhtmltox
description: wkhtmltox binaries for pdf/image generation
package:
artifact: wkhtmltox-x.xx.xxx.amazonlinux2_lambda.zip
functions:
PdfGenerator:
handler: generatePdf.handler
layers:
- { Ref: WkhtmltoxLayerLambdaLayer }
environment:
FONTCONFIG_PATH: /opt/fonts
7 của mìnhlayers:
wkhtmltoxLayer:
name: wkhtmltox
description: wkhtmltox binaries for pdf/image generation
package:
artifact: wkhtmltox-x.xx.xxx.amazonlinux2_lambda.zip
functions:
PdfGenerator:
handler: generatePdf.handler
layers:
- { Ref: WkhtmltoxLayerLambdaLayer }
environment:
FONTCONFIG_PATH: /opt/fonts
Symantec báo cáo vi-rút layers:
wkhtmltoxLayer:
name: wkhtmltox
description: wkhtmltox binaries for pdf/image generation
package:
artifact: wkhtmltox-x.xx.xxx.amazonlinux2_lambda.zip
functions:
PdfGenerator:
handler: generatePdf.handler
layers:
- { Ref: WkhtmltoxLayerLambdaLayer }
environment:
FONTCONFIG_PATH: /opt/fonts
8 cho các bản dựng Windows
layers:
wkhtmltoxLayer:
name: wkhtmltox
description: wkhtmltox binaries for pdf/image generation
package:
artifact: wkhtmltox-x.xx.xxx.amazonlinux2_lambda.zip
functions:
PdfGenerator:
handler: generatePdf.handler
layers:
- { Ref: WkhtmltoxLayerLambdaLayer }
environment:
FONTCONFIG_PATH: /opt/fonts
Đây là báo cáo sai vì Symantec chưa từng thấy tệp này trước đây – hãy xem phần làm rõ này để biết chi tiết