Ответ 1
В случае, если кто-то ищет этот ответ в будущем, я завершу это своими решениями. Основываясь на отсутствии ответов, я думаю, что действительно невозможно создать PDF файл с несколькими ориентациями страниц, используя wkhtmltopdf.
-
Первым реализованным мной решением было создание единого PDF файла с использованием одного файла HTML и поворот содержимого ландшафтной страницы с использованием следующего CSS:
width: 1275px; height: 1650px; -webkit-transform: translateY(1650px) rotate(270deg); /* Chrome, Safari 3.1+ */ -moz-transform: translateY(1650px) rotate(270deg); /* Firefox 3.5+ */ -o-transform: translateY(1650px) rotate(270deg); /* Opera 10.5-12.0 */ -ms-transform: translateY(1650px) rotate(270deg); /* IE 9 */ transform: translateY(1650px) rotate(270deg); /* IE 10+, Firefox 16.0+, Opera 12.1+ */ filter: progid:DXImageTransform.Microsoft.Matrix(M11=6.123031769111886e-17, M12=1, M21=-1, M22=6.123031769111886e-17, SizingMethod='auto expand'); /* IE 6-7 */ -ms-filter: "progid:DXImageTransform.Microsoft.Matrix(M11=6.123031769111886e-17, M12=1, M21=-1, M22=6.123031769111886e-17, SizingMethod='auto expand')"; /* IE 8 */ -webkit-transform-origin: 0% 0%; -moz-transform-origin: 0% 0%; -o-transform-origin: 0% 0%; -ms-transform-origin: 0% 0%; transform-origin: 0% 0%;
(Чтобы написать аналогичные совместимые преобразования CSS3, ознакомьтесь с этим замечательным сайтом, чтобы вычислить все значения матрицы IE: http://www.useragentman.com/IETransformsTranslator/)
Это будет достойное решение, если ваши пользователи будут печатать только PDF после его создания. Поскольку мои пользователи должны просматривать PDF на экране, для них было бы нецелесообразно поворачивать страницу с помощью программного обеспечения для просмотра PDF.
-
Итак, моим вторым решением было создание каждой страницы в виде отдельного PDF файла из отдельных файлов HTML, а затем я использовал Ghostscript объединить их в один файл. Это сработало отлично, но просто добавило дополнительное время обработки, чтобы создать все файлы и объединить их. В моем случае, PDF не будет загружаться слишком часто, и количество страниц было минимальным, поэтому дополнительное время не было значительным бременем.