• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:iPhoneアプリ開発についての質問です)

iPhoneアプリ開発でPDFビューアの文字選択方法について

このQ&Aのポイント
  • 卒業研究でObjective-C言語を使用してPDF文書の編集アプリを開発していますが、Core GraphicsのCGPDF関数群では画像内の文字を選択できません。
  • CGPDFで画像として表示されているため、文字の選択ができないとのことです。
  • PDF文書の編集機能を実装したいため、文字を選択する方法や実装方法についてアドバイスをいただきたいです。

質問者が選んだベストアンサー

  • ベストアンサー
noname#177743
noname#177743
回答No.2

CFPDFというものを使わないといけないのですね。 Objective-Cはあまりやったことがなく、またCGPDFも使ったことがないのですが、Objective-CのPDFサンプルプロジェクトとしてPDFKittenというものがGitHubで公開されているようです。こちらはご覧になりましたか? この中のSelection.mあたりで選択テキストの処理をしているようにみえます。ちらっと見ただけなので詳細は不明ですが、参考になれば。 https://github.com/KurtCode/PDFKitten

1211takayuki
質問者

お礼

度々の回答ありがとうございました!紹介していただいたGitHubは全くチェックしていませんでした。 私も隅々までチェックしたわけではないので詳細は把握していませんが、かなり参考になる情報だという感触を得ています。ひとまず、こちらを参考にして実装してみようと思います。本当にありがとうございました!

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (1)

noname#177743
noname#177743
回答No.1

Objective-Cでは書いたことないんですが……、以前、Javaでエディタを自作したことがあります。GUI部品を並べるのでなく、すべて表示を描画で作って、エディタそのものを作るわけですね。 そのときに「テキストの編集」として実装したのは、ドラッグ開始地点から終了地点の位置を取得し、その位置に描画されているテキストを調べ、2点間に描かれているテキストを覆う領域を算出してその背景に選択色を加算し描画する、といった処理でした。つまり、「選択された状態のグラフィックを描く」わけです。 テキストデータは別に保持しておき、選択された位置の情報も別に保持しておきます。そこでカットの操作をしたらテキストデータのその部分をカットして表示を再描画。テキストを挿入するときもテキストデータに挿入をした後に再描画。という感じで、「操作したら常に再描画」でテキストを描き直す感じでした。 Javaの場合、テキストとフォントに関する細かな情報を取得できたのでこうした処理が割と簡単にできました。Objective-Cで可能かどうかわかりませんが、しかし基本的なアプローチはそんな形にならざるをえないと思います。

1211takayuki
質問者

お礼

回答ありがとうございます。私の説明が足りなかったので、再度アドバイスお願いします。 私が実装したPDFビューアが文字を選択できた際には、参考にさせていただきます。ですが、今の私のPDFビューアでは、ある領域を選択しようとドラッグしても、次か前のページにスクロールされるだけで編集領域を定めることが全くできない状況です。 ですので今の私が一番困っているのは、編集機能の実装方法よりも『PDF文書内の文字を選択できるようにするためにはどうすればいいのか』が分からないことです。 私の説明が分かりづらくてすみませんでした。もし、文字を選択できるようにするためにどうすればいいのか知っていましたら、再度アドバイスお願いいたします。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • 資格取得iPhoneアプリ開発を作りたい

    .NETのSEをやっております。 iPhoneのアプリ開発をするためにObjective-Cの勉強を始めました。 資格取得用のアプリを作りたいのですが、どのように作れば良いかイメージが湧きません。 どなたかご教示ください。 仕様は、問題がありその下に選択肢ボタン(アイウエオ)を4or5個配置します。 ボタン押下で正解・不正解と解説を表示し次の問題へ進めるようにしたいです。 ここで、画面の使い方ですが、1つの画面で実装すべきでしょうか? また、一番わからないのが問題や回答の保持の仕方です。 テキストやXMLファイルなどに保持するべきなのでしょうか? 参考になるサンプルなどがあれば非常に助かります。 お力添えお願いいたします。

  • iPhoneのアプリ開発についてお伺い致します。

    Xcodeの実装をお伺いしたいのですが,あるアプリ開発の本を参考にして、クイズアプリをつくりました。クイズの問題、選択肢のデータファイルはテキストファイルでResourceに作成します。問題文をテキストビューに、選択肢をボタンに記載し、選択肢のボタンを押す事で回答させるシステムです。正解のボタンをタップすると、ボタンの文字の先頭に○を、不正解だと×を表示するのですが、これに、不正解時に正解のボタンの先頭に★等の印をつける為のソースコードをご教示いただければ幸いです。因に、テキストファイルには、1行目;問題文、2行目;正解の選択肢、3~5行目;不正解の選択肢、となっております。 //選択肢のボタンがタップされたときの処理 - (IBAction)answer:(id)sender { //正解か不正解かを見せる間、タップできない様に、ボタンを無効表示に変更する。 self.answerButton1.enabled = NO; self.answerButton2.enabled = NO; self.answerButton3.enabled = NO; self.answerButton4.enabled = NO; //タップされたボタンのラベルを取得する NSString *str = [[sender titleLabel] text]; //出題された問題の情報を取得する QuizItem *item = [self.quiz.usedQuizItems lastObject]; //正解か判定する if ([item checkIsRightAnswer:str]) { //正解なので、○を先頭に追加する [sender setTitle:[NSString stringWithFormat:@"○ %@", str] forState:UIControlStateNormal]; //効果音を再生する AudioServicesPlaySystemSound(_rightSound); } else { //不正解なので×を先頭に追加する [sender setTitle:[NSString stringWithFormat:@"× %@", str] forState:UIControlStateNormal]; }

    • 締切済み
    • Mac
  • iPhoneのアプリ開発についてお伺い致します。

    Xcodeの実装をお伺いしたいのですが,あるアプリ開発の本を参考にして、クイズアプリをつくりました。クイズの問題、選択肢のデータファイルはテキストファイルでResourceに作成します。問題文をテキストビューに、選択肢をボタンに記載し、選択肢のボタンを押す事で回答させるシステムです。正解のボタンをタップすると、ボタンの文字の先頭に○を、不正解だと×を表示するのですが、これに、不正解時に正解のボタンの先頭に★等の印をつける為のソースコードをご教示いただければ幸いです。因に、テキストファイルには、1行目;問題文、2行目;正解の選択肢、3~5行目;不正解の選択肢、となっております。 //選択肢のボタンがタップされたときの処理 - (IBAction)answer:(id)sender { //正解か不正解かを見せる間、タップできない様に、ボタンを無効表示に変更する。 self.answerButton1.enabled = NO; self.answerButton2.enabled = NO; self.answerButton3.enabled = NO; self.answerButton4.enabled = NO; //タップされたボタンのラベルを取得する NSString *str = [[sender titleLabel] text]; //出題された問題の情報を取得する QuizItem *item = [self.quiz.usedQuizItems lastObject]; //正解か判定する if ([item checkIsRightAnswer:str]) { //正解なので、○を先頭に追加する [sender setTitle:[NSString stringWithFormat:@"○ %@", str] forState:UIControlStateNormal]; //効果音を再生する AudioServicesPlaySystemSound(_rightSound); } else { //不正解なので×を先頭に追加する [sender setTitle:[NSString stringWithFormat:@"× %@", str] forState:UIControlStateNormal]; }

  • iPhoneアプリの開発についてです。

    iPhoneアプリにディレクトリ階層を管理し、テーブルビューに表示する機能を実装中です。 パスの後ろに、"/○○○(ディレクトリ名)"という文字列を足して指定のディレクトリのパスを取得し中のファイルやフォルダの一覧を取得するという手法を用いています。 次のディレクトリに進む分には問題ないのですが、元のフォルダに戻るときに問題が生じてしまいます。 セルをタップすることで元のパスの後ろに選択したフォルダの名前を足していますが、ナビゲーションコントローラーで戻る際にパスの後ろに足されたフォルダ名を取り除かなくてはなりません。 もちろん戻るボタンが押されたことを検知するコードを調べたのですが、 -(void) viewWillDisappear:(BOOL)animated { if ([self.navigationController.viewControllers indexOfObject:self]==NSNotFound) { //ここでパスから文字列を取り除く } [super viewWillDisappear:animated]; } これではルートフォルダ→次のフォルダの間でしか検知されません。僕がやりたいのはルートフォルダ→次のフォルダ→次のフォルダ→・・・とすべてのフォルダ間の戻るボタンの検知をしたいのです。 didSelectRowAtIndexPathメソッドに UITableViewController *nextDir = [[UITableViewController alloc] init]; nextDir.tableView.delegate = self; nextDir.tableVIew.dataSourse = self; と記述することで、ストーリーボードにいくつもコントローラーを置かずにテーブルビューにディレクトリの内容を表示しています。 自前のコントローラー→nextDir間の戻るボタン検知は先ほど乗せたコードで検知できましたが、nextDir→nextDir間の戻るボタン検知はどうすればいいでしょうか? 簡単ですが説明図を作ってみました。わかりにくかったらすみません。

  • GoogleMapのマーカー画像をonTapで拡大

    AndroidのネイティブアプリとしてGoogleMapのMapViewをつかった 地図アプリを勉強がてら作っています。 MapViewにはItemizedOverlayでマーカーを表示させていますが、 あるマーカーがタップされた際に、タップされたマーカー画像を 他のマーカーと区別できるように拡大表示したり、または別の画像を 表示させたりしたいのですが、ItemizedOverlayの機能として実装することはできるのでしょうか? また参考になるサイトがあればURLを教えてください。 よろしくお願いします。

  • PDFの編集とは・・・

    PDFファイルの文書を書き換える必要が出まして、今はじめてAcrobat5.0を使用しております。(会社で大分昔に購入したもの) 凄く基本的な事で申し訳ないのですが、PDFファイルの編集というのは、例えばワードの文書をPDF化したものを、Acrobatで開いても、同じくワードのように文書を書き換えたりは出来ないのでしょうか? 6.0からはOCR機能等もあって、それでテキストを抽出するような話を他の方の質問から見たのですが、PDFが編集できるという「編集」の意味は、PDF化された文書を打ち直したり出来るというわけではないという事でしょうか。 Acrobatで打った文字は開き直しても編集できるのですが、本当にPDFを全然知らなくてAcrobatさえあれば出来ると思っていたので… また、上記のような編集が可能なソフトというのはあるのでしょうか。 急いでいてまとまりの無い文章で申し訳ありませんが、分かる方がいらっしゃいましたらご教授ください。

  • Acrobat XI 文字認識させる方法は?

    初めて質問します。 質問:Adobe Acrobat XI Pro 体験版をインストールしたiMac(OSはヨセミテ)と、   複合機(EP-903A)でスキャンさせたA4用紙に印刷されている文字を、文字認識   させる方法があれば、教えてください。 背景:元ファイルが無い文書(A4用紙に印刷済み)から、テキストを取り出し(文字   認識させて)、一部修正をかけて、PDFまたはWord形式で保管したいのです。       Acrobat XI 体験版上から直接、複合機のスキャン機能で文書をスキャンします。   Acrobat XIのセールスポイントである、PDF画面上でテキストを修正する機能が   使えないです。( このページには編集可能なテキストが含まれていないか、スキャン したコンテンツが含まれていることが検出されました。このような文書を編集する には、コンテンツ編集パネルの「ファイルを書き出し」オプションを使用して、別の 形式に変換してみてください。と表示されます。)    Acrobat XIの製品版を購入すると、文字認識機能が使えますか? もしかして、   画像としてスキャンしたものは文字認識は出来ないのでしょうか? 幸い、Word   文書に変換することは出来たのですが、誤認識が多くて。直接、PDF文書を編集した   いと思いました。  うまく伝わっているか、心配ですが、宜しくお願いします。

  • pdf文書内にある文字を1文字単位で画像化したい

    お世話になります。 pdf文書内にある文字を1文字単位で画像化したいと 考えております。 ※OCRではなく、画像化したいのです。 有償・無償どちらでも結構ですので、 そのような変換機能が付いたソフトを教えて頂けないでしょうか? 何卒よろしくお願いします。

  • スキャナーした文書(jpg)の訂正編集

    キャノンMP630で、スキャナーした文書(jpg or pdf)の加筆訂正・画像編集を行いたいのですが、MSペイント(jpgのみ )以外に、スキャナー文書(jpg or pdf)の加筆訂正・画像編集が、目立たないフリーソフトはないでしょうか。 MSペイントでは、文字のフォントが限定的なんで・・・

  • 画像から文字認識できるソフト

    JPGやGIFなんかかの、スキャンした画像から、文字認識できるソフトってありますよね。 こういう機能のあるフリーソフトってないですか? もしくは、体験版とかでないでしょうか。 それか、 画像をPDFに変えて、そのPDFをワード等の文字を編集できるデータ-変換する、というのは可能でしょうか? (いきなりPDFとかを使って)