2016-07-10 7 views
0

Я пытаюсь использовать html для печатных документов. Я имею заголовки, которые я хочу появляться на каждой печатной странице, и я использую следующий код:Какие части печатных носителей css заполняют чашки xhtmltopdf фильтра?

<style type="text/css"> 
    @media print { 
    div.header { 
     position: fixed; 
     width: 100%; 
     top: 0; 
    } 
    #student_name, #date_submitted { 
     background: transparent; 
     border: none; 
     border-bottom: 1px solid #000000; 
     width: 55%; 
    } 
    } 
    div.twocol { 
    width: 50%; 
    float: left; 
    } 
    div.problem { 
    display: inline-block; 
    width: 5.5em; 
    font: 300% monospace; 
    text-align: right; 
    margin: 2.5em 0 2.5em 0; 
    } 
    div.operand2, div.operation { 
    float: right; 
    border-bottom: 0.1em black solid; 
    } 
    } 
</style> 
</head> 
<body> 
<div class="header"> 
    <div class="twocol"> 
    <label class="student_name" for="student_name">Name</label> 
    <input class="student_name" type="text" id="student_name"></input> 
    </div> 
    <div class="twocol"> 
    <label class="date_submitted" for="date_submitted">Date</label> 
    <input class="date_submitted" type="text" id="date_submitted"></input> 
    </div> 
</div> 
<div class="problem"> 
    <div class="operand1"></div> 
    <div class="operand2"></div> 
    <div class="operation">+</div> 
</div> 

Если я просмотреть это изнутри собственного диалога печати Chrome, это выглядит так, как я намерен. Он также выглядит корректно, если он напечатан в диалоговом окне печати Chrome (идентичный предварительному просмотру, по крайней мере, моему глазному яблоку).

Если я запускаю это через фильтр xhtmltopdf CUPS (для имитации печати), появляется несколько недостатков.

Заголовок выглядит правильно на первой странице, но не отображается на последующих страницах, как в собственном диалоговом окне печати Chrome. Это доказывает, что это стиль вещей из селектора печати СМИ, иначе я бы просто увидел простые входы. Это даже проблема с селектором печати мультимедиа вообще или что-то делать с фиксированной позицией?

Вторая проблема заключается в том, что другие элементы (класс «проблема») значительно отличаются от xhtmltopdf, чем в диалоговом окне печати Chrome.

From ChromeFrom xhtmltopdf

Это также вопрос CSS, или что-то особенное из CUPS? Я вроде как об этом не знаю, но, похоже, несколько лет назад я помню, что некоторые браузеры имели стили по умолчанию для элементов, по крайней мере, в режиме quirks. Есть ли стиль, который Chrome применяет к этому пропуску xhtmltopdf? Что-то еще происходит?

Не уверен, если это поможет, но я в том числе выход из фильтра чашек:

john$ cupsfilter /mnt/Linkstation/Documents/Education/\!Curricula/Arithmetic/Arithmetic\ -\ g1\ -\ Addition\,\ no\ carrying.html > test2.pdf 
DEBUG: argv[0]="cupsfilter" 
DEBUG: argv[1]="1" 
DEBUG: argv[2]="john" 
DEBUG: argv[3]="Arithmetic - g1 - Addition, no carrying.html" 
DEBUG: argv[4]="1" 
DEBUG: argv[5]="" 
DEBUG: argv[6]="/mnt/Linkstation/Documents/Education/!Curricula/Arithmetic/Arithmetic - g1 - Addition, no carrying.html" 
DEBUG: envp[0]="<CFProcessPath>" 
DEBUG: envp[1]="CONTENT_TYPE=text/html" 
DEBUG: envp[2]="CUPS_DATADIR=/usr/share/cups" 
DEBUG: envp[3]="CUPS_FONTPATH=/usr/share/cups/fonts" 
DEBUG: envp[4]="CUPS_SERVERBIN=/usr/libexec/cups" 
DEBUG: envp[5]="CUPS_SERVERROOT=/private/etc/cups" 
DEBUG: envp[6]="LANG=en_US.UTF8" 
DEBUG: envp[7]="PATH=/usr/libexec/cups/filter:/usr/bin:/usr/sbin:/bin:/usr/bin" 
DEBUG: envp[8]="PPD=/System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/PrintCore.framework/Versions/A/Resources/Generic.ppd" 
DEBUG: envp[9]="PRINTER_INFO=cupsfilter" 
DEBUG: envp[10]="PRINTER_LOCATION=Unknown" 
DEBUG: envp[11]="PRINTER=cupsfilter" 
DEBUG: envp[12]="RIP_MAX_CACHE=128m" 
DEBUG: envp[13]="USER=john" 
DEBUG: envp[14]="CHARSET=utf-8" 
DEBUG: envp[15]="FINAL_CONTENT_TYPE=application/pdf" 
INFO: xhtmltopdf (PID 29607) started. 
DEBUG: Page = 612x792; 17,19 to 595,773 
Jul 10 16:42:57 cupsfilter[29607] <Warning>: CGSConnectionByID: 0 is not a valid connection ID. 
Jul 10 16:42:57 cupsfilter[29607] <Warning>: Invalid Connection ID 0 
DEBUG: Loading "file:///mnt/Linkstation/Documents/Education/!Curricula/Arithmetic/Arithmetic%20-%20g1%20-%20Addition,%20no%20carrying.html" 
DEBUG: Waiting for HTML file to load, 10% 
Jul 10 16:42:57 cupsfilter[29607] <Warning>: CGSConnectionByID: 0 is not a valid connection ID. 
Jul 10 16:42:57 cupsfilter[29607] <Warning>: CGSConnectionByID: 0 is not a valid connection ID. 
Jul 10 16:42:57 cupsfilter[29607] <Warning>: CGSConnectionByID: 0 is not a valid connection ID. 
DEBUG: Waiting for HTML file to load, 50% 
DEBUG: Waiting for HTML file to load, 50% 
DEBUG: Page title="Basic Addition, No Carrying" 
DEBUG: Bounds of document are [0.0 0.0 579.0 2608.0] 
DEBUG: Starting page 1: [0.0 0.0 578.8 681.0] 
DEBUG: Starting page 2: [0.0 681.0 578.8 754.8] 
DEBUG: Starting page 3: [0.0 1435.8 578.8 685.2] 
DEBUG: Starting page 4: [0.0 2121.0 578.8 754.8] 
INFO: xhtmltopdf (PID 29607) exited with no errors. 

ответ

0

Я не знаю, что «xhtmltopdf кубковые»»является (быстрый поиск не найти полезную информацию), но я уверен, что вам лучше использовать paged media для создания PDF-файла.

Недостатком является то, что современные браузеры не позволят вашим предпросмотрам css-правилам, вам понадобятся решения, такие как PrinceXML, PDFReactor или wkhtmltopdf. Таким образом, вы можете использовать определенные правила CSS для выполнения того, что вы хотите.

пример:

@page { 

    @top-left { 
     content: Name __________________; 
     font-size: 9pt; 
     color: #333; 
    } 

    @top-right { 
     content: Date __________________; 
     font-size: 9pt; 
     color: #333; 
    } 
} 
+0

Это не ответ на мой вопрос. CUPS - это система принтеров на Mac OSX и большинстве Linux-систем. –