Swiftpack.co - jtbandes/pdfsnip as Swift Package

Swiftpack.co is a collection of thousands of indexed Swift packages. Search packages.
jtbandes/pdfsnip
CLI tool to extract images from PDFs, and Swift library with other CGPDF* API wrappers.
.package(url: "https://github.com/jtbandes/pdfsnip.git", from: "0.0.1")

pdfsnip

This Swift package provides two targets:

  • pdfsnip, a command-line utility to extract images from PDF files.
  • PDFWrappers, a Swift library wrapping raw pointer-based types from CoreGraphics with a nicer API.

Usage

Extract images from a PDF

$ cd pdfsnip   # directory containing the pdfsnip package and this readme :)
$ swift run pdfsnip [file.pdf] [outdir]

Extracts images from the given PDF file and saves them to the output directory.

Using PDFWrappers to traverse PDF data

In your Package.swift, add this package to your package's dependencies, and its PDFWrappers product to your target's dependencies. Example:

let package = Package(
  ...
  dependencies: [
    .package(url: "https://github.com/jtbandes/pdfsnip.git", from: "0.0.1")
  ],
  targets: [
    .target(
      ...
      dependencies: [
        .product(name: "PDFWrappers", package: "pdfsnip"),
      ]),
  ]
)

Now you can use PDFDictionary and other wrapper types to access PDF data more safely and conveniently:

let doc: CGPDFDocument = ...
if let rawPageDict = doc.page(at: 1)?.dictionary {
  let pageDict = PDFDictionary(dictionary: rawPageDict)

  // Instead of:
  var str: CGPDFStringRef?
  if CGPDFDictionaryGetString(rawPageDict, "Key", &str) { ... }

  // Use:
  if let str = pageDict[string: "Key"] { ... }
}

GitHub

link
Stars: 4
Last commit: 2 weeks ago

Ad: Job Offers

iOS Software Engineer @ Perry Street Software
Perry Street Software is Jack’d and SCRUFF. We are two of the world’s largest gay, bi, trans and queer social dating apps on iOS and Android. Our brands reach more than 20 million members worldwide so members can connect, meet and express themselves on a platform that prioritizes privacy and security. We invest heavily into SwiftUI and using Swift Packages to modularize the codebase.

Submit a free job ad (while I'm testing this). The analytics numbers for this website are here.

Swiftpack is being maintained by Petr Pavlik | @ptrpavlik | @swiftpackco | API | Analytics