Я пытаюсь преобразовать HTML отчет в страницы двух разных размеров, используя iText 7, что очень удобно, поскольку я могу установить размер страницы с помощью:
PageSize pageSize = PageSize.A3;
pdf.setDefaultPageSize(pageSize);
Но я пытаюсь примените трюк к стилю CSS, потому что мне нужно переопределить некоторые классы в зависимости от размера страницы, например, для A3 >> размер шрифта таблицы = 12pt, а в LETTER >> размер шрифта таблицы = 6pt. В отчете хранится огромное количество данных, которые я должен вписать в оба размера. С размером LETTER действительно сложно, я использовал% для размера шрифта, но так как содержимое динамическое c, иногда показанный в результате отчет обрезается с правой стороны, даже игнорируя спецификацию полей в селекторе @Page, поэтому мне нужно его указать без%, чтобы избежать такой проблемы. Кроме того, я пытаюсь выполнить эту задачу, переопределив стилизацию только одним листом. После поиска я наткнулся на одну из самых крутых функций @media, используя функции минимальной и максимальной ширины:
@media only print and (min-width: 500px) and (max-width: 700px){
body {
background-color: yellow;
}
.box-table td, th {
font-size: 6pt;
}
}
@media only print and (min-width: 800px) and (max-width: 900px){
body {
background-color: green;
}
.box-table td, th {
font-size: 12pt;
}
}
Круто !! Это работает как оператор IF, и один из них должен срабатывать в то время. Я проверил это с помощью элемента экрана, и он применился идеально, но с iText 7 только последнее утверждение применимо к обоим размерам. Итак, что мне не хватает? Я пытаюсь заставить его работать с iText 7 PDF? Есть идеи или предложения?
Спасибо.