swift - Xcode全屏pdf生成器
问题描述
我正在开发一个 Xcode 10 项目(Swift 4.2),我想生成一个 pdf 的视图内容。我已经看到使用动态文本等完成此操作,但我想生成视图的屏幕截图并将其保存在应用程序中。最简单的方法是什么?
我可以设置一个 HTML 表单,但由于屏幕包含已经以所需格式排列的图像和标签,如果有一种方法可以将视图内容保存为图像并创建该图像的 pdf,那就太好了。这可能吗?
解决方案
如果您可以设置 HTML 页面,您的问题不是 Xcode PDF 生成器,而是“如何将 html 转换为 pdf?”。为此,您可以使用 jsPDF.html()
和html2canvas 1.0.0-alpha.12
.
<script src="https://cdnjs.cloudflare.com/ajax/libs/jspdf/1.5.3/jspdf.debug.js"
integrity="sha384-NaWTHo/8YCBYJ59830LTz/P4aQZK1sS0SneOgAvhsIl3zBu8r9RevNg5lHCHAuQ/"
crossorigin="anonymous"></script>
<script src="https://html2canvas.hertzen.com/dist/html2canvas.min.js"></script>
<!-- html2canvas 1.0.0-alpha.11 or higher version is needed -->
<script>
function onClick() {
let pdf = new jsPDF('p', 'pt', 'letter');
pdf.html(document.body, {
callback: function () {
pdf.save('test.pdf');
window.open(pdf.output('bloburl')); // To debug.
}
});
}
</script>
推荐阅读
- rust - rust lang 检查端口和连接
- bash - 将 shell/bash 命令传递给 docker
- vue.js - 如何进一步加快构建 vite watch 的速度?
- python - 将两个字典与自定义更新合并
- c - 按位移位与操作数大小(RHEL7 64 位)
- opentracing - jaegar 收集器可以从 otel 收集器接收通过 otlp 协议传入的跨度和跟踪吗?
- python - 获取命令行参数并使用 pytest 将其分配给全局变量
- flutter - 如何在自然界中使渐变颜色可变
- python - 在 __init__ 文件中运行时找到模块,但在我打包它并在包中使用它时找不到
- python - pytest django 从 yaml 文件加载数据库数据