Wkhtmltopdf css không hoạt động

Bạn đã đặt báo cáo chưa. tham số url trong cài đặt của bạn? . //www. odoo. com/forum/aide-1/question/how-to-change-the-value-of-web-base-url-to-get-the-true-header-footer-css-82516

Rihène

- 22 tháng 1 năm 2019

Xóa bỏ

Chuyển đổi thành câu trả lời

Xin chào @Yenthe, cảm ơn rất nhiều vì câu trả lời. Có, tôi đã thêm nó nhưng tôi gặp lỗi này. Wkhtmltopdf a échoué [mã d'erreur. -số 8]. Tin nhắn. b''

Tôi đã thấy nhiều câu hỏi rất giống với câu hỏi này, vì vậy lúc đầu tôi đã do dự khi đăng nó. Nhưng không đề xuất nào giải quyết được sự cố của tôi và dường như tôi không thể tự mình tìm ra lỗi

Đối với một dự án tôi đã thực hiện cho một khách hàng, họ muốn có khả năng chuyển đổi báo giá cho khách hàng của họ [được tạo bằng biểu mẫu trực tuyến] thành PDF. Đủ đơn giản. Vì toàn bộ dự án bằng PHP, tôi đã sử dụng quy trình đơn giản sau

  1. Lưu báo giá dưới dạng tệp HTML tạm thời
  2. Sử dụng WkHTMLtoPDF để chuyển đổi tệp HTML thành PDF
  3. Xuất tệp PDF này
  4. Dọn dẹp [xóa các tệp tạm thời]

Điều này hoạt động cho đến khi họ thay đổi máy chủ. Máy chủ mới có tường lửa

Lúc đầu, bước chuyển đổi PDF đã trả về một trang tường lửa nói rằng máy chủ không thể thực hiện các kết nối ra bên ngoài. Để giải quyết vấn đề này, tôi đã cung cấp trực tiếp tệp HTML thay vì liên kết với nó [/var/www/mysite/temp/18382. html thay vì www. ví dụ. com/temp/18382. html]. Điều này đã chuyển đổi HTML, nhưng tường lửa đã ngăn tải CSS và hình ảnh

Tôi có thể khắc phục CSS bằng cách nhúng nó trực tiếp vào trang web thay vì liên kết với nó [sử dụng các thẻ ], nhưng điều này không hiệu quả đối với hình ảnh

Tôi đã thử sử dụng các liên kết tương đối trước. Tôi đã thay đổi thành . Điều này đã không làm việc

Tiếp theo, tôi đã thử nhưng cách này cũng không hiệu quả

Tôi đã đọc xung quanh và xem qua hướng dẫn sử dụng WkHTMLtoPDF và tôi đã thử một số đối số dòng lệnh khác nhau như --enable-local-file-access, --enable /var/www/mysite/temp/--images nhưng dường như không có gì khắc phục được

Đây là dòng thực tế trong tệp html tạm thời của tôi [tệp. ///C. /Users/Philippe/AppData/Local/Temp/1580919683. html]

...



...

Nó nên đã được
...



...

Khi tôi thay thế "href="http. //127. 0. 0. 1/myDBR/người dùng/kiểu người dùng. css?1349957489"" của "href="http. //127. 0. 0. 1/myDBR/người dùng/kiểu người dùng. css?1349957489"", nó hoạt động tốt
Để biết thông tin, phiên bản myDBR của tôi là 3. 6. 0 [bản dựng 1572]

Tôi nghĩ rằng lỗi trước đó đã "quay trở lại"

Cảm ơn

CSS tùy chỉnh được thêm vào không ảnh hưởng đến bất kỳ thứ gì trên pdf nhưng hoạt động tốt khi in. Đó là do CSS đi kèm với đường dẫn tương đối sẽ không hoạt động trong wkhtmltopdf. Không có cách nào trong bản in có thể bao gồm CSS với đường dẫn đầy đủ

Các bước tái sản xuất

Vấn đề thực sự của tôi là các ô của bảng bị ngắt giữa các trang trong khi in và tạo pdf. Để khắc phục sự cố này, tôi đã thêm tệp CSS tùy chỉnh từ quản trị viên [Bao gồm CSS] với các kiểu bên dưới

bảng, tr, td, th, tbody, thead, tfoot {
phá trang. tránh xa. quan trọng;
}

Nó hoạt động tốt khi in trang, nhưng điều tương tự không hoạt động khi tạo pdf bằng wkhtmltopdf. Nó chỉ đơn giản là không có tác dụng

nghị quyết đề xuất

CSS không ảnh hưởng đến wkhtmltopdf vì CSS đi kèm với đường dẫn tương đối không được hỗ trợ. Để làm cho nó hoạt động, CSS phải được chỉ định với đường dẫn đầy đủ. Vui lòng cung cấp một tùy chọn để bao gồm CSS với đường dẫn đầy đủ

Khi tôi truy cập http. // trang web của tôi. com/print/page-to-print, mọi thứ đều ổn [kiểu tùy chỉnh của tôi đang được sử dụng]. Tuy nhiên, khi tôi cố gắng in bản PDF của cùng một trang [http. // trang web của tôi. com/printpdf/page-to-print] tài liệu không được tạo kiểu hoặc sử dụng kiểu của mô-đun này thay vì css tùy chỉnh của tôi. Xem hình ảnh đính kèm để so sánh giữa bản in và bản pdf

Giả thiết. wkhtmltopdf sử dụng phiên bản in [http. // trang web của tôi. com/print/page-to-print] để hiển thị pdf
Sự mong đợi. PDF về cơ bản sẽ trông giống như phiên bản in

Chi tiết

Lý lịch

  • VPS của tôi được thiết lập bằng ngăn xếp Mercury
  • Tôi đã thử nghiệm điều này với Varnish bị vô hiệu hóa, bỏ qua vecni một cách rõ ràng và truy cập trang web trực tiếp thông qua Apache, đảm bảo bộ nhớ đệm được tắt cùng nhau, vô hiệu hóa tối ưu hóa css và js, và rất nhiều việc xóa bộ nhớ cache
  • Tôi đã ghi đè bản in. tpl. php bằng cách sao chép nó vào chủ đề của tôi bên cạnh mẫu trang
  • Tôi gọi rõ ràng tệp CSS của mình bên trong mẫu in []
  • Tôi đã xóa lệnh gọi đến tệp CSS mô-đun in, vì vậy css tùy chỉnh của tôi là tệp duy nhất được bao gồm

Các triệu chứng có thể xảy ra

  • Trong quá trình thử nghiệm, tôi cũng đã thử thêm css tùy chỉnh của mình thông qua giao diện người dùng quản trị viên in [admin/settings/print/common] và nhận được thông báo cảnh báo rằng tệp CSS của tôi không thể đọc được bởi máy chủ web [%t/css/mycss. css]. Điều này thật kỳ lạ vì các kiểu của tôi đang tải rõ ràng cho phiên bản in
  • Phiên bản PDF đã được hiển thị thành công trên một phiên bản. trong Chrome trên iMac phát triển của tôi. Tuy nhiên, không có trình duyệt nào khác [kể cả Chrome] trên bất kỳ máy tính nào khác mà PDF sử dụng đúng kiểu. Có lẽ có điều gì đó tôi đang thiếu ở phía khách hàng?

Đầu ra nhật ký

wkhtmltopdf. Đang tải trang [1/6] [> ] 0% [======> ] 10% [==========================

Chủ Đề