Cocoa Scripting Course #6 PDFKit
- ¥ 5,000
【AppleScript中〜上級者け】【図を中心に構成、文字数すくなめ】 本書は、Cocoa Scripting本の第6弾。PDFの処理をAppleScriptで行いたい人向けのPDFKit Scripting解説書です。 PDF処理は、Cocoa Scriptingの1つの価値ある到達点です。この処理が行いたいからCocoaの呼び出しについて苦労を重ねてきたと言えます。機械学習やREST API呼び出し、配列からの高速なデータ抽出など、Cocoa Scriptingの「おいしい用途」は星の数ほどありますが、PDF処理は間違いなくその中でもトップランクの攻略目標のうちの1つです。 日常的にPDFを扱っているScripterなら、Cocoa Scriptingによって得られるメリットが膨大なものであることを間違いなく実感できることでしょう。 PDF 560ページ+添付サンプルScriptアーカイブ
目次
1章 入門編 Cocoa Scriptingの概要 Cocoa Scriptingってどういうもの? Cocoa Scriptingの実際 Cocoa Scriptingの威力 Cocoa Scriptingのメリット Cocoa Scriptingに必要なもの Cocoa Scriptingまとめ Cocoa Scripting9つの誓い Cocoa Scriptingに適したmacOSについて Cocoa Scripting環境の進化の歴史 Cocoa Scriptable macOS 参考資料:AppleScriptランタイム環境情報 Cocoa Scripting環境ごとの挙動の違い SIP解除の是非 プログラミングスタイル 開発・実行環境のちがい 処理手順の違い メインスレッド実行が必須な機能のScripting delegation, notification 実行スタイルの違いによる書き換え AppleScriptでCocoaオブジェクトを呼び出すと… サブルーチン記述 オブジェクト階層を示すmyとme クラス拡張 高速なCocoa Scriptを書くためには アプリケーションとのやりとり 暗黙の型変換 一部のコマンドで書き換えが必要 計算の優先順位を示すカッコを修正 オブジェクトの数え方 情報の調べ方 Cocoa Scriptingを行う際の調べ方 Appleのオンラインドキュメント Xcodeでヘッダーファイルを「素早く開く」 ヘッダーファイルの歩き方 ヘッダーファイルの構成要素 Deprecatedな機能に遭遇した場合 Enum(定数)の記載パターン AppleScriptの数値表現幅を超えるEnum(定数) 2章 実践編 Cocoa Scriptを実際に動かす Script Editor/Script Debuggerを起動 Cocoa Scriptを実行 Cocoa Objectのログを表示 Cocoa Scriptの書類を保存 Cocoa Scriptのエクスポート形式 Objective-CのCocoa呼び出し記述をAppleScript記述に翻訳する Cocoa Script(AppleScriptObjC)の構成 Objective-Cの各種データ表記書き換え(1/3) Objective-Cの各種データ表記書き換え(2/3) Objective-Cの各種データ表記書き換え(3/3) Cocoaメソッド名の大文字小文字指定 Cocoaメソッド名の変換(1/3) Cocoaメソッド名の変換(2/3) Cocoaメソッド名の変換(3/3) 基礎的なCocoaオブジェクト解説 メソッド呼び出し時のパラメータ NSString(文字列) NSArray(配列) NSDictionary(辞書) Number(数値) Enum(定数) nil NSObject Cocoa Scriptingの特徴的な動き AppleScriptとCocoa間の オブジェクト変換 AppleScriptオブジェクトに対応するCocoaクラス 配列関連のCocoaクラス レコード関連のCocoaクラス 文字列関連のCocoaクラス 日付関連のCocoaクラス File Path関連オブジェクト File Path関連オブジェクト変換方法 画像関連Cocoaオブジェクト ファイルパス文字列(NSString)関連(1/2) ファイルパス文字列(NSString)関連(2/2) URL関連 Remote URL文字列関連(1/2) Remote URL文字列関連(2/2) Local File URL文字列関連 配列関連 Dictionary関連 NSString文字エンコーディング関連 Color関連 HTML関連 Cocoa Object同士の変換、生成 NSData Styled String(1/2) Styled String(2/2) 2次元座標データ 1次元座標系データ 言語、Locale系データ 有用なCocoaオブジェクト(抜粋) 3章 PDFKit編 PDFKitの位置付けと役割 用途別のフレームワークを知ろう PDFKit内の主要クラス PDFKit+AppleScriptのつかいどころ PDFKit+AppleScriptの注意点(1/2) PDFKit+AppleScriptの注意点(2/2) PDFKit.frameworkの利用宣言文 (参考資料)PDFの座標系 PDFDocument Basic Samples initWithURL:① documentURL majorVersion minorVersion string documentAttributes isEncrypted isLocked unlockWithPassword:① permissionsStatus allowsCopying allowsPrinting allowsCommenting allowsContentAccessibility allowsDocumentAssembly allowsDocumentChanges allowsFormFieldEntry pageCount pageAtIndex:① indexForPage:① insertPage:① atIndex:② removePageAtIndex:① exchangePageAtIndex:① withPageAtIndex:② writeToFile:① writeToFile:① withOptions:② writeToFile:① withOptions:②(オプション説明) writeToFile:① withOptions:②(画面図) writeToURL:① writeToURL:① withOptions:② PDFPage Basic Samples initWithImage:① initWithImage:① options:② initWithImage:① options:②(オプション説明) document label rotation annotations displaysAnnotations addAnnotation:① removeAnnotation:① numberOfCharacters string attributedString characterBoundsAtIndex:① dataRepresentation PDFOutline Basic Samples init document numberOfChildren parent index label destination insertChild:① atIndex:② (1/2) insertChild:① atIndex:②(2/2) removeFromParent PDFAnnotation Basic Samples initWithBounds:① forType:② withProperties:③ page modificationDate userName type action action(資料) shouldDisplay shouldPrint annotationKeyValues valueForAnnotationKey:① setValue:① forAnnotationKey:② removeValueForAnnotationKey:① alignment alignment(NSTextAlignment) bounds contents font fontColor border color hasAppearanceStream interiorColor startPoint endPoint startLineStyle endLineStyle lineStyleFromName:① nameForLineStyle:① destination URL iconType widgetFieldType widgetStringValue widgetDefaultStringValue fieldName backgroundColor readOnly multiline isPasswordField maximumLength comb widgetControlType buttonWidgetState buttonWidgetStateString caption allowsToggleToOff radiosInUnison choices values paths stampName 4章 PDF処理 基礎編 PDFの処理の流れ AppleScript+PDFKitでよく使う基礎的な処理 AppleScript+PDFKitの基礎的な処理手順 AppleScript+PDFKitでよく使う基礎的な処理の手順 PDFからの情報取得 PDFのサイズをPointで取得 PDFから各種情報をNSDictionaryで取得 PDFから各種情報を文字列で取得 PDFページカウント PDFのページカウント(PDFDocument) PDFのページカウント(Metadata Lib経由) PDF本文テキスト抽出 PDFの全ページのテキストを抽出 PDFのテキストをページ単位で抽出 PDFを回転 PDFを回転させて新規保存 PDFを印刷 PDFを印刷 RTFをPDFに変換 RTFをPDFに変換(1/3) RTFをPDFに変換(2/3) RTFをPDFに変換(3/3) PDFからのテキスト検索 PDFテキストからの指定キーワード検索 ページ単位でPDF分割 ページ単位でPDF分割(1/2) ページ単位でPDF分割(2/2) 複数PDF結合 choose fileコマンドで選択した複数のPDFを結合 PDF→他形式画像変換 ページ単位でJPEG画像に変換(1/2) ページ単位でJPEG画像に変換(2/2) 画像連結してPDF作成 フォルダ内のJPEG画像を新規PDFに連結 指定フォルダ下のすべての画像を新規PDFに連結 フォルダ内のJPEG画像を既存のPDFに連結 Multi Page TIFFからPDFへの変換 Multi Page TIFFからPDFへの変換(1/2) Multi Page TIFFからPDFへの変換(2/2) アラートダイアログでPDFを表示 アラートダイアログ+WkWebViewでPDFを表示 アラートダイアログ+PDFViewでPDFを表示 5章 PDF処理 上級編 PDFのパスワード、暗号化設定 PDFのアクセス権とパスワード パスワード設定をチェック 設定されているパーミッションを取得 PDFにパスワードを設定(1/2) PDFにパスワードを設定(2/2) PDFのパスワードを解除 PDFの空白ページ検出 PDFから空白ページを削除(1/3) PDFから空白ページを削除(2/3) PDFから空白ページを削除(3/3) PDFフォーム入力 PDFフォームにテキスト入力して別名保存(1/2) PDFフォームにテキスト入力して別名保存(2/2) PDFフォームにチェックボックス入力(1/2) PDFフォームにチェックボックス入力(2/2) Quartzフィルタ Quartzフィルタとは? QuartzFilter出力例一覧 Quartzフィルタの一覧を出力 白黒のQuartzフィルタをかけて出力 ブルートーンのQuartzフィルタをかけて出力 PDFX-3のQuartzフィルタをかけて出力 グレートーンのQuartzフィルタをかけて出力 明度低下のQuartzフィルタをかけて出力 明度上昇のQuartzフィルタをかけて出力 ファイルサイズ縮小のQuartzフィルタをかけて出力 セピアトーンのQuartzフィルタをかけて出力 PDFアノテーションを取得、追加、書き換え、削除 アノテーションについて アノテーションを取得 サークル・アノテーションを追加 スクウェア・アノテーションを追加 ライン・アノテーションを追加 テキスト・アノテーションを追加 URLリンク・アノテーションを追加(1/2) URLリンク・アノテーションを追加(2/2) 指定語群にハイライトを追加(1/2) 指定語群にハイライトを追加(2/2) 指定語群にアンダーラインを追加(1/2) 指定語群にアンダーラインを追加(2/2) 指定語群に打ち消し線を追加(1/2) 指定語群に打ち消し線を追加(2/2) PDFからすべてのアノテーションを削除 PDFのリンク抽出、リンク置換 PDFのリンク先は? リンクの各種情報を取得(1/2) リンクの各種情報を取得(2/2) リンク・アノテーションからURLを抽出 URLリンク・アノテーションを追加(1/2) URLリンク・アノテーションを追加(2/2) 書類内リンク・アノテーションを追加(1/2) 書類内リンク・アノテーションを追加(2/2) リンクアノテーションのURLを置換 PDFのOCR処理(OCRテキスト埋め込み) PDFのOCR処理(1/3) PDFのOCR処理(2/3) PDFのOCR処理(3/3) PDFのしおり(TOC)を取得、追加、削除 TOCの題名と階層が悩ましい(1/2) TOCの題名と階層が悩ましい(2/2) 指定PDFのTOCを取得してレコード化(1/2) 指定PDFのTOCを取得してレコード化(2/2) ノンブルだけのフラットなTOCを付加(1/2) ノンブルだけのフラットなTOCを付加(2/2) Recordデータから階層TOCを付加(1/3) Recordデータから階層TOCを付加(2/3) Recordデータから階層TOCを付加(3/3) Numbersの表データから階層TOCを付加(1/4) Numbersの表データから階層TOCを付加(2/4) Numbersの表データから階層TOCを付加(3/4) Numbersの表データから階層TOCを付加(4/4) 指定PDFのTOCを削除 添付サンプルScript紹介 資料編 理解度確認テスト