Как я могу распечатать веб-страницу с нестандартными размерами? - PullRequest
0 голосов
/ 01 сентября 2018

У меня есть шаблон счета в формате HTML, и я хочу напечатать этот шаблон (ВСЕ СТРАНИЦА) с пользовательскими размерами, такими как 80 мм и 297 мм. Я попробовал этот код:

@media print {
    @page {
      size: 80mm 297mm;
      margin: 0;
    }
}

но это не работает. Как я могу распечатать страницу с нестандартными размерами?

Ответы [ 2 ]

0 голосов
/ 01 сентября 2018

CSS Solution

.printableArea {
    width: 8.5cm; // !important
    height:100%; // !important
}

@page {
    size: 8cm auto; // 
    width: 8cm; //
    height: 100%; //
    margin: 0;
    margin-left: 5px !important; // this is for me.
}
0 голосов
/ 01 сентября 2018

Вы можете использовать эту функцию JS, которая позволяет печатать ваш контент с заданным размером, вы можете вызвать эту функцию, вызвав событие

function print() {
    
    var yourDOCTYPE = "<!DOCTYPE html>"; 
    var printPreview = window.open('', 'print_preview');
    var printDocument = printPreview.document;
    printDocument.open();
    var head =
        "<head>" +
        "<style> .to-print{height:279mm; width:80mm; } </style>" +
        "</head>";
    printDocument.write(yourDOCTYPE +
            "<html>" +
            head +
            "<body>" +
             "<div class='to-print'>" +
             "<!-- your content to print can be put here or you can simply use document.getElementById('id-content-toprint')-->"+
             "</div>"+
            "</body>" +
            "</html>");
    printPreview.print();
    printPreview.close()

}

Вы можете обернуть всю страницу на div с id="main-page" и использовать document.getElementById('main-page') внутри <div class='to-print'></div>

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...