A simple generator of PDF written in Swift.

Overview

Features | Requirements | Installation | Usage | Communication | LICENSE

PDFGenerator

Build Status GitHub release codecov Language Carthage CocoaPods CocoaPodsDL Awesome Reviewed by Hound

PDFGenerator is a simple PDF generator that generates with UIView, UIImage, ...etc .

do {
    let page: [PDFPage] = [
        .whitePage(CGSize(width: 200.0, height: 100.0)),
        .image(image1)
        .image(image2)
        .imagePath(lastPageImagePath)
        .whitePage(CGSize(width: 200.0, height: 100.0))
    ]
    let path = NSTemporaryDirectory().appending("sample1.pdf")
    try PDFGenerator.generate(page, to: path, password: "123456")
} catch let error {
    print(error)
}

Features

  • Swift 5 is ready 🙏
  • Multiple pages support.
  • Also generate PDF with image path, image binary, image ref (CGImage)
  • Good memory management.
  • UIScrollView support : If view is UIScrollView, UITableView, UICollectionView, UIWebView, drawn whole content.
  • Outputs as binary(Data) or writes to Disk(in given file path) directly.
  • Corresponding to Error-Handling. Strange PDF has never been generated!!.
  • DPI support. : Default dpi is 72.
  • Password protection support.

Requirements

  • iOS 9.0+
  • Xcode 11+
  • Swift 5.1

Installation

Carthage

  • Add the following to your Cartfile:
github "sgr-ksmt/PDFGenerator" ~> 3.1
  • Then run command:
$ carthage update

CocoaPods

PDFGenerator is available through CocoaPods. To install it, simply add the following line to your Podfile:

pod 'PDFGenerator', '~> 3.1'

and run pod install

Usage

Generate from view(s) or image(s)

  • UIView → PDF
func generatePDF() {
    let v1 = UIScrollView(frame: CGRect(x: 0.0,y: 0, width: 100.0, height: 100.0))
    let v2 = UIView(frame: CGRect(x: 0.0,y: 0, width: 100.0, height: 200.0))
    let v3 = UIView(frame: CGRect(x: 0.0,y: 0, width: 100.0, height: 200.0))
    v1.backgroundColor = .red
    v1.contentSize = CGSize(width: 100.0, height: 200.0)
    v2.backgroundColor = .green
    v3.backgroundColor = .blue

    let dst = URL(fileURLWithPath: NSTemporaryDirectory().appending("sample1.pdf"))
    // outputs as Data
    do {
        let data = try PDFGenerator.generated(by: [v1, v2, v3])
        try data.write(to: dst, options: .atomic)
    } catch (let error) {
        print(error)
    }

    // writes to Disk directly.
    do {
        try PDFGenerator.generate([v1, v2, v3], to: dst)    
    } catch (let error) {
        print(error)
    }
}

Also PDF can generate from image(s), image path(s) same as example.

Generate from PDFPage object

  • (UIVIew or UIImage) → PDF

Use PDFPage.

public enum PDFPage {
    case whitePage(CGSize) // = A white view
    case view(UIView)
    case image(UIImage)
    case imagePath(String)
    case binary(Data)
    case imageRef(CGImage)
}
func generatePDF() {
    let v1 = UIView(frame: CGRect(x: 0.0,y: 0, width: 100.0, height: 100.0))
    v1.backgroundColor = .red
    let v2 = UIView(frame: CGRect(x: 0.0,y: 0, width: 100.0, height: 200.0))
    v2.backgroundColor = .green

    let page1 = PDFPage.View(v1)
    let page2 = PDFPage.View(v2)
    let page3 = PDFPage.WhitePage(CGSizeMake(200, 100))
    let page4 = PDFPage.Image(UIImage(contentsOfFile: "path/to/image1.png")!)
    let page5 = PDFPage.ImagePath("path/to/image2.png")
    let pages = [page1, page2, page3, page4, page5]

    let dst = NSTemporaryDirectory().appending("sample1.pdf")
    do {
        try PDFGenerator.generate(pages, to: dst)
    } catch (let e) {
        print(e)
    }
}

Generate custom dpi PDF

// generate dpi300 PDF (default: 72dpi)
func generatePDF() {
    let v1 = UIView(frame: CGRect(x: 0.0,y: 0, width: 100.0, height: 100.0))
    v1.backgroundColor = .red
    let v2 = UIView(frame: CGRect(x: 0.0,y: 0, width: 100.0, height: 200.0))
    v2.backgroundColor = .green

    let page1 = PDFPage.View(v1)
    let page2 = PDFPage.View(v2)
    let pages = [page1, page2]

    let dst = NSTemporaryDirectory().appending("sample1.pdf")
    do {
        try PDFGenerator.generate(pages, to: dst, dpi: .dpi_300)
    } catch (let e) {
        print(e)
    }
}

Password protection

// generate PDF with password: 123456
func generatePDF() {
    let v1 = UIView(frame: CGRect(x: 0.0,y: 0, width: 100.0, height: 100.0))
    v1.backgroundColor = .red
    let v2 = UIView(frame: CGRect(x: 0.0,y: 0, width: 100.0, height: 200.0))
    v2.backgroundColor = .green

    let page1 = PDFPage.view(v1)
    let page2 = PDFPage.view(v2)
    let pages = [page1, page2]

    let dst = NSTemporaryDirectory().appending("sample1.pdf")
    do {
        try PDFGenerator.generate(pages, to: dst, password: "123456")
        // or use PDFPassword model
        try PDFGenerator.generate(pages, to: dst, password: PDFPassword("123456"))
        // or use PDFPassword model and set user/owner password
        try PDFGenerator.generate(pages, to: dst, password: PDFPassword(user: "123456", owner: "abcdef"))
    } catch let error {
        print(error)
    }
}

Communication

  • If you found a bug, please open an issue. 🙇
  • Also, if you have a feature request, please open an issue. đź‘Ť
  • If you want to contribute, submit a pull request. đź’Ş

License

PDFGenerator is under MIT license. See the LICENSE file for more info.

Comments
  • Bug? Irregularities with UIScrollview

    Bug? Irregularities with UIScrollview

    Hello,

    So I'm currently experimenting a bit with your PDFgenerator and found some strange things happening, but maybe i'm just using it wrong. What i experienced is that the content size of the scroll view, is the size of the generated pdf, but the frame size of the view is the visible part of the pdf. so when i have a frame size of 595:842 and a content size of 595:1684 i have a page of two A4 sizes but only half of that is written, even if there would be text on the second half.

    Thats what i have done: I have a view in a storyboard. in that view is a UIScrollview and in that scrollview is a stack view with labels and images. i created the pdf like this:

        private func GetUIView() -> UIView{
            var result = UIView()
            let storyboard : UIStoryboard = UIStoryboard(name: "Main", bundle: nil)
            let vc = storyboard.instantiateViewControllerWithIdentifier("PDFOutput") as! PDFOutputViewController
            vc.view.frame.size = CGSize(width: 595, height: 842)
            // fill view Controller with Data
            for view in vc.view.subviews{
                if view is UIScrollView{
                    (view as! UIScrollView).contentSize = CGSize(width: 595, height: 1684)
                    result = view as! UIScrollView
                }
            }
            return result
        }
        let dst = NSHomeDirectory().stringByAppendingString("/test.pdf")
        PDFGenerator.generate(GetUIView(), outputPath: dst)
    

    The output is an half empty page. When i change the frame-height to 1684 i get an full page.

    On a side note a little request. Make the PDFPageSizes public so we users can use them too, because the standard accessor is only internal. And now at last a question. Is it possible to split these long UIScrollview, so that they occupy exactly one page. Would also be a nice standard feature. Something like that:

        func SplitScrollView(scrollView: UIScrollView) -> [UIView]{
            var views = [UIView]()
            for i in 0 ... Int(scrollView.contentSize.height / PDFPageSize.A4.height){
                scrollView.contentOffset = CGPoint(x: 0, y: Int(a4.height * CGFloat(i))
                scrollView.bounds.size = PDFPageSize.A4
                views.append(scrollview.extractVisiblePart())
            }
        }
    

    Thanks in Advance

    opened by ChaosSaber 10
  • Can't archive in Xcode 7.3 (7D175)

    Can't archive in Xcode 7.3 (7D175)

    Hello,

    I'm trying to build my app that uses PDFGenerator and I'm getting the error bellow:

    SwiftCodeGeneration normal arm64 /Users/thomas/Library/Developer/Xcode/DerivedData/DanFlow_5000-hkzfkytwkxmfncfdsbfhkketzfus/Build/Intermediates/ArchiveIntermediates/DanFlow 5000/IntermediateBuildFilesPath/Pods.build/Release-iphoneos/PDFGenerator.build/Objects-normal/arm64/PDFGenerator.bc
        cd /Volumes/DADOS/Dev/iOS/DanFlow 5000/Pods
        /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/swift -frontend -c -primary-file "/Users/thomas/Library/Developer/Xcode/DerivedData/DanFlow_5000-hkzfkytwkxmfncfdsbfhkketzfus/Build/Intermediates/ArchiveIntermediates/DanFlow 5000/IntermediateBuildFilesPath/Pods.build/Release-iphoneos/PDFGenerator.build/Objects-normal/arm64/PDFGenerator.bc" -target arm64-apple-ios8.0 -Xllvm -aarch64-use-tbi -O -module-name PDFGenerator -o "/Users/thomas/Library/Developer/Xcode/DerivedData/DanFlow_5000-hkzfkytwkxmfncfdsbfhkketzfus/Build/Intermediates/ArchiveIntermediates/DanFlow 5000/IntermediateBuildFilesPath/Pods.build/Release-iphoneos/PDFGenerator.build/Objects-normal/arm64/PDFGenerator.o" -embed-bitcode -disable-llvm-optzns
    
    0  swift                    0x000000010aaa14eb llvm::sys::PrintStackTrace(llvm::raw_ostream&) + 43
    1  swift                    0x000000010aaa07d6 llvm::sys::RunSignalHandlers() + 70
    2  swift                    0x000000010aaa1b4f SignalHandler(int) + 287
    3  libsystem_platform.dylib 0x00007fff9298352a _sigtramp + 26
    4  libsystem_platform.dylib 0x00007fd808461450 _sigtramp + 1974329152
    5  swift                    0x000000010a14d6fa llvm::DwarfCompileUnit::applyVariableAttributes(llvm::DbgVariable const&, llvm::DIE&) + 74
    6  swift                    0x000000010a151648 llvm::DwarfDebug::finishVariableDefinitions() + 376
    7  swift                    0x000000010a1519ae llvm::DwarfDebug::finalizeModuleInfo() + 126
    8  swift                    0x000000010a151cf7 llvm::DwarfDebug::endModule() + 39
    9  swift                    0x000000010a133ef7 llvm::AsmPrinter::doFinalization(llvm::Module&) + 839
    10 swift                    0x000000010a8d4415 llvm::FPPassManager::doFinalization(llvm::Module&) + 53
    11 swift                    0x000000010a8d48f1 llvm::legacy::PassManagerImpl::run(llvm::Module&) + 1185
    12 swift                    0x000000010891444b performLLVM(swift::IRGenOptions&, swift::DiagnosticEngine&, llvm::sys::SmartMutex<false>*, llvm::Module*, llvm::TargetMachine*, llvm::StringRef) + 1067
    13 swift                    0x0000000108914571 swift::performLLVM(swift::IRGenOptions&, swift::ASTContext&, llvm::Module*) + 145
    14 swift                    0x00000001087f317a performCompile(swift::CompilerInstance&, swift::CompilerInvocation&, llvm::ArrayRef<char const*>, int&) + 506
    15 swift                    0x00000001087f241d frontend_main(llvm::ArrayRef<char const*>, char const*, void*) + 2781
    16 swift                    0x00000001087ede3c main + 1932
    17 libdyld.dylib            0x00007fff928605ad start + 1
    18 libdyld.dylib            0x0000000000000010 start + 1836710500
    Stack dump:
    0.  Program arguments: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/swift -frontend -c -primary-file /Users/thomas/Library/Developer/Xcode/DerivedData/DanFlow_5000-hkzfkytwkxmfncfdsbfhkketzfus/Build/Intermediates/ArchiveIntermediates/DanFlow 5000/IntermediateBuildFilesPath/Pods.build/Release-iphoneos/PDFGenerator.build/Objects-normal/arm64/PDFGenerator.bc -target arm64-apple-ios8.0 -Xllvm -aarch64-use-tbi -O -module-name PDFGenerator -o /Users/thomas/Library/Developer/Xcode/DerivedData/DanFlow_5000-hkzfkytwkxmfncfdsbfhkketzfus/Build/Intermediates/ArchiveIntermediates/DanFlow 5000/IntermediateBuildFilesPath/Pods.build/Release-iphoneos/PDFGenerator.build/Objects-normal/arm64/PDFGenerator.o -embed-bitcode -disable-llvm-optzns
    

    It was OK before I updated XCode. :( Thank you.

    bug 
    opened by tomcalmon 7
  • Apple will stop accepting submissions of apps that use UIWebView APIs

    Apple will stop accepting submissions of apps that use UIWebView APIs

    After uploading our app to AppStoreConnect, I received the following email from Apple:

    Dear Developer, We identified one or more issues with a recent delivery for your app, "autoSense Fuel DEV" 1.2.1 (2). Your delivery was successful, but you may wish to correct the following issues in your next delivery: ITMS-90809: Deprecated API Usage - Apple will stop accepting submissions of apps that use UIWebView APIs . See https://developer.apple.com/documentation/uikit/uiwebview for more information. After you’ve corrected the issues, you can use Xcode or Application Loader to upload a new binary to App Store Connect. Best regards, The App Store Team

    Is somebody already working on replacing UIWebView (APIs) with WKWebView? If not, I will probably fork it myself.

    opened by ronnie70 6
  • Fix Info.plist error

    Fix Info.plist error

    Fix the issue that may be raised by XCode when using CocoaPods installation method.

    Multiple commands produce '…/Products/Debug-iphonesimulator/PDFGenerator/PDFGenerator.framework/Info.plist':

    1. Target 'PDFGenerator' (project 'Pods') has copy command from '…/Pods/PDFGenerator/PDFGenerator/Info.plist' to '…/Build/Products/Debug-iphonesimulator/PDFGenerator/PDFGenerator.framework/Info.plist'
    2. Target 'PDFGenerator' (project 'Pods') has process command with output '…/Build/Products/Debug-iphonesimulator/PDFGenerator/PDFGenerator.framework/Info.plist'

    We don't need to include Info.plist file in Pod.

    ⚠️ Don't forget to tag PDFGenerator as 2.1.1 on pull request merge.

    opened by Sorix 6
  • Info.plist duplicated Xcode 10

    Info.plist duplicated Xcode 10

    Hi @sgr-ksmt

    first of all, congratulations for the magic work!!! now, i'have en issue when i tried to use this project in Xcode 10, i'm getting the error that the info.plist is duplicated, as a workaround i can delete it, and then works well, to be hones idk why Xcode is complaining about this, but if i don't do that i can't compile.

    Could you please double check this issue? or is anyone having the same issue?

    opened by chuynadamas 5
  • WKWebview Support

    WKWebview Support

    Hi I'm using this with a Webkit Webview and the problem is it generates the giant pdf but it only shows the part of the webpage you are currently on and the rest remains blank. I tried this with a UIWebview and it loads everything except the images because UIWebview has some condition where it doesn't load images unless the UIScrollView event has ended. I tried even automating the scroll to load the images and then generate the pdf but still that hasn't worked. Please fill me in on ways to get around both these issues. I have spent hours trying to figure this out and still have come short on an answer. Thank you so much.

    opened by afshawnlotfi 5
  • Using Storyboards

    Using Storyboards

    Hey is it possible to take the view from a storyboard without displaying it on the screen and convert it to a PDF? I'm trying but I keep getting the ZeroSizeView error.

    Code:

     let storyboard = UIStoryboard(name: "Overview", bundle: NSBundle.mainBundle())
    
     let vc = storyboard.instantiateViewControllerWithIdentifier("Overview")
    
     let view = vc.view
    

    Error:

    ZeroSizeView(<UITableView: 0x7dbfd600; frame = (0 0; 1024 768); clipsToBounds = YES; autoresize = W+H; gestureRecognizers = <NSArray: 0x7c8d6960>; layer = <CALayer: 0x7c8d2880>; contentOffset: {0, 0}; contentSize: {1024, 0}>)

    Thanks, I appreciate the service.

    opened by johnslay 5
  • any plans for whole-content drawing support of UIWebView?

    any plans for whole-content drawing support of UIWebView?

    Hi, This software is wonderfully easy to use. However, I need to export UIWebView -> PDF. Do you have any plans to support UIWebView so that the content is not cropped to what is visible on-screen?

    Thanks

    bug 
    opened by gmarzloff 4
  • Split UIScrollView into multiple Pages

    Split UIScrollView into multiple Pages

    I created a new case of the PDFPage enum and extended the render function of UIView to render just an area (CGRect) of a view.

    There is also a factory method to create multiple pages from one UIScrollView. To do so you have to specify a configuration which defines the ratio (A4, Letter, custom, ..) and a percentage which defines which part of the last page should be repeated on the next page.

    opened by messi 3
  • Crash when running the app

    Crash when running the app

    I installed the latest (2.1) Swift 4 version and whether it is with the Demo app or with my app, it crashes as soon as it starts.

    The crash logs with the Demo app are:

    dyld: Library not loaded: @rpath/PDFGenerator.framework/PDFGenerator
      Referenced from: /var/containers/Bundle/Application/21494070-6883-43BC-BFB3-00DAB2F35FC1/Demo.app/Demo
      Reason: image not found
    

    Those with my app:

    dyld: Library not loaded: @rpath/PDFGenerator.framework/PDFGenerator
      Referenced from: /var/containers/Bundle/Application/6BC140DB-9DDA-4580-913F-C1B63F0791E6/MyApp.app/MyApp
      Reason: no suitable image found.  Did find:
    	/private/var/containers/Bundle/Application/6BC140DB-9DDA-4580-913F-C1B63F0791E6/MyApp.app/Frameworks/PDFGenerator.framework/PDFGenerator: required code signature missing for '/private/var/containers/Bundle/Application/6BC140DB-9DDA-4580-913F-C1B63F0791E6/MyApp.app/Frameworks/PDFGenerator.framework/PDFGenerator'
    
    	/private/var/containers/Bundle/Application/6BC140DB-9DDA-4580-913F-C1B63F0791E6/MyApp.app/Frameworks/PDFGenerator.framework/PDFGenerator: required code signature missing for '/private/var/containers/Bundle/Application/6BC140DB-9DDA-4580-913F-C1B63F0791E6/MyApp.app/Frameworks/PDFGenerator.framework/PDFGenerator'
    
    	/private/var/containers/Bundle/Application/6BC140DB-9DDA-4580-913F-C1B63F0791E6/MyApp.app/Frameworks/PDFGenerator.framework/PDFGenerator: required code signature missing for '/private/var/containers/Bundle/Application/6BC140DB-9DDA-4580-913F-C1B63F0791E6/MyApp.app/Frameworks/PDFGenerator.framework/PDFGenerator'
    
    Message from debugger: Terminated due to signal 6
    

    I'm not even calling any code from the library and I get this crashes.

    Any idea why?

    opened by nico75005 3
  • InvalidContextError, cause?

    InvalidContextError, cause?

    Hello it's me again,

    recently began working again on my little project. Until now i only used the simulator and it worked fine. But now that i tested my project on an iPad, i get the InvalidContext Error. In the Apple Documentation (https://developer.apple.com/reference/uikit/1623918-uigraphicsgetcurrentcontext) is stated, that you have to push a context on the stack if not called from an UIView, which is my case. But this should be done with this line of Code UIGraphicsBeginPDFContextToFile(outputPath, .zero, password.toDocumentInfo()) which is called before

    guard let context = UIGraphicsGetCurrentContext() else {
        throw PDFGenerateError.InvalidContext
    }
    

    So i'm a bit clueless at the moment what could be wrong and cause this error. I Hope you can help me with that and thanks in Advance

    opened by ChaosSaber 2
  • Some UIView is rendered as black view in PDF

    Some UIView is rendered as black view in PDF

    I noticed that some UIView, image view or text view is rendered completely as back. This only happens for some UIView and every time for the same view. Any idea?

    iOS 14.3 Swift 5 Both device and simulator

    opened by lucaslupo 1
  • Issue when trying to generate pdf from scrollview

    Issue when trying to generate pdf from scrollview

    opened by TapanRaut 0
  • Feature Request: Swift UI Support and rendering of 1000 pages of view

    Feature Request: Swift UI Support and rendering of 1000 pages of view

    It is working great with UICollectionView! This library will work only if the full view is rendered (consider the view contains 1000 pages)? Do we have any library for Swift UI that can parse CollectionView?

    opened by universedocs 2
  • Error dispositivo

    Error dispositivo

    When I run in the simulator it works normal, but on the iphone I get an error CGDataConsumerCreateWithFilename: failed to open `/var/mobile/Containers/Data/Application/10BFAA37-C56D-4DE7-84D9-4AD8BB06B56D/sample_tblview.pdf 'for writing: Operation not permitted.

    opened by iaguedo 0
Releases(3.1.0)
Owner
Suguru Kishimoto
iOS/Web Developer and Technical Advisor for Firebase. đź’–:Swift/TypeScript/Firebase/React
Suguru Kishimoto
PDF generator using UIViews or UIViews with an associated XIB

Description Create UIView objects using any method you like, including interface builder with Auto-layout and size classes enabled. Then generate a PD

null 34 Dec 17, 2022
SimplePDF is a wrapper of UIGraphics PDF context written in Swift.

SimplePDF is a wrapper of UIGraphics PDF context written in Swift. You can: add texts, images, spaces and lines, table set up page layout, adjust cont

Nutchaphon Rewik 238 Dec 29, 2022
An iOS PDF viewer and annotator written in Swift that can be embedded into any application.

Requirements iOS 9 or above Xcode 8 or above Swift 3.0 Note This project is still in early stages. Right now the PDF reader works both programmaticall

UXM Studio 269 Dec 11, 2022
TPPDF is a simple-to-use PDF builder for iOS

TPPDF is a fast PDF builder for iOS & macOS using simple commands to create advanced documents! Created and maintained by Philip Niedertscheider and a

techprimate 582 Jan 6, 2023
TPPDF is a simple-to-use PDF builder for iOS

TPPDF is a fast PDF builder for iOS & macOS using simple commands to create advanced documents! Created and maintained by Philip Niedertscheider and a

techprimate 581 Dec 29, 2022
PdfBuilder: a swift library made to make creation of the Pdf file from code simpler

PdfBuilder PdfBuilder is a swift library made to make creation of the Pdf file f

null 4 Jul 22, 2022
Draw Week Time Table on PDF using PDFKit in iOS Swift

DrawPDFTimeTable Draw Week Time Table on PDF using PDFKit in iOS Swift. Image Info This is the pdf of time table drawn using PDFKit in iOS Swift with

Kushagra Chandra 6 Nov 22, 2022
Swift package that uses WebKit to render PDF files from URLs

Swift package for generating a PDF file from a URL (rendered by WebKit)

aaronland 1 Feb 25, 2022
PLHKit: A Swift DSL for Rendering and creating PDF Files.

PLHKit PLH is a tribute to Portsaid Light House, Port Said Lighthouse was the first building in the world created with reinforced concrete. ?? PLHKit

null 10 Sep 2, 2022
PDF Reader Core for iOS

PDF Reader Core for iOS This project is no longer supported or maintained. It is only here for historical reasons. Please see the UXReader PDF Framewo

Julius Oklamcak 4.3k Jan 6, 2023
Generate beautiful .pdf Files from xib

Description The Library generates a PDF directly from interface builder with Auto-layouted views! Swift Version of UIView_2_PDF. Installation Download

Simon C. KrĂĽger 16 Dec 17, 2022
UIImage PDF extensions.

UIImagePlusPDF UIImage extensions to use PDF files. Using UIImagePlusPDF you can avoid a lot png images files (1x, 2x, 3x sizes) and simply replace ea

Dmytro Mishchenko 35 Jan 4, 2023
Estrutura Simples para Navegacao Web e Download PDF

Download-PDF-WebView Projeto desenvolvido em Swift com a função de criar uma estrutura simples para navegação Web em seu Aplicativo, permitindo a visu

Josué Rodrigues 1 Nov 30, 2021
Mephisto - A command line tool to convert Comic Book Zip archives to PDF and share them over AirDrop

mephisto A command line tool written in Swift to convert Comic Book Zip archives

null 0 Feb 7, 2022
Small utility to import PDF slides as vector images into Keynote for iOS.

Small utility to import PDF files into Keynote for iOS. This utility is especially helpful when presenting slideshows created by LaTeX

Luming Yin 6 Jun 14, 2022
đź“š A Swift ePub reader and parser framework for iOS.

FolioReaderKit is an ePub reader and parser framework for iOS written in Swift. Features ePub 2 and ePub 3 support Custom Fonts Custom Text Size Text

FolioReader 2.5k Jan 8, 2023
A Static Library to be embedded on iOS applications to display pdf documents derived from Fast PDF

FastPdfKit This repository contains the FastPdfKit iOS library with some sample projects. FastPdfKit is a library that let you show pdf documents in i

Dimension 1.2k Dec 22, 2022
PDF generator using UIViews or UIViews with an associated XIB

Description Create UIView objects using any method you like, including interface builder with Auto-layout and size classes enabled. Then generate a PD

null 34 Dec 17, 2022
SimplePDF is a wrapper of UIGraphics PDF context written in Swift.

SimplePDF is a wrapper of UIGraphics PDF context written in Swift. You can: add texts, images, spaces and lines, table set up page layout, adjust cont

Nutchaphon Rewik 238 Dec 29, 2022
An iOS PDF viewer and annotator written in Swift that can be embedded into any application.

Requirements iOS 9 or above Xcode 8 or above Swift 3.0 Note This project is still in early stages. Right now the PDF reader works both programmaticall

UXM Studio 269 Dec 11, 2022