MAGPdfGenerator 0.2.0

MAGPdfGenerator 0.2.0

测试已测试
语言语言 Obj-CObjective C
许可证 Apache 2
发布上次发布2016 年 8 月

Konstantin Mamaev 维护。



  • 作者
  • 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 文件。