2017-12-27 125 views
7

Tôi có một ứng dụng được tạo bằng cách sử dụng Vuetify.sử dụng Vuetify, khi tôi cố gắng in một trang, nó chỉ hiển thị trang đầu tiên

Một trong các trang được sử dụng cho các đơn hàng và tôi muốn người dùng có thể in nó.

Vấn đề là nếu tôi đã di chuyển trong trang, chỉ có trang đầu tiên cho thấy có một thanh cuộn:

enter image description here

Làm thế nào tôi có thể làm cho nó hiển thị tất cả các trang khác để in?

CẬP NHẬT

Tôi có một lớp .scroll-y vào phần chính, nếu tôi sử dụng css này cho in:

@media print{ 
     body, 
     html { 
     height: 5000px !important; 
     } 

     .scroll-y { 
     height: 100% !important; 
     } 
    } 

nó hoạt động, nhưng rõ ràng là tôi không muốn có một chiều cao bộ 5000px cho mỗi bản in, Tôi có thể sử dụng js để tính toán chiều cao và đặt nó nhưng tôi tự hỏi nếu có một cách tốt hơn/dễ dàng hơn?

+0

bạn đang sử dụng một 'v-data-table'? Tôi giả sử thanh cuộn chỉ là một sự phản ánh của các dữ liệu có sẵn (như phân trang?). Nếu không, bạn phải điều chỉnh css của mình khi in để không cuộn, ví dụ: sử dụng các quy tắc '@media screen' và' @media print'. – nathanvda

+0

Tôi đang sử dụng 'v-data-table' nhưng không có phân trang và tôi cũng đang sử dụng' @media print' css, xem cập nhật của tôi – Tomer

+0

Tại sao bạn cần 'chiều cao' trên cơ thể? Sử dụng vị trí tuyệt đối? – nathanvda

Trả lời

2

Bạn phải thay đổi tràn và chiều cao của phần chính (cơ thể trên ví dụ của tôi):

@media print { 
    body { 
    overflow: auto; 
    height: auto; 
    } 
} 

Liên kết với các bản demo trên codepen: https://codepen.io/andersanmiguel/pen/NXyxPE?editors=0100 (bạn có thể xuất nó thành có)

2

Bạn phải thay đổi CSS, thêm một cái gì đó như thế này:

@media print { 
    body { 
    overflow: auto; 
    height: auto; 
    } 
    .scroll-y { 
    height: auto; 
    overflow: visible; 
    } 
} 

Vì vậy .scroll-y chiếm tất cả các không gian cần thiết, một d cơ thể sẽ phát triển lên đến kích thước in đúng. Tất nhiên bạn phải bổ sung thêm các yếu tố html cho ngắt trang in ấn, in bản xem trước của quan điểm của bạn về kích thước điển hình in (ví dụ A4) và thêm nơi cần một yếu tố chia tay in như

<div class="print-break-page"></div> 

với css:

.print-break-page { 
     page-break-after: always; 
} 
+0

Làm cách nào để biết nơi để thêm '

' nội dung động? – Tomer

+0

Tôi thực hiện xem trước bản in của trang web và dựa trên những gì tôi thấy, tôi chọn nơi đặt div này để phá vỡ nội dung. Ví dụ: nếu bạn có danh sách các phần tử và vào bản xem trước, bạn thấy phần tử thứ 21 kết hợp giữa trang và phần tử tiếp theo, sau đó trước phần tử thứ 21, hãy đặt div này. –

+0

ngay cả khi tôi có thể làm điều này, điều này rất khó vì dữ liệu động, tôi vẫn phụ thuộc vào kích thước màn hình, vì trên màn hình nhỏ hơn, tôi sẽ thấy ít phần tử hơn – Tomer

0

Nhờ @Ander và @ g.annunziata đã chỉ cho tôi đi đúng hướng, thiết lập chính thức mà làm việc cho tôi là:

body, 
    .scroll-y { 
    overflow: visible !important; 
    height: auto !important; 
    } 
Các vấn đề liên quan