Как изменить местоположение оглавления в выводе wkhtmltopdf?

Мне нужно, чтобы оглавление было на 3-й странице. По-видимому, если и есть способ контролировать это, то он должен осуществляться через таблицу стилей XSL. Однако все мои попытки поиска не дали мне подсказки. Это вообще возможно?

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


person HargrimmTheBleak    schedule 18.07.2012    source источник


Ответы (1)


Хорошо, я нашел способ сделать это, используя wkhtmltopdf 0.11. Я извлек первые две страницы в отдельный HTML-документ, а затем запустил его следующим образом.

wkhtmltopdf [options] page cover.html toc --xsl-style-sheet ... input_file.html out.pdf

К сожалению, это потребовало гораздо больше усилий, чем я ожидал, поскольку я использую его в приложении Rails через wicked_pdf, и он не очень хорошо работает с новым форматом параметров, поэтому мне пришлось разветвить его и также внести необходимые изменения. .

Командная строка, сгенерированная wicked_pdf, выглядит так (длинные пути опущены):

"c:/program files (x86)/wkhtmltopdf/wkhtmltopdf.exe"  
   --header-html "file:///path/to/header" --footer-html "file:///path/to/footer" 
   --margin-top 20 --margin-bottom 15 --margin-left 5 --margin-right 40    page "file:///path/to/cover/page" --disable-javascript  toc --xsl-style-sheet "path/to/style/sheet"  - -
person HargrimmTheBleak    schedule 20.07.2012
comment
Означает ли это, что в ... у вас есть извлеченные страницы? Можно ли увидеть фактическую используемую команду? Директива page мне не знакома. Для меня это звучит так: поместите страницу cover.html, а затем toc, а затем input_file.html и распечатайте out.pdf, но я сомневаюсь, что это не так, не так ли? Хороший вопрос и приятно найти ответ - person Joel Peltonen; 20.07.2012
comment
Я полагаю, что эта нотация для объектов «страница» и «оглавление» была введена где-то в версии 0.10. wkhtmltopdf помещает эти объекты в вывод в порядке, указанном в командной строке. ... на самом деле это путь к листу XSL, извините, что не прояснил это. Я добавил интерфейс командной строки, который wicked_pdf создает в своем приложении. - person HargrimmTheBleak; 20.07.2012
comment
проще говоря, у вас может быть несколько объектов page вместе с объектами cover и toc. Я использовал тот же трюк = вместо использования обложки, для которой сложно установить верхний и нижний колонтитулы, я использую одну страницу в качестве обложки, затем оглавление, затем остальную часть моего документа, так что [page][toc][page] против [cover][toc][page] - person frequent; 22.02.2016
comment
@frequent Пожалуйста, предложите, как вы достигли этого [page][toc][page] ? Я имею в виду, когда мы загружаем представление с помощью wkhtmltopdf, оно автоматически помещает схему или оглавление на первую страницу, как мы можем добавить страницу перед оглавлением? - person Manoj Verma; 28.07.2020
comment
@ManojVerma - в документации говорится, что у вас может быть несколько объектов страницы. Просто используйте это. wkhtmltopdf.org/usage/wkhtmltopdf.txt - person frequent; 29.08.2020