月別アーカイブ: 2017年8月

PDFをWordやExcelに変換したいけれど、どんな製品がいいのかよく分からない…(2)

PDFを再利用する場合、元となるPDFは内容によって以下の2種類に分けることができます。

1)テキストが含まれているPDF
2)テキストが含まれない画像だけのPDF

1)の「テキストが含まれているPDF」とは、WordやExcelなどで文字入力しPDF化したものが該当します。
このようなPDFからの変換には、『瞬簡PDF 変換 9』が適しています。

瞬簡PDF 変換 9』は、PDFにテキスト・データが含まれていればそれを解析してWordやExcelに変換します。テキスト・データをそのまま変換するため文字化けしたりすることなくWordやExcel形式に移して再利用可能になります。

変換されたいPDFにテキスト・データが含まれるかどうかは、Adobe Reader などでPDFを表示して[編集]メニューから[すべて選択]をクリックしてみてください。
テキスト・データが以下のように反転表示されれば、テキストが含まれるPDFだと判別できます(※)。

pdf

テキストをすべて選択

 

※ スキャナーで作成された画像には、スキャナーがOCR処理をかけてテキスト・データをPDFに埋め込むことがあります(透明テキストつきPDF)。この場合は同じようにテキスト部分が反転して表示されます。

2)の「テキストが含まれない画像だけのPDF」とは、紙の書類をスキャナーで読み取ってPDF化したものなどが該当します。
このようなPDFは文字と見える部分も画像でしかないため、そのままWordやExcel形式に変換しても編集のできない画像が貼り付きます。
このようなデータに対しては「OCR」といって画像から文字を認識する機能を使うことでテキスト・データを取り出すことができます。ただし、OCR処理では画像の状態により文字が正しく認識できず、文字化けしてしまうことがあるため注意が必要です。

紙に印刷された内容をWordやExcelで再利用されたい場合は、『瞬簡PDF OCR』が適しています。

瞬簡PDF OCR』はOCR専用製品で、スキャナーからの直接読み込みにも対応しています。
読み込んだ画像はOCR処理し、誤認識した文字を画面上で修正したり編集したりしながら、変換結果に反映させることができます。
(製品の仕様上、常にOCR処理をかけるため、テキスト・データがあらかじめ含まれているPDFを変換する用途には適しません。)

なお、『瞬簡PDF 変換 9』にもOCR機能があり、画像データからテキスト・データを認識して変換することができます。
ただし、スキャナーからの読み込み機能や誤認識した文字を画面上で修正する機能はありません。

瞬簡PDF OCR』は紙の書類の再利用をされたい場合に適しているのに対し、『瞬簡PDF 変換 9』は内容に関わらず複数のPDFを一括して変換されたいような場合に適していると言えます。

どういったPDFを再利用されたいかによって、いずれの製品を選択するかご検討いただければ幸いです。

PDFをWordやExcelに変換したいけれど、望み通りに変換してくれるか心配…

PDFをWordやExcelに変換したいとお考えの場合、どれだけ正確に変換できるかが気になることと思います。
上記2つの製品にはそれぞれ体験版をご用意しておりますので、その変換精度や使い勝手を事前にご確認いただくことができます。

ただし、体験版では以下のような制限がありますので、あらかじめご了承ください。

  • インストールしてから 15日を過ぎると利用できなくなります。
  • ひとつのPDFについて、3ページまで変換可能です。
  • 評価以外の目的で日常業務に利用することはできません。

体験版に関する詳細は、『瞬簡PDF 変換 9 体験版のお申し込み』、または『瞬簡PDF OCR 体験版のお申し込み』をそれぞれご参照ください。


PDFをWordやExcelに変換したいけれど、どんな製品がいいのかよく分からない…(1)

弊社伊那支店の近くには、春に桜で賑わう高遠という町があります。
江戸時代は高遠藩の城下町だったところで、そこかしこに古い時代の面影が残り普段はとても閑かな町です。
そこは、高遠石工と呼ばれる石工集団が活躍したところでもあり、城下の寺には名工といわれた守屋貞治が刻んだ数々の仏さまが遺されています。

正観世音菩薩

正観世音菩薩

写真が下手でうまく伝えられませんが、石なのに柔らかくて温かい表情が何ともいえず好きです。時間と興味のある方は、是非一度現地を訪ねてみてください。

閑話休題。

PDFは紙に代わるデジタルな文書形式として、すっかり身近なものになりました。もともとは閲覧や印刷用途で普及したPDFですが、WordやExcelのように自由に編集して再利用したいというニーズも必然的に増えています。

そのようなニーズに応えてご用意しているのが、弊社のパッケージ製品『瞬簡PDF 変換 9』と『瞬簡PDF OCR』です。

いずれも、PDFをWord(ワード)/Excel(エクセル)/PowerPoint(パワーポイント) の各文書形式に変換することでPDFの再利用が可能な製品です。

なぜPDFから変換をするのに2つも種類があるの? とは、よくお問い合わせをいただくご質問です。

次回は、2つの製品の違いを元になるPDFの観点からご説明します。


CAS-UB にデジタル出版機構様の Picassol のXML のインポート機能を追加!

弊社で開発したクラウドサービス「CAS-UB」の「外部データの入力」機能に、新たに出版デジタル機構様が開発した「Picassol」で整理済みのXMLファイルをインポートする機能を追加しました!

「Picassol」とは、(株)講談社と日本電気(株)が共同開発した高機能編集プログラム Smart Source Editor(スマート・ソース・エディター、以下SSE)をクラウドサービス化したもので、文章の構成や校閲、ルビ付けなどをクラウド上で自動で再編集することも可能です。(公式サイトより引用 http://www.pubridge.jp/picassol/)

保存形式ファイルは、XMLファイルで採用しており、紙媒体、電子媒体向けに汎用性高く扱う事ができ、また、XML内のタグもわかりやすく構成されており、タグを再構成することで、Webページとして扱う事もできます。

今回追加した機能は、その「PIcassol」の整理済みXMLのファイルのタグの情報を元に読み込み、CAS 記法に書き換えて出版物の記事としてインポートする機能になります。
主な特徴として、まず、「Picassol」で編集した文章を大まかなスタイルと合わせてそのままインポートする事ができ、インポート時は、見出しレベル章(レベル1)、節(レベル2)、項(レベル3)ごとに記事をツリー構造の状態で分割することができ、また、その分割するレベルも選択することが可能です。さらに、文字列に添えた注釈とその注釈の内容、ルビもそのまま反映されます。

機能につきましての詳細は、以下になりますので、是非利用してみて下さい!!
http://www.cas-ub.com/outline/picassol-import.html


DLLを作るときの注意事項

WindowsでDLLを作るときには注意事項がいろいろあります。
どの言語で開発するかを問わず必ず問題になるのは、

  • 呼び出し規約
  • DLLヘル
  • メモリの確保と解放
  • 構造体のパディング
  • 例外
  • スタックサイズ
  • FPU制御レジスタ、MXCSRレジスタ

くらいでしょうか。

C++の場合は更に、

  • STLの公開と非互換性
  • クラスの公開
  • オーバーロード

などが追加されます。

ネット上でこれらの問題と解決法(諦めることも含めて)を見つけることはできますが、「FPU制御レジスタ、MXCSR」についてはDLLと絡めた情報は見つかりません。

FPU制御レジスタ、MXCSRレジスタの設定値はコンパイラによって変わります。
FPU制御レジスタの初期値はVCでは0x027f、VB6は0x137f、Delphiは0x1372で全て値が違います。実行中に変えることもできます。
DLLは自分の呼び出し元がどれで作られているかは関知しないので、制御レジスタがどんな値でも対応できなければなりません。

基本的には公開関数の最初で制御レジスタを都合のいい値に変更し、最後で呼び出されたときの値に戻せばOKです。
関数からEXE側にコールバックする等、モジュールを越える場合は都度対応が必要です。

この問題はわかりにくい形で発生します。
以前弊社で利用したOCRライブラリではDelphiからの呼び出しで認識精度がガタ落ちしました。
また弊社PDFDriverに対して16bitのVBアプリからの印刷で例外が出ることがありました。
いずれもFPU制御レジスタの設定で解消できましたが、OCR問題の時はこれを知らなかったのでかなり解決に時間がかかりました。

EXE制作で外部のDLLを利用する場合に、サンプルコード通りなのに結果がおかしい、VCからならOKなのにVC以外からだと同じ入力でも結果が違う、という問題がおきたらFPU制御レジスタを変えると期待通りの動作になるかもしれません。

VCではFPU制御レジスタの初期値は0x027f、MXCSRレジスタの初期値は0x1f80です。


Microsoft Edge で PDF ファイルを扱いにくい

以前、「Windows 10 では Microsoft Edge の一機能として PDF 表示が行えるようになっています。」と紹介しました。
Windows 10 の PDF 表示機能

Microsoft Edge には、実際に Edge アプリを起動したあとでは PDF ファイルを開こうとしてもできない、という奇妙な制約があります。

PDF ファイルを Edge のウィンドウにドラッグ&ドロップしても受け付けられず、 ローカルファイルの一覧を表示して開くファイルを選択できるようなインターフェースもありません。

Edge で PDF を開くためには、PDF ファイルの関連付けアプリを「Microsoft Edge」に変えてからエクスプローラー上でファイルを開く操作をするか、
kanrenduke
エクスプローラーの右クリックメニューで「Microsoft Edge」を選ぶという操作が必要になります。
explorer-menu

 

ドラッグ&ドロップでファイルを開けないのは、今まで Windows を使ってきた経験上、かなり不便に感じます。
何か理由があってドラッグ&ドロップ操作は禁止されているのかもしれませんが、筆者の使っている他の PDF 閲覧アプリ(下記)ではそのような制限はありません。そのため筆者の普段使いのリストからは Edge は外れています。
—-
Addobe Acrobat Reader DC
PDF-XChange Editor
Google Chrome
—-

IE11 で PDF のドラッグ&ドロップでの表示が可能か試してみると、それは可能でした。
ただ、筆者の環境では Acrobat Reader のアドオンが使用されていて、Edge のコンポーネントが使用されるわけではありませんでした。
これでは、Acrobat Reader DC を単体で利用するのとあまり変わりません。
ie11-pdf


プログラミング小噺三題その2

Objective-Cに嵌る

Objective-CはCの系列なのでクラスを宣言するヘッダファイル(.h)とクラスを実装するソースファイル(.m、.mm)がある。同期通信を非同期通信に置き換える改造(元は私のコードではない)で、色々書き換えてるうちにどうにも全く動かなくなった。以下、クラスの宣言はヘッダファイルでする必然性はないが、機能のモジュール化等の現実のプログラミングの流儀を前提とした話なので、クラスの宣言=ヘッダファイル、ということで了承願いたい。

詳細に調べて判明したのは、ヘッダファイルにメソッドの宣言があって、ソースファイルに実装がなくてもXcodeではビルド・サクセスとなり、リンクエラーにはならないということだ。C++はオブジェクト指向言語としては偽物なので、存在しないのに呼ばれてるメソッドはリンクエラーになるのだが、Objective-Cはメソッド呼び出しがきちんとダイナミックになってるので実行時に解決することになる。で、解決できないとどうにも全く動けない。

問題のソースファイルをコンパイルするとちゃんとWarningが出ていた。ヘッダファイルに書いてあるメソッドが見つからないぞと。綴りが間違ってた。Objective-Cはヘッダファイルに宣言のないメソッドはクラス内でのみ使える、C++でいうところのプライベート扱いになる。それが仇になった。綴りを間違えたメソッドは正当にプライベートメソッドになっていた。C++だとプライベート(クラス内でのみ呼べる)だろうとパブリック(どこからでも呼べる)だろうとヘッダファイルに書かないといけないので、綴りの間違いはそもそもコンパイルエラーになる。Objective-Cはヘッダファイルに記述することなく自由にプライベートメソッドを書ける、すなわち再コンパイルが発生しにくいという、マシンパワーが貧弱(最初のNeXTはMC68030)な時代の要請が言語仕様に反映されており、コードの改造には微妙に不便だと再認識した。わざとコンパイルエラーを発生させてそこの記述を書き換えるというのが昔ながらの常套手段だからだ(なので、LLで書かれたプログラムの改造は勘弁して欲しい)。そういえば以前も同じように綴り間違いで慌てたことがあるのを思い出した。

AppleのAPIリファレンスに憤る

AppleのAPIリファレンスのページでNSURLSessionを調べる。downloadTaskWithURLメソッドをブラウザのページ内検索で探す。見つからない。目で探すとある。まさかとdownloadTaskWithURLを選択してコピー、テキストエディタにペーストするとdownload Task With URLとなる。アチャァ。しかも単なる空白が埋められてるのでなくU+200Bだ。ゼロ幅スペースだよこれ。これ決めた人はプログラマに恨みでもあるんですか? 頭おかしいザマス。Appleの製品向けにプログラムなんて作るなってことかいな。
Firefoxでは見つからないがSafariでは見つかる。Edgeでは見つからないがChromeでは見つかる。WebKit系の方が優秀ですよとでも言いたいのか。downloadTaskWithURLとdownload Task With URLは違うだろ、メソッド名は分解して良い何かではない。

OCamlnetに落胆する

「OCamlnet Http_client」でWeb検索すると、Http_client.Convenienceを使ってみた系の頭の悪い話ばかりでウンザリする。Cookieをセットしたりとか細かく制御したいからプログラムを書くんであって、Http_client.Convenienceでは仕様が大雑把過ぎて使えない。まだしもwgetの方が色々できる。
Http_clientの使い方はHttp_client.pipelineが関係してることまでは突き止めた。つうかマニュアルのHttp_client.pipelineのところにExampleが書いてある。ダウンロードのプログレスを出したいんだが、どうもよく分からん。プログレスが出せないならHttp_client.Convenienceでも同じ。

OCamlnetを調べて判ったのは、ダウンロードするときにどのくらい済んだのかの経過を表示したい、という私の目的はちょっとやそっとでは達成できないらしいこと。OCamlnetはなるほど壮大なフレームワークのようで、色々取り揃えているようだ。だが、ガイドの説明にて「The Netchannels tutorial – strongly recommended read!」なんて書いてあるから読んでみたが、単に独自のI/Oデスクリプタの説明だった。Http_clientを調べてる私には一切無関係。
単にhttps接続されたWeb上のファイルをダウンロードしたいだけだってのにpipelineやらcontextやらtransportやらequeueやらengineやらあまりにも普通名詞過ぎて意味不明な独自概念が目白押し。あぁ、なんだ、世界系だったのか。こういうのチマチマ構築するのって楽しいんだろうなぁ。結局経過表示をする方法は発見できなかったわけで、縁があったらまた会いましょう、さようなら。せめてPythonのurllib2とか.NETのWebClientくらいに扱いやすければ文句もないんだが。

結局自分でUnix.socketを使って書いたHTTP GETをするコードを元に、Socket通信をOCamlの外部ライブラリのSslに置き換えることで実現。さらにはファンクターにして、httpとhttpsでコードを共有した。C++なら仮想関数で実現するようなことはOCamlではファンクターで合ってるんだろうか。五十嵐淳さんの入門書に「一部だけ異なる似たようなモジュールを何度も書く面倒をなくし」とあるから多分合ってるんだろう。


「Antenna House AHPDFXML 変換ライブラリ V2.0」の利用例

「Antenna House AHPDFXML 変換ライブラリ V2.0」は、PDFファイルの内部データを、XML(Extensible Markup Language:拡張可能なマークアップ言語)形式に変換するプログラムです。このライブラリが出力するXML形式を「AHPDFXML形式」と呼びます。PDF解析技術により文書構造を生成して、再利用に適したXMLデータを出力します。

「AHPDFXML形式」で表現された様々な情報から、必用な情報を読み取ることでPDFのデータを簡単に再利用できます。

  • 文字や画像の位置情報を利用することで、任意の範囲に含まれるデータを取り出せます。
    例えば、アンケートに使用したPDFの回答欄の文字列だけ取り出すことができます。
    例えば、特定の文字列や画像を含むPDFを探すことができます。
  • 表構造をデータベースに取り込むことにより、データのグループ化がおこなえます。
    PDFには表と言う概念はありませんが「AHPDFXML形式」は、表構造(行列及びセル)を生成します。
    これにより、文字としてでは無く、表としてデータを再利用できます。
    例えば、表構造をCSVに落とすことにより、表計算ソフトに取り出込めます。

XMLで表現することによって、データの扱いが容易になります。
XMLのメリットを最大限に活かしてPDFデータを活用できます。
弊社ウエブサイトより評価版の申し込みが可能です。是非ご評価ください。

製品に関するご質問は
sis@antenna.co.jp(SYSTEM担当)
または
oem@antenna.co.jp(OEM担当)
まで、お気軽にお問い合わせください。

評価版のお申込
評価版のお申込ページ

Webページ
http://www.antenna.co.jp/pdfxml/