从HTML模板生成Swift格式的PDF
我正在尝试从HTML-CSS模板为我的iOS应用程序实现一个PDF生成器 它成功地生成了它,尽管出于某种原因,它没有在页面末尾正确地剪切 我已经试过了从HTML模板生成Swift格式的PDF,html,ios,css,swift,Html,Ios,Css,Swift,我正在尝试从HTML-CSS模板为我的iOS应用程序实现一个PDF生成器 它成功地生成了它,尽管出于某种原因,它没有在页面末尾正确地剪切 我已经试过了 我的班是 class CustomPrintPageRenderer: UIPrintPageRenderer { let A4PageWidth: CGFloat = 595.2 let A4PageHeight: CGFloat = 841.8 override init() { super
class CustomPrintPageRenderer: UIPrintPageRenderer {
let A4PageWidth: CGFloat = 595.2
let A4PageHeight: CGFloat = 841.8
override init() {
super.init()
let pageFrame = CGRect(x: 0.0, y: 0.0, width: A4PageWidth, height: A4PageHeight)
self.setValue(NSValue(cgRect: pageFrame), forKey: "paperRect")
self.setValue(NSValue(cgRect: pageFrame.insetBy(dx: 10, dy: 10)), forKey: "printableRect")
}
}
我的HTML模板文件的媒体打印部分是
@media print {
height: auto;
#skills {
padding-top: 5mm;
display: block;
page-break-before: auto;
page-break-inside: avoid;
page-break-after: auto;
background-color: red;
}
#lesson {
height: 100%;
display: block;
page-break-before: avoid;
page-break-inside: always;
page-break-after: auto;
border-top: none;
background-color: green;
}
#drivingTests {
display: block;
page-break-before: auto;
page-break-inside: auto;
page-break-after: avoid;
border-top: none;
background-color: yellow;
}
.wrapTable:not(.innerWrapTable) {
display: block;
page-break-before: auto;
page-break-inside: auto;
page-break-after: auto;
}
}
HTML模板文件的主体是
<body>
<div id="contentWrap">
<!-- Header -->
<header>
<table>
<tr>
<td>
<table>
<tr>
<td>
<p>Ausbildungskarte</p>
</td>
<td>
<p>Kat. #category#</p>
</td>
</tr>
</table>
</td>
<td>#headerLogo#</td>
</tr>
</table>
</header>
<!-- Personal Information -->
<table id="personalInformation" class="wrapTable">
<tr>
<th class="headers">Persönliche Informationen</th>
</tr>
#personalInformationItems#
</table>
<!-- Skills -->
<table id="skills" class="wrapTable">
<tr>
<th class="headers">Skills</th>
</tr>
<tr>
<td>
<table class="wrapTable innerWrapTable">
<tr>
<td class="skillColumnItem">#skillSectionLeftItem#</td>
<td class="skillColumnItem">#skillSectionMiddleItem#</td>
<td class="skillColumnItem">#skillSectionRightItem#</td>
</tr>
</table>
</td>
</tr>
</table>
<!-- Lesson -->
<table id="lesson" class="wrapTable">
<tr>
<th class="headers">Lessons</th>
</tr>
#lessonItems#
</table>
<!-- Driving Tests -->
<table id="drivingTests" class="wrapTable">
<tr>
<th class="headers">Driving Tests</th>
</tr>
#drivingTestItems#
</table>
</div>
</body>
奥斯丁斯卡特
凯特#类别#
#海德洛戈#
Persönliche Informationen
#个人信息项目#
技能
#技能部分左项#
#技巧项目#
#skillSectionRightItem#
教训
#莱索尼特斯#
驾驶考试
#驾驶测试项目#
如果需要,我可以共享完整的HTML文件,大约300行
如有任何建议或错误更正,我们将不胜感激