【Swift】画像をPDFに変換する方法!UIGraphicsBeginPDFContextToDataの使い方
この記事からわかること
- Swiftで画像(UIImage)PDFに変換する方法
- UIGraphicsBeginPDFContextToDataの使い方
index
[open]
\ アプリをリリースしました /
友達や家族の誕生日をメモ!通知も届く-みんなの誕生日-
posted withアプリーチ
環境
- Xcode:15.0.1
- iOS:17.0
- Swift:5.9
- macOS:Sonoma 14.1
Swiftで画像をPDFに変換する方法
Swiftで画像(UIImage)をPDFファイルに変換する方法は2つあります。
1.UIGraphicsBeginPDFContextToData
UIGraphicsBeginPDFContextToData
は、Core Graphicsを使用してPDFコンテキストを作成し、データバッファにPDFデータを書き込むためのグローバル関数です。直接データバッファに書き込むため、一度に大量のデータを処理する場合に効率的ですが、使用方法は少し難しくなっています。
PDFKitとは?
PDFKit
はiOSおよびmacOSアプリケーションでPDFファイルを作成、表示、および操作するための公式のフレームワークです。UIGraphicsBeginPDFContextToData
よりも簡素なAPIでPDFを操作することができるようになっており、PDF文書の表示、検索、注釈の追加、ページの結合など、豊富な機能を提供しています。
UIGraphicsBeginPDFContextToDataの使い方
Swiftで画像(UIImage)をPDFに変換するにはUIGraphicsBeginPDFContextToData
を使います。実装方法は以下の通りです。
// 画像をPDFに変換する関数
func convertImageToPDF(image: UIImage, saveTo path: String) {
let pdfData = NSMutableData()
// 画像のサイズを取得
let imageSize = image.size
let imageRect = CGRect(x: 0, y: 0, width: imageSize.width, height: imageSize.height)
// PDFコンテキストを作成
UIGraphicsBeginPDFContextToData(pdfData, imageRect, nil)
guard let pdfContext = UIGraphicsGetCurrentContext() else {
print("PDF作成失敗")
return
}
// 画像をPDFに描画
UIGraphicsBeginPDFPage()
image.draw(in: imageRect)
// PDFコンテキストを閉じる
UIGraphicsEndPDFContext()
// PDFデータをファイルに保存
pdfData.write(toFile: path, atomically: true)
print("PDF保存成功: \(path)")
}
まだまだ勉強中ですので間違っている点や至らぬ点がありましたら教えていただけると助かります。
ご覧いただきありがとうございました。