🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
Visual Studio

Microsoft Visual StudioはMicrosoftによる統合開発環境(IDE)です。多種多様なプログラミング言語に対応しています。

PDF

PDF(Portable Document Format)とはISOによって国際標準として制定されている電子ドキュメント用の拡張子です。

C++

C++はC言語をもとにしてつくられた最もよく使われるマルチパラダイムプログラミング言語の1つです。オブジェクト指向、ジェネリック、命令型など広く対応しており、多目的に使用されています。

Q&A

解決済

3回答

12365閲覧

Visual Studio 2019 C++ で、PDF を扱いたいのですが、適切なライブラリは何でしょうか

TAKASE_Hiroyuki

総合スコア21

Visual Studio

Microsoft Visual StudioはMicrosoftによる統合開発環境(IDE)です。多種多様なプログラミング言語に対応しています。

PDF

PDF(Portable Document Format)とはISOによって国際標準として制定されている電子ドキュメント用の拡張子です。

C++

C++はC言語をもとにしてつくられた最もよく使われるマルチパラダイムプログラミング言語の1つです。オブジェクト指向、ジェネリック、命令型など広く対応しており、多目的に使用されています。

0グッド

0クリップ

投稿2019/12/24 11:17

#背景
Windows10 上で Visual Sdutio 2019 C++ でアプリケーションを開発しようとしています。まだ、VC++ を触ってから1か月程度の初心者です。表題に書いてあるとおり、PDF ファイルを扱いたいと考えていますが、とっかかりがつかめません。

#やりたいこと
たとえば、アンケート用紙が 50枚ほどあったとして、それを連続してスキャンすると PDF ファイルができます。使用する機器としては、たとえば、次のようなものを想定しています。
ScanSnap iX500
このような PDF ファイルをページごとに画像として認識し、その画像データを CImage 等で処理したいと考えています。

#ソースコード
現時点では、ソースコードは、ありません。

#エラーメッセージ等
現時点では、エラーは発生していません。

#疑問点
このような作業は、Windows 10 の標準 WinAPI で実行することは可能なのでしょうか。それとも、何らかの「フリーのライブラリ」を使うべきなのでしょうか。いろいろと検索したり、teratail 内を調べたりしたのですが、うまくヒットしませんでした。

御多用中恐縮ですが、「こういうふうに検索すると情報が出てくるよ」ということでもよいので、御教授いただければ幸いです。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

SHOMI

2019/12/26 01:35 編集

画像だけが必要なら、はじめから画像としてスキャンすればいいのではないでしょうか。それとも画像とは別にPDFファイルも残しておく必要があるのでしょうか? 原稿そのままの画像ではなくOCR処理後のPDFファイルを画像化したいと言うことでしょうかね?
TAKASE_Hiroyuki

2019/12/26 01:40

御質問いただき、ありがとうございます。 質問の前半に書いてあるとおり、アンケート用紙みたいなものを大量にスキャンして PDF ファイルとして保存し、その PDF ファイルを読み込んで処理するということを念頭に置いています。実際のユーザーさんは、「この機械に、この用紙を、こっち向きに置いて、このボタンを押してください」というレベルの御案内が必要な人たちです。この場合、大量の画像データが発生すると、その画像データをそもそも処理することが難しいと考えられます。 OCR を活用した処理については、将来的にありえますが、当面は「画像だけ」の処理になりそうです。
guest

回答3

0

PDFのレタリングエンジンといえばChromeに組み込まれているPDFiumとかでしょうか。

多分C#でラップしているヤツのほうが使いやすい可能性があります(使ったことないし知らんけど
https://github.com/cube-soft/Cube.Pdf/

いずれにせよできればPDFとか関わり合いになりたくないものです。ろくなもんじゃない。

投稿2019/12/24 17:22

yumetodo

総合スコア5852

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

TAKASE_Hiroyuki

2019/12/24 19:29

御回答いただき、ありがとうございました。 PDFium についは、今回、初めて知りました。今後、じっくり調べてみたいと考えています。なお、teratail 内で PDFium について、どなたかが言及されているだろうかと検索してみたところ、本件のみが該当しました。yumetodo 様がおっしゃるとおり、皆様、苦労されているんだろうなあと感じた次第です。
yumetodo

2019/12/25 02:39

そもそもPDFってテキストを選択するときに「ユーザーはおそらく正しい順番でテキストを選択しようとする」みたいな仮定を使う場合すらあるそうで・・・
guest

0

私も以前、pdfについて研究していた時期があったのですが、出力用のライブラリはlibHaruやGhostscriptなどがあるのですが、入力用のものはびっくりするほど少ないです。検索で出てくるものといえば下記のものぐらいです。
https://www.antenna.co.jp/pdfviewersdk/
PDFは想像以上に多機能で、機能を限定した読み取りであれば個人でもなんとかできるかもしれないレベルなのですが、汎用的なライブラリともなると、企業レベルでないとまず作成できないのが原因でしょう。

ただ、画像を抜き出す原理は説明できるので、それだけ書いておきます。

PDFファイル内の「オブジェクト」一覧をファイル末尾のテーブルから読み取る。
各オブジェクトに対し、画像かどうかの判定を行う。
画像を出力する。

https://itchyny.hatenablog.com/entry/2015/09/16/100000
このURLが参考になりますよ。

投稿2019/12/24 12:23

majiponi

総合スコア1722

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

TAKASE_Hiroyuki

2019/12/24 19:34

御回答いただき、ありがとうございました。 アンテナハウス社の製品について調べたところ、個人的に利用する場合でも、10万円の経費が必要らしいです。なるほど、個人が簡単に触るものではないのかも知れないなと感じました。 また、「2015-09-16 詳細PDF入門 ー 実装して学ぼう!PDFファイルの構造とその書き方読み方」も拝読しました。「なるほど、PDF の基本的な構造はこういう風になっているんだな」と、大変勉強になりました。ありがとうございました。 今回、私が扱おうとしているデータは「画像だけ」です。したがって、majiponi 様がおっしゃるとおり、「各オブジェクトに対して、画像かどうかの判定をする」だけで対応できそうなのですが、アプリケーションのユーザーがどのような PDF ファイルをもってくるかは予想がつきません。皆さんに使っていただきながら、少しずつ機能拡張していくことになりそうです。
guest

0

自己解決

解決ではないのですが、次の質問に継続させていただき、引き続き勉強しようと考えております。

https://teratail.com/questions/231802

投稿2019/12/26 00:17

TAKASE_Hiroyuki

総合スコア21

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.36%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問