2014-12-12 4 views
1

У меня проблема с преобразованием HTML-файла в pdf, когда вы пытаетесь добавить нижний колонтитул, размер, отображаемый как PDF, не указан в css.wkhtmltopdf проблемы с размером нижнего колонтитула

Размер нижнего колонтитула должен быть ровно 155 мм, но если я скажу, что wkhtml2pdf имеет нижнюю границу 155 мм, нижний колонтитул начинается почти на половине страницы.

Я попытался с простым HTML-50мм с 5 полосами 10 мм каждого, и с переключателем -B 50мм У меня есть запас ниже фактической сноски 50 мм

команда, которую я бегу является: wkhtmltopdf.exe -B 150mm -L 0 -R 0 -T 0 --footer-html footer.html page.html page.pdf

иметь футер расставлены правильно, я должен использовать -B 119mm

Может кто-нибудь мне помочь или указать мне в правильном направлении? Я прочитал много сообщений о том, что, но не мог решить мою проблему, мне кажется, что установка окон действуют по-разному от Linux одного, но я не только установить его на окна хозяина, так что никаких проблем о Windows-единственное решение

страницы .html

<!doctype html> 

<html lang="fr"> 
<head> 
    <meta charset="utf-8"> 

    <title>Header</title> 

    <link rel="stylesheet" href="css/normalize.css?v=1.0"> 

    <!--[if lt IE 9]> 
    <script src="http://html5shiv.googlecode.com/svn/trunk/html5.js"></script> 
    <![endif]--> 
</head> 

<body> 
coucou 

</body> 
</html> 

footer.html

<!doctype html> 

<html lang="fr"> 
<head> 
    <meta charset="utf-8"> 

    <title>Footer</title> 

    <link rel="stylesheet" href="css/normalize.css?v=1.0" media="all"> 
    <link rel="stylesheet" href="css/footer.css?v=1.0" media="all"> 

    <!--[if lt IE 9]> 
    <script src="http://html5shiv.googlecode.com/svn/trunk/html5.js"></script> 
    <![endif]--> 
</head> 

<body> 

    <div id="bvr"> 

     <div class="bvr-cut"> 
      <div class="payment-recipient"> 
       blahblah 
      </div> 
      <div class="payment-account">01-88205-8</div> 
      <div class="payment-amount"> 
       <span class="val">3</span> 
       <span class="val">2 5</span> 
      </div> 
      <div class="payment-sender"> 
       blahblah 
      </div> 
     </div> 

     <div class="bvr-cut"> 
      <div class="payment-recipient"> 
       blahblah 
      </div> 
      <div class="payment-account">01-88205-8</div> 
      <div class="payment-amount"> 
       <span class="val">3</span> 
       <span class="val">2 5</span> 
      </div> 
      <div class="payment-sender"> 
       blahblah 
      </div> 
     </div> 
     <div class="bvr-code"> 
      <div class="col c12"> 
       blahblah  
      </div> 
     </div> 
    </div> 

</body> 
</html> 

footer.css

@charset "UTF-8"; 

#bvr { 
    -moz-box-sizing: content-box; 
    -webkit-box-sizing: content-box; 
    box-sizing: content-box; 
    background: #FC0; 
    font-family: "Helvetica-Neue", Helvetica, sans-serif; 
    height:155mm; 
    page-break-after: auto; 
    display: block; 
    clear: both; 
    border: 1px solid #000; 
} 

.bvr-cut { 
    float:left; 
    width: 230px; 
    background: #ccc; 
} 

.payment-recipient { 
    height: 72px; 
    position: relative; 
    background: #0cf; 
} 

.payment-account { 
    text-align: right; 
    font-weight: 600; 
    padding-right: 4.5em; 
    margin-bottom: .6em; 
    background: #12F; 
} 

.payment-amount { 
    background: #FCC; 
    text-align: right; 
    margin-bottom: .8em; 
} 

.payment-amount > span.val { 
    border: 1px solid #000; 
    padding-right: 2em; 
} 

.payment-sender { 
    position: relative; 
    background: #f0c; 
} 

.bvr-ref { 
    display: block; 
    background: #FF0; 
} 

.bvr-code { 
    background: #c0f; 
} 
+0

Я бы сказал, что было бы неплохо поднять вопрос на странице whtmltopdf github по этой проблеме, потому что могут быть некоторые известные проблемы. – Nenotlep

+0

Я постараюсь поднять вопрос на их странице, спасибо за совет – kitensei

ответ

0

После поиска, я обнаружил, что проблема не из wkhtmltopdf но обработанном вопрос размера в системах Windows.

Если я запускаю этот код в системах на основе unix, все работает отлично, но в окнах это не так. Фактически, размер шрифта (и любой другой размер: высота, ширина и т. Д.) В окнах должен быть масштабирован с коэффициентом 1.33, чтобы сделать то же самое, что и в unix.

Не удалось найти ссылку на английском языке, но здесь little explaination, который отлично подойдет для меня (поиск «1.33») на веб-странице.

В принципе, я создал два класса в моем CSS:

html: { font-size: 93.1%; } 
body: { height: 88mm; } 

/*–––––––––––––––––––––––– system hacks –––––––––––––––––––––––– */ 

/** 
* Unix* system based servers render font much 
* bigger than windows based server. 
* Force windows font to 100% and rescale the 
* linux rendering by the magic factor (1.33) 
*/ 
.linux { 
    font-size: 70%; 
} 

/** 
* base size: 88mm 
* 
* for wkhtmltopdf generation, 
* body size must be multiplied by 1.33 factor on windows systems 
*/ 
.win body { 
    height: 117.04mm; 
} 

И с немного PHP, я добавил динамически класс к <html> тега на основе серверной системы.

Смежные вопросы