Мы печатаем книги в формате pdf, сгенерированные с помощью приложения html to pdf.
На каждой странице есть верхний и нижний колонтитулы, и мы размещаем контент точно с использованием производственных и переводческих ограничений (и вариантов макета) для разных языков.чтобы убедиться, что фиксированный контент для каждой страницы подходит.
Так, например, хотя наш контент динамический, абзац, как ожидается, займет примерно столько же места для того же места в книге.Мы иногда меняем атрибуты стиля и макета для переводов, но применяются одни и те же правила относительно одинаковых размеров.
У нас есть верхний и нижний колонтитулы на каждой странице, и вся книга отображается как одна длинная html-страница с использованием разрыва строки css длязаставить каждый заголовок перейти на новую страницу.Итак, чтобы отразить, мы контролируем фиксированную высоту содержимого на стороне страницы сервера.
Это хорошо работает, и мы очень довольны преимуществами, которые дает нам HTML в презентации (дизайнеры, а не программисты могут создавать страницы и т. Д.), МыКроме того, вложив значительные средства в эту технологию, мы сейчас слишком углубляемся, чтобы изменить направление, поэтому мы не можем изменить нашу технологию, мы используем html 2 pdf и нам нужно сделать эту работу как можно лучше.Это не значит, что мы не могли смешивать технологии.но ...
Проблема в том, что теперь у нас есть некоторый контент переменного размера, который у нас нет прежнего контроля, для нас это текст, поэтому мы можем контролировать его форматирование, но не его количество.У нас также есть заголовки разных размеров.
Нам нужен способ для вычисления разрывов страниц, оставляя как можно меньше пустого пространства, и я хотел бы знать, как кто-то еще имеет дело с этим.Я знаю, что это не будет точной наукой, но мне все еще нужен наилучший возможный подход.
Мы имеем полный контроль над механизмом рендеринга / компоновки, он всегда совместим с ie8, поэтому не нужно рассматривать разные браузеры.
Это мои мысли, хотелось бы услышать ваши:
- Это наш текущий метод, назначить количество строк на странице (переменное по размеру шрифта и шрифту, чтобы учесть разныеlocales) каждый блок контента будет рассчитан на n строк стоимости, и этот показатель используется для расчета разрывов страниц.
Pro simple
С другой стороны, неточно, ни один из наших шрифтов не является моноширинным, требуется настройка для каждой локали.
- Отображение каждой последовательной страницы содержимого свободного потокав веб-страницу в div с точной шириной страницы (фиксированный div), позволяя ей перетекать на любую вертикальную высоту, которая ему требуется, используя html 2 bmp решение, захватывает изображение и использует высоту визуализированного изображения (края обнаруживаются и обрезаются, если требуется)для расчета необходимого количества страниц.
Pro Может быть точным, не слишком дорогим, если содержание свободного потока поддерживается непрерывным.
Con Неполное решение, если я знаю требуемое количествостраницы, как я знаю, где сломать HTML?Измерение каждой страницы с использованием этого метода и определение края будет очень дорогим.
- На основе шрифта за шрифтом, заранее зная размеры шрифта, отступы и поля текста и заголовков, вычислить ширину и разрывы строки height, символ за символом, используя данные о ширине, извлеченные из файла шрифта.
Pro После того, как все данные были извлечены, и были добавлены поля для различий в рендеринге HTML, это может быть довольно точным.
Con Очень сложный и чувствительный к изменениям таблиц стилей.
- Можем ли мы использовать WebBrowserControl, чтобы как-то измерить содержимое?
Люблю слышать ваши мыслии предложения.
РЕДАКТИРОВАТЬ ....
Наш pdf-конвертер - Winnovative, который работает в службе Windows .net, однако наш html-канал генерируется на PHP.