测试已测试 | ✗ |
语言语言 | Obj-CObjective C |
许可证 | Apache 2 |
发布上次发布 | 2016 年 8 月 |
由 Konstantin Mamaev 维护。
MAGPdfGenerator
是一个实用工具,它可以将 UIView 的表示转换为 PDF 文档。UIView 可以从 XIB 文件中创建,并使用 Auto Layout,这使得绘制 PDF 的内容变得更加方便。PDF 文档将自动按页划分,您可以创建一个长的表格视图,并在 PDF 文档中绘制它,而无需额外准备。生成器还可以在每一页的底部自动打印页码。
要运行示例项目,首先从仓库克隆,然后在 Example 目录中运行 pod install
。
MAGPdfGenerator
可在 iOS 8+ 上运行。
MAGPdfGenerator 通过 CocoaPods 提供。要安装它,只需将以下行添加到您的 Podfile 中,然后运行 pod install
pod 'MAGPdfGenerator'
在使用生成器之前,您应该创建一个包含未来 PDF 文档布局的 UIView 的实例。默认的 PDF 页面大小为 {612, 792},可打印区域的大小为 {580, 730},因此您应该在大小等于可打印区域大小的位置定位内部视图,以避免元素超出页面。您可以使用 XIB 文件来完成此操作,然后使用以下代码实例化视图:
YourPdfViewClass *yourPdfViewInstance = [[NSBundle mainBundle] loadNibNamed:
NSStringFromClass([YourPdfViewClass class]) owner:nil options:nil].firstObject;
实例化之后,您可以创建和使用 MAGPdfRenderer
的实例
MAGPdfRenderer *renderer = [[MAGPdfRenderer alloc] init];
NSURL *pdfURL = [renderer drawView:yourPdfViewInstance inPDFwithFileName:pdfName];
pdfURL 将包含由该工具渲染的 PDF 文件的 URL。
为了确保 PDF 中的某些块不会换页,您可以使用 MAGPdfRendererDelegate 的 noWrapViewsForPdfRenderer:
方法指定它们
- (IBAction)generatePDFbuttonTapped:(id)sender {
MAGPdfRenderer *renderer = [[MAGPdfRenderer alloc] init];
renderer.delegate = self;
NSURL *pdfURL = [renderer drawView:self.yourPdfViewInstance inPDFwithFileName:pdfName];
}
- (NSArray<UIView *> *)noWrapViewsForPdfRenderer:(MAGPdfRenderer *)pdfRenderer {
return self.yourPdfViewInstance.noWrapViews;
}
Konstantin Mamaev,[email protected]
MAGPdfGenerator 在 MIT 许可下提供。有关更多信息,请参阅 LICENSE 文件。