sac*_*ohe 14 html php pdf wkhtmltopdf
我正在使用wkhtmltopdf从单个HTML文件生成PDF,使用格式化为单独的页面page-break-before: always
.例如:
<div class="cover">
Cover Page
</div>
<div class="page">
Page 1
</div>
<div class="page">
Page 2
</div>
Run Code Online (Sandbox Code Playgroud)
使用CSS:
.page {
page-break-before: always;
}
Run Code Online (Sandbox Code Playgroud)
现在,我编写了wkhtmltopdf命令,用于在字母大小的页面上以纵向方式打印PDF.我需要其中一个页面处于横向,其余页面处于纵向(因此,当在屏幕上查看PDF时,所有内容都将正确定向).
有没有办法在单个PDF中混合方向?
如果这不可能,有没有办法使用wkhtmltopdf合并多个PDF?(我已经看到了不同pdfmerge软件的其他建议.)如果需要,我可以将HTML源文件拆分为每个页面的多个文件.
sac*_*ohe 20
如果有人在将来寻找这个答案,我将用我的解决方案来完成这个.基于缺乏答案,我想真的没有办法使用wkhtmltopdf创建具有多页面方向的PDF.
我实现的第一个解决方案是使用一个HTML文件创建单个PDF并使用以下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%;
Run Code Online (Sandbox Code Playgroud)
(要编写类似的兼容CSS3变换,请查看这个伟大的站点以计算所有IE矩阵值:http://www.useragentman.com/IETransformsTranslator/)
如果您的用户只在生成后打印PDF,这将是一个不错的解决方案.由于我的用户需要在屏幕上查看PDF,因此使用他们的PDF查看软件旋转页面是不切实际的.
所以,我的第二个解决方案是将每个页面作为单独的PDF文件从单个HTML文件创建,然后我使用Ghostscript将它们合并到一个文件中.这完美地工作,但只是添加了一些额外的处理时间来创建所有文件并合并它们.在我的情况下,PDF不会经常下载,页面数量很少,因此额外的时间不是一个重要的负担.
归档时间: |
|
查看次数: |
6737 次 |
最近记录: |