Tùy chọn kích thước trang wkhtmltopdf

Một trong những trang web khách hàng của chúng tôi bán các báo cáo nghiên cứu trong đó tất cả nội dung được xây dựng và quản lý trong hệ thống quản lý nội dung eZ Publish. Các báo cáo này được cung cấp qua HTML thông qua một cổng trang web được kiểm soát. Họ muốn thêm tính năng tạo báo cáo PDF động (dựa trên nội dung trong CMS); . Trong những năm qua, chúng tôi đã có những trải nghiệm tốt với tiện ích mở rộng ParadoxPDF. Tuy nhiên, do thiếu hỗ trợ HTML5 + CSS3 và tải máy chủ tương đối cao, chúng tôi đã quyết định tìm kiếm một giải pháp thay thế. Chúng tôi nhận thấy rằng wkhtmltopdf thực hiện công việc tuyệt vời trong việc tạo các tệp PDF có kiểu dáng cao và chúng tôi có thể tích hợp nó một cách độc đáo với eZ Publish

Một trong những nhược điểm của ParadoxPDF là nó dựa trên đĩa bay của ứng dụng Java, chưa được cập nhật từ năm 2011. Nó chỉ hỗ trợ CSS2 và không hỗ trợ ngắt trang bằng cách sử dụng CSS chẳng hạn. wkhtmltopdf sử dụng , hỗ trợ HTML5 và CSS3 và được duy trì tích cực

Trang web của bạn có thể truy cập được cho người khuyết tật không?

Tùy chọn kích thước trang wkhtmltopdf

Nhận hướng dẫn dành cho người mới bắt đầu của chúng tôi về khả năng truy cập trang web

Tải xuống bản sao MIỄN PHÍ của bạn

Chúng tôi cũng đã chạy một số kiểm tra hiệu suất và nhận thấy rằng wkhtmltopdf có thể tạo tệp PDF nhanh gấp đôi so với ParadoxPDF

Dưới đây là một số mã ví dụ về cách sử dụng wkhtmltopdf để tạo tệp PDF trong eZ Publish. Nó bao gồm trang bìa, trang sau và mục lục

// Initialize the PDF using this library: https://github.com/mikehaertl/phpwkhtmltopdf
$pdf = new Pdf();

// specify wkhtmltopdf options; see: http://wkhtmltopdf.org/usage/wkhtmltopdf.txt

$options = array(
    'page-width'     => '216mm',
    'page-height'     => '279mm',
    'dpi'            => 96,
       'image-quality' => 100,
       //'margin-top'     => '16mm',
       'margin-right'   => '14mm',
    'margin-bottom'  => '25mm',
       'margin-left'    => '14mm',
       'header-spacing' => 15,
       'footer-spacing' => 5,
       'disable-smart-shrinking',
       'no-outline',
       'user-style-sheet' => 'extension/myextension/design/standard/stylesheets/pdf.css',
       'footer-html' => 'extension/myextension/design/standard/templates/pdf/footer.html',
       'header-html' => 'extension/myextension/design/standard/templates/pdf/header.html'
);

$pdf->setOptions( $options );

// uses eZ Template to build the cover and frontpage
$tpl = eZTemplate::factory();
$tpl->setVariable( 'object', $object );
$pdf->addPage( $tpl->fetch( 'design:pdf/cover.tpl' ) );
$pdf->addPage( $tpl->fetch( 'design:pdf/frontpage.tpl' ) );

// Adds a Table of Contents
$pdf->addToc(array('user-style-sheet' => 'extension/myextension/design/standard/stylesheets/pdf.css','xsl-style-sheet' => 'extension/myextension/design/standard/stylesheets/toc.xsl'));

// Fill the body of the PDF
$pdf->addPage( $tpl->fetch( 'design:pdf/main_body.tpl' ) );

// Adds the backpage
$pdf->addPage( $tpl->fetch( 'design:pdf/backpage.tpl' ) );

// Downloads the PDF
$pdf->send( $node->attribute('name') . '_Report.pdf');

tiêu đề. html


    




            
            
    
    
            
                    
                            SOME NAME HERE {pdf_name}
         
                    {pdf_date}
            
    

cuối trang. html


    




        
        
        
    

    
    
                    © Copyright MySite. All rights reserved. 
            
            
    

Để giúp các nhà phát triển eZ Publish khác bắt đầu với wkhtmltopdf, chúng tôi đã tạo một tiện ích mở rộng rất đơn giản, mugo_wkhtmltopdf, để minh họa quá trình tích hợp ban đầu. Bạn có thể kiểm tra tệp nút. php và thấy rằng chúng ta đang sử dụng thư viện phpwkhtmltopdf. Thư viện đó bao gồm các ví dụ khác để chỉ ra cách tạo các tệp PDF phức tạp hơn

Để sử dụng wkhtmltopdf, bạn cũng cần cài đặt chính công cụ này. Trong tệp readme của tiện ích mở rộng mẫu, chúng tôi giải thích cách cài đặt tiện ích đó trên CentOS. Ngoài ra còn có tài liệu công khai về cách cài đặt wkhtmltopdf trên Ubuntu; .  

Một giải pháp thay thế để tạo tệp PDF từ CMS của bạn là sử dụng dịch vụ của bên thứ ba -- bạn sẽ tương tác với API, gửi HTML và nhận lại tệp PDF. Điều này đáng để xem xét nếu bạn không có yêu cầu (chẳng hạn như quyền riêng tư) để tự lưu trữ mọi thứ

Thuật toán ngắt trang hiện tại của WebKit còn nhiều điều mong muốn. Về cơ bản, WebKit sẽ hiển thị mọi thứ thành một trang dài, sau đó cắt nó thành các trang. Điều này có nghĩa là nếu bạn có hai cột văn bản trong đó một cột được dịch chuyển theo chiều dọc nửa dòng. Sau đó, WebKit sẽ cắt một dòng thành nhiều phần hiển thị nửa trên trên một trang. Và nửa dưới trên một trang khác. Nó cũng sẽ phá vỡ hình ảnh trong hai và như vậy. Nếu bạn đang sử dụng phiên bản QT đã vá, bạn có thể sử dụng thuộc tính CSS page-break-inside để khắc phục phần nào điều này. Không có giải pháp dễ dàng nào cho vấn đề này, cho đến khi vấn đề này được giải quyết, hãy thử tổ chức các tài liệu HTML của bạn sao cho nó chứa nhiều dòng trên đó các trang có thể được cắt gọn gàng

Phiên bản mới nhất của Wkhtmltopdf là gì?

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

Việc sử dụng Wkhtmltopdf là gì?

Đó là gì? . Chúng chạy hoàn toàn "không đầu" và không yêu cầu dịch vụ hiển thị hoặc hiển thị. to render HTML into PDF and various image formats using the Qt WebKit rendering engine. These run entirely "headless" and do not require a display or display service.

Gói Wkhtmltopdf là gì?

wkhtmltopdf là công cụ dòng lệnh nguồn mở (LGPLv3) để kết xuất HTML thành PDF bằng công cụ kết xuất Qt WebKit .

Wkhtmltopdf Linux là gì?

Wkhtmltopdf là tiện ích shell dòng lệnh mã nguồn mở đơn giản và hiệu quả cao cho phép người dùng chuyển đổi bất kỳ HTML (Trang web) nhất định nào thành tài liệu PDF hoặc hình ảnh (jpg, png . .