All Projects → PSPDFKit → Pdfxkit

PSPDFKit / Pdfxkit

Licence: other
A drop-in replacement for Apple PDFKit powered by our PSPDFKit framework under the hood.

Programming Languages

swift
15916 projects

Projects that are alternatives of or similar to Pdfxkit

Itext7 Dotnet
iText 7 for .NET is the .NET version of the iText 7 library, formerly known as iTextSharp, which it replaces. iText 7 represents the next level of SDKs for developers that want to take advantage of the benefits PDF can bring. Equipped with a better document engine, high and low-level programming capabilities and the ability to create, edit and enhance PDF documents, iText 7 can be a boon to nearly every workflow.
Stars: ✭ 698 (+257.95%)
Mutual labels:  sdk, pdf
Artoolkitx
artoolkitX
Stars: ✭ 272 (+39.49%)
Mutual labels:  xcode, sdk
Itext7
iText 7 for Java represents the next level of SDKs for developers that want to take advantage of the benefits PDF can bring. Equipped with a better document engine, high and low-level programming capabilities and the ability to create, edit and enhance PDF documents, iText 7 can be a boon to nearly every workflow.
Stars: ✭ 913 (+368.21%)
Mutual labels:  sdk, pdf
Swiftinstagram
Instagram API client written in Swift
Stars: ✭ 570 (+192.31%)
Mutual labels:  xcode, sdk
Scanbot Sdk Example Android
Document scanning SDK example apps for the Scanbot SDK for Android.
Stars: ✭ 67 (-65.64%)
Mutual labels:  sdk, pdf
Api 3.0 Php
SDK PHP da API 3.0 da Cielo
Stars: ✭ 189 (-3.08%)
Mutual labels:  sdk
Oci Python Sdk
Oracle Cloud Infrastructure SDK for Python
Stars: ✭ 191 (-2.05%)
Mutual labels:  sdk
Hyperdash Sdk Py
Official Python SDK for Hyperdash
Stars: ✭ 190 (-2.56%)
Mutual labels:  sdk
Injectioniii
Re-write of Injection for Xcode in (mostly) Swift
Stars: ✭ 2,680 (+1274.36%)
Mutual labels:  xcode
Xchammer
XCHammer generates Xcode projects from a Bazel Workspace.
Stars: ✭ 195 (+0%)
Mutual labels:  xcode
Pdfcpu
A PDF processor written in Go.
Stars: ✭ 2,852 (+1362.56%)
Mutual labels:  pdf
Todaynews
Swift4 - 今日头条
Stars: ✭ 2,187 (+1021.54%)
Mutual labels:  xcode
P2.
📄 p2. - Simple and secure PDF to PNG server.
Stars: ✭ 191 (-2.05%)
Mutual labels:  pdf
Youtag
iOS music player app that downloads music from the internet, even YouTube
Stars: ✭ 193 (-1.03%)
Mutual labels:  xcode
Androidpdf
Stars: ✭ 190 (-2.56%)
Mutual labels:  pdf
Pdk
The shortest path to better modules: Puppet Development Kit; Download:
Stars: ✭ 194 (-0.51%)
Mutual labels:  sdk
Comics Downloader
tool to download comics and manga in pdf/epub/cbr/cbz from a website
Stars: ✭ 190 (-2.56%)
Mutual labels:  pdf
Cognitive Face Ios
iOS SDK for the Microsoft Face API, part of Cognitive Services
Stars: ✭ 191 (-2.05%)
Mutual labels:  sdk
Js Realtime Sdk
LeanCloud Realtime Message JavaScript SDK
Stars: ✭ 193 (-1.03%)
Mutual labels:  sdk
Speechtotext Websockets Javascript
SDK & Sample to do speech recognition using websockets in Javascript
Stars: ✭ 191 (-2.05%)
Mutual labels:  sdk

PDFXKit

PDFXKit is a drop-in replacement for Apple PDFKit using the industry leading PSPDFKit framework under the hood. The latest version requires PSPDFKit 10 for iOS and Xcode 12.

Note: PSPDFKit is a commercial product and requires a paid license. Please sign up for a free trial to receive an evaluation license if you haven't a production license yet.

Introduction

Apple's PDFKit provides a great starting point if you need to integrate PDF support into your macOS or iOS app. It is a system library and as such the easiest to integrate.

PSPDFKit on the other hand goes much further offering you a cross-platform drop-in solution with many additional UI components, advanced PDF features, and first class support directly from the developers.

Migrating the full code base to PSPDFKit can be a major undertaking and a deal breaker for many developers. This is where PDFXKit comes in. It is a drop-in replacement giving you the same API as PDFKit while using PSPDFKit under the hood.

For more details, please consult the announcement blog post as well as the Migrating from Apple PDFKit guide.

Support, Issues and License Questions

PSPDFKit offers support for customers with an active SDK license via https://pspdfkit.com/support/request/

Are you evaluating our SDK? That's great, we're happy to help out! To make sure this is fast, please use a work email and have someone from your company fill out our sales form: https://pspdfkit.com/sales/

Getting Started

Make sure you have access to PSPDFKit either as a customer or by signing up for a free trial.

Using CocoaPods

We assume you are familiar with CocoaPods, otherwise please consult the documentation first.

First, you'll have to add PDFXKit as a dependency to your Podfile:

# Replace `YourAppName` with your app's target name.
target :YourAppName do
  pod 'PDFXKit', :git => "[email protected]:PSPDFKit/PDFXKit.git", :branch => "master"
end

Now run pod install. Afterwards you should be able to build & run your project without errors. Next you'll have to adapt your project to use PDFXKit as described in Section Switch to PDFXKit.

Manual Setup

Note: manual setup is only for experts, we assume you know what you are doing. If you are unsure, please use CocoaPods instead.

First, build the PDFXKit framework:

  • Clone [email protected]:PSPDFKit/PDFXKit.git
  • Copy PSPDFKit.xcframework and PSPDFKitUI.xcframework into PDFXKit/Frameworks
  • Open the terminal and cd into the PDFXKit directory
  • Run rake compile

You should now have the PDFXFKit.xcframework in the Build folder. Next, add the PSPDFKit.xcframework, PSPDFKitUI.xcframework, and PDFXKit.xcframework to your project:

You should now be able to build & run your app.

Switch to PDFXKit

First, register the PSPDFKit license for your project as described in Adding the License Key guide.

Now we need to perform a couple of small changes in order to make your project use PDFXKit instead of the system PDFKit.

Update all source files to import PDFXKit instead of the PDFKit framework using Xcode's project-wide search & replace:

  • Open your project in Xcode
  • Bring up the search & replace panel (Menu Find -> Find and Replace in Project...)
  • Search & replace import PDFKit with import PDFXKit
  • Search & replace #import <PDFKit/PDFKit.h> with #import <PDFXKit/PDFXKit.h>

If you are using storyboards or xibs, update all custom classes:

  • Open each storyboard and replace all custom classes set to PDFView and PDFThumbnailView to PDFXView and PDFXThumbnailView.

  • Open each xib and replace all custom classes set to PDFView and PDFThumbnailView to PDFXView and PDFXThumbnailView

If you are using Swift:

  • Build & run your project, it should produce build erros for every use of a PDFKit notification constant, fix those by adding an X to the prefix, i.e. .PDFViewPageChanged should be ranamed to .PDFXViewPageChanged.

Build & run your project, your app is now using PDFXKit with PSPDFKit under the hood.

Now make sure your app works as expected. Specifically, there might be a conflict with your gesture recognizers. If so, implement the gestureRecognizer(_:shouldRecognizeSimultaneouslyWith:) delegate method for the conflicting gesture recognizer and return true.

Limitations

PDFXKit is beta software, many parts aren't implemented yet. Please take a look at the headers, all unimplemented or only partially implemented symbols are annotated with the PDFX_NOT_IMPLEMENTED_PRIORITY_... and PDFX_PARTIALLY_IMPLEMENTED_PRIORITY_... macros.

Run the Example Project

  • Clone [email protected]:PSPDFKit/PDFXKit.git
  • Copy PSPDFKit.xcframework and PSPDFKitUI.xcframework into PDFXKit/Frameworks
  • Open Example/PDFXKitExample.xcodeproj in Xcode
  • Build & Run PDFXKitExample

Contributing

Please sign our CLA agreement so we can accept your pull requests.

Technical notes

  • All PDFXKit source files live in the Sources directory, no nesting.

  • Each class has a ...+Swift.h header for Swift-only stuff which isn't exposed to Objective-C. Example: PDFXDocument+Swift.h.

  • Each class has a ...+PSPDFKit.h header for public PSPDFKit stuff, i.e. any interfaces that expose access to PSPDFKit when using PDFXKit. Example: PDFXDocument+PSPDFKit.h.

  • Some of the classes have a ...+Private.h header for internal stuff, i.e. needed by PDFXKit classes internally but shouldn't be exposed publicly. Example: PDFXPage+Private.h, exposes properties only allowed to be accessible by PDFXDocument.

Known Issues

Conflicting gesture recognizers. Your gesture recognizers might be in conflict with some of PSPDFKit's recognizers. If so, implement the gestureRecognizer(_:shouldRecognizeSimultaneouslyWith:) delegate method for the conflicting gesture recognizer and return true.

License

The PDFXKit wrapper is released under a modified version of the BSD license, see LICENSE.md found at the root of this git repo.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].