Какие части css печатных СМИ учитываются фильтром cups xhtmltopdf?

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

<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.

Из Chrome Из xhtmltopdf

Это тоже проблема css или что-то особенное для CUPS? Я ничего не знаю об этом, но я, кажется, помню, что несколько лет назад в некоторых браузерах были стили по умолчанию для элементов, по крайней мере, в режиме причуд. Есть ли стиль, который 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.

person John O    schedule 10.07.2016    source источник


Ответы (1)


Я не знаю, что такое "CUPS' xhtmltopdf" (быстрый поиск не нашел полезной информации), но я уверен, что вам лучше использовать постраничный медиафайл для создания 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;
    }
}
person pwavg    schedule 11.07.2016
comment
Это не отвечает на мой вопрос. CUPS — это система печати в Mac OSX и большинстве систем Linux. - person John O; 11.07.2016