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

Office Server Document Converter(OSDC)はOffice サーバー サイド オートメーションの夢を救うか?

24時間かけて視聴率をすくい終わる頃には秋の声が聞こえ始めるのですが、今年はまだまだ油断できない暑さが続きそうです。ご自愛ください。

さて、Office サーバー サイド オートメーションの代替案は、OSDCで決まりでしょう!というお話です。

デスクトップ環境で使い慣れているMS-Officeの機能を、サーバ上で活用(Office文書の作成と編集、印刷)したいという要望は、ゆく河の流れのうたかたの如く、絶えまなく浮かんでは消えて往きます。

「結論からお伝えしますと Office のサーバー サイド オートメーション (非対話型オートメーション) を、マイクロソフトはサポートしておりません。」と言い切られていますが、推奨もサポートもしないが止めもしないというスタンスは、技術者のチャレンジャー魂に火をつけるのかもしれません。

そこで、実際にサーバサイドでOffice文書を作成する需要があるのかを考えてみました。

サーバ上のファイルをやむを得ず編集する必要があった場合、手元にダウンロードし編集したうえで再アップする方が簡単ではないか。手元にMS-Officeが無いという状況については、また別の話になりますが。
既存の文書にコメントや注釈を書き加えるのであれば、PDFを編集する製品(瞬簡PDFシリーズ)で十分に対応できますし、サーバ上で加工がしたければ最適な製品(PDF Tool API )もあります。
そもそも「生の」office文書をサーバにため込んで「かきかき」する必要はないと思うのですが、いかがでしょうか。

そうなりますと、サーバ上でユーザーが必須と考える機能とは、Microsoft Officeの印刷レイアウトを再現する汎用性の高いファイル形式(PDF等)に変換することではないか。
ということで、Office Server Document Converter(OSDC)の登場となります。

OSDCは、作成元のアプリケーションを使用せず、且つ、プリンタドライバも使用しない「ダイレクト変換」を採用しています。
また、Microsoft Office、OpenOfficeにも依存せずに、アンテナハウスが30年以上蓄積した独自技術を使って、自力でレンダリングしています。
したがって、Linux環境でもOfficeドキュメントを変換することが可能で、驚くほど高速に変換できるのです。

サーバー上でのOfficeドキュメントの処理において、印刷レイアウトを再現できることが一番重要と考えたとき、Office Server Document Converter(OSDC)で決まりでしょう!

OSDCに関する詳しい情報は、
製品ページ
を、ぜひ、ご覧ください。

評価版もご用意しております。
評価版のお申し込み
から、お申し込みください。

参考資料:http://support.microsoft.com/kb/257757/ja


Office Server Document Converter は返り点をどこに付けるのか?(夏休み自由研究より)

アンテナハウス商品の中で屈指の長い製品名が「Office Server Document Converter」です。
通常は「OSDC」と略して表しますが、別に恰好を付けているわけでは無く、長くて単語の順番を取り違えて客先で自社の製品名を間違えないようにするためのようです[要出典]。

名は体を表すなどと言いますが、製品名を聞けばその特色が一目瞭然に解るようにと、特色を表す4つの単語を組み合わせています。
単純に上から読めば、Office(事務所)のServer(サーバ)でDocument(文書)をConvert(変換)する製品となるのですが、ちょっと何か違いますね。

英単語に日本語の助詞を補うと、昭和40年代の無国籍アクション映画の「謎の外国語」かバブル期のギョーカイ人が発する「業界用語」みたいで胡散臭いので、英語の助詞とか関係詞を補完してやろうかと思いましたが、学生時代にテストで●点を取った黒歴史が頭をかすめて指が止まりました。「Hey, Siri!」教えて!

昨年、諸事情により改名するまでは「Server Based Converter」と呼ばれていましたが、これはGoogle翻訳で「サーバーベースのコンバーター」と翻訳されるので(マンマじゃないか!)、何となく解ったつもりになれます。

改名にあたり新たに「Office」と「Document」の二つの単語を加えているところが重要なところでして、そもそも「Office」は「Microsoft Office」を指しています。「事務所」などとはとんだ大ボケ。
そして、「Document Converter」と続けることで、変換の対象は文書なのだということをより明確にしています。実際、「Converter」で検索すると動画と音声の変換が上位になるので、このあたりをハッキリさせることは大事です。

つまり、Microsoft Office(Office)の文書(Document)をサーバ(Server)上で変換する製品(Converter)となるのです。
これは「Office Document」を「Office サーバー サイド オートメーション」を気にすることなくサーバ上で変換できるのですよ(すごいでしょう)、と自慢しているわけです。

そうなると「ODSC」で良かったのでは、という声も聞こえてきます。
「Office Document」と続けずに「Server」を間に置いて「Document Converter」となるにあたっては、大論争が繰り広げられたそうですが[要出典]、両論併記することで決着をみました。
実は、Office Server Document Converterの「Server」の後ろに「返り点(レ点)」が隠されているのです。見えませんでしょうか。
「Office Server Document Converter」

このような経緯を経て、「Microsoft Office の文書をサーバ上で変換するDocument Converter」という製品の特色を網羅する製品名が生まれたのでした。

ということで、USのスタッフも交えて命名した「Office Server Document Converter」が、実は「漢文」だったという驚愕の事実が明らかにされたところで、今回はこれまでにしたいと思います。

※「Office Server Document Converter」の名前の由来については諸説ございます。


『瞬簡PDF 変換 10』は第30回Vectorプロレジ大賞 PDF 部門賞を受賞しました!

このたび、弊社のPDF変換ソフト『瞬簡PDF 変換 10』は、第30回Vectorプロレジ大賞において、PDF部門賞を受賞いたしました。

Vectorプロレジ大賞は半期に一度ずつ開催されて期間内にもっとも人気のあったダウンロードソフトを決定するもので、今回で30回を数えるそうです。

この伝統あるイベントで『瞬簡PDF 変換 10』は、2018年上半期のPDF部門賞をいただくことができました。
第30回Vectorプロレジ大賞 PDF 部門賞

多くのユーザー様のご投票により受賞できましたことを、開発メンバー一同、心より感謝申し上げます。また、今回の受賞を励みにして、さらなる製品の改善に取り組んで参りたいと存じます。

今後とも弊社製品をご愛用いただけますよう、よろしくお願いいたします。

結果発表は以下のサイトでご覧いただけます。
祝30回Vectorプロレジ大賞 結果発表

『瞬簡PDF 変換 10』は、ご購入前に変換精度や使い勝手をご評価いただけるよう、以下のサイトで体験版を用意しております。
瞬簡PDF 変換 10 体験版のお申し込み

15日間無料でお試しいただけますので、どうぞお気軽にお申し込みください。


PDF Tool API でカスタムプロパティ

今年の暑さは人だけでなく植物にもつらいものがあります。庭木も葉先が茶色になり悲鳴をあげています。地植えとはいえさすがに水やりをやらなくてはならない状態です。とはいっても庭土は乾燥しきっていて少々の水やりでは焼け石に水状態です。
猫の額ほどの庭ですが、20~30分かけて垂れ流し状態で水をやっています。

さて、PDFは文書情報として「タイトル」「作成者」「サブタイトル」「キーワード」の設定ができますが、 違う名前で独自のものを設定したいということもあります。そこで、PDF Tool APIではカスタムプロパティとして、任意の名前と値を設定できるようにしました。
設定したカスタムプロパティはAdobe Readerでも確認することができます。

PDFToolAPI
●製品詳細ページ
『Antenna House PDF Tool API 』


猛暑を乗り切るための「瞬簡PDFシリーズ」

今年は、例年になく厳しい暑さが続いています。
大昔でしたら、火星の接近も原因の一つとされそうです。
ちなみに火星は和名で「夏日星」ともいうそうです。

それにしても、連日の熱帯夜、突き刺す日差しが体にこたえますね。
せめて作業は手早く合理的に進めたいものです。
日々PDFファイルと格闘する、あなたの強い味方といえば、、、

そう、瞬簡PDFシリーズ です!

  • Officeファイルでも画像でも、まとめてシュッとPDFに変換しましょう。
    瞬簡PDF作成
    透かしやセキュリティも一度にまとめて設定できます。
  • ページの移動や削除なども画面上でスッとできます。
    瞬簡PDF編集
    注釈の追加や本文編集もできます。
  • PDF上に直接書き込めます。
    瞬簡PDF書けまっせ
    申請書の記入などで大活躍です。

その他にもいろいろな製品がありますが、これさえあれば大丈夫。
すべてセットになっています。

瞬簡PDF統合版 をどうぞ!

どの製品を使えばよいか迷ったら?製品ナビゲーター
↓↓
PDFのやりたいことから探す!アンテナハウスのデスクトップ製品

を参考にしてみてください。


C++の劇的な進化に圧倒されるModern C++

C++は、アンテナハウスでは主力のプログラミング言語です。Java, Scala, C#, JavaScript, Python, PHPなども製品、サービス、社内利用では使われていますが、多くの製品は、C++で書かれています。
C++で書かれた中核コードの古いものは、数10年経っています。
その間に、C++は、C++11, C++14, C++17とずいぶんと進化し、3年ごとに新規格にするので、もうすぐC++20になります。以下では、C++11以降のC++をModern C++と呼ぶことにします。
アンテナハウスでも、いつまでも古いC++のコードを書き続けるわけにはいかないので、昨年くらいから、Modern C++に移行するために、勉強会をしたりしています。

忘れないように先に書いておきますが、アンテナハウスでは、C++の経験者を募集中です。詳しくは、
経験者採用情報
をご覧ください。多くの方のご応募をお待ちしております。

Modern C++を勉強し始めて驚いたのは、古いC++から、あらゆる面で劇的に進化していること、そして、いまも進化を続けていることです。3年ごとに新規格にすることになったのが、着実に、そして劇的に進化した大きな要因だと思います。

Modern C++で劇的に変わった点を、思いつくままに挙げるだけでも、

  • 型推論
  • using
    もうtypedefは使わない。
  • スコープ付き列挙型(scoped enum)
  • 各種スマートポインタ
    もう生のポインタを使うのは、Cのレガシーコードとインターフェースするときのみ。
  • 右辺値、右辺値参照、ムーブセマンティクス、ムーブコンストラクタ、ムーブ代入演算子
    Modern C++以前は、あいまいだった所有権や一時オブジェクトの扱いを明確化したことで、ムーブによって無駄なコピーを減らして、高速なコードが書けるようになった。
  • ラムダ式(クロージャ)
    プログラミング言語としては、Lispが50年前に導入したものが、ようやく入った。
  • テンプレートプログラミングの劇的な強化
    constexprによるコンパイル時計算の強化。コンパイル時にいろいろ調べられるメタプログラミング機能、SFINAEをやりやすくする機能の強化。
    SFINAE
  • 上記に伴う標準テンプレートライブラリSTLの変更

などなど、たくさんあります。

C++とプログラミングパラダイムの関係を考えると、C++は、

  • Cの命令型プログラミング(手続き型プログラミング)に、オブジェクト指向プログラミングを追加
  • GenericsとTemplateによる汎用テンプレートプログラミング

といったマルチパラダイム言語に進化してきました。
Modern C++は、汎用テンプレートプログラミングというパラダイムをさらに推し進め、テンプレートメタプログラミング(TMP, Template Meta Programming)を強化し、流行りの関数型プログラミングの強化も抜かりなくやっていて、マルチパラダイム言語としてますます強力になった印象です。

古いC++では、テンプレートメタプログラミングは、そのエキスパートしか書けない黒魔術の世界でした。それが、中級のスキルがあるC++プログラマなら書ける程度には楽になりました。
しかも、ネイティブコンパイルですから、実行スピードは、RubyやPythonといったスクリプト言語に比べ桁違いに速く、JavaやScalaと比べても速い。
スマートポインタを使えば、以前のようなメモリの管理の面倒もなくなり、ガベージコレクションがあるJava, Scalaやスクリプト言語のように楽に書けます。
さらにいえば、型推論と関数型プログラミングの強化によって、個人的には、Scalaのようになってきた印象があります。
型推論のおかげで、テンプレートプログラミングが非常に楽になりました。型推論がないテンプレートプログラミングは、プログラマにとって地獄ですからね。

とまあ、いいことづくめのModern C++ですが、既存のコードをModern C++に全部書き変えるのは、事実上不可能なので、新しく書くコードをModern C++で書こうとしています。
しかし、ここで商用ソフトならではの問題があって、お客様の中には、古いC++でシステムを構築していて、ランタイムライブラリの関係で、容易には、Modern C++の環境に切り替えるのが困難なお客様がいらっしゃいます。
たとえば、Visual C++ 2005(!)どころか、Visual C++ 6.0(!!)の環境でシステムが動いているところがあるのです。
もう1つの問題は、マイクロソフトのC++は、GCCやClangに比べ、現時点では、規格の準拠度がまだまだで、Modern C++の機能を駆使したコードが正しくコンパイルできないといった問題もあります。

ということがあるので、移行はゆるやかにやっていくと思いますが、Modern C++を使うことで、速くクリーンで、拡張性、保守性もいいコードにして、お客様に少しでも早く、いい製品をお届けしたいと思っています。

最後になりますが、ご参考までに。
Modern C++の規格やライブラリの解説は、次が非常によいです。
cpprefjp – C++日本語リファレンス
たとえば、
言語機能
を読めば、C++11, C++14, C++17, C++20と、何がどれくらい変わっているかがわかります。
また、次も非常に参考になります。
C++リファレンス


PDF Tool API を使ってみよう(印鑑をPDF上に設定する)

現在PDF CookBook 巻1、巻2が現在発売中です。
この本は弊社製品PDF Tool APIを使ってできるPDFの加工について実例を挙げながら解説した本です。『PDFへの変換』はともかく、『加工』と言われてもイメージが湧きにくい方もいらっしゃると思いますので、今回は「印鑑をPDF上に印字する」という加工を例に取り、この本及びPDF Tool APIの内容を少し紹介してみたいと思います。

今回印鑑を貼り付ける対象として以下のPDFデータを用意しました。
receipt (PDF)

「印鑑をPDF上に印字する」という同一の目標のためにPDF Tool APIでは、以下の3種類のアプローチができます。

◆ 1.画像ファイルで指定する

印鑑画像をPNG形式で用意し、それを対象PDFに貼り付ける方法です。貼り付けた状態が以下の画像です。
PDF Tool API PNG01 (画像はPNG形式以外も指定可能ですが、白抜き部分の透過情報を保持できないbitmapやJPEGなどは後ろに文字などが入ると文字が消えてしまうため、避けた方が無難です。PDF Tool APIが対応している画像ファイルは、bitmap/JPEG/PNG/Tiff/マルチページTiffです。)扱える画像がビットマップ画像でベクター形式ではないため、拡大するとジャギー(ギザギザ部分)や元画像が持っていたにじみが見えてしまいます。
PDF Tool API PNG02

画像ファイルで指定した場合のメリットは

  • 画像データで印鑑を用意するサービスが多く、印鑑データを作成・加工しやすい
  • PDF Tool API側で透明度を指定することができるため、印鑑部分を半透明にできる
    といったものが挙げられます。

今回は以下の印鑑画像ファイルを指定して貼り付けました。
PDF Tool API PNG03

◆ 2.ステンシルマスクで指定する

ステンシルマスク機能を利用して、印鑑を描画する方法です。
印鑑画像の印鑑部分が黒、白抜き部分を白で塗ったモノクロbitmapデータを用意し、ステンシルマスクに使う色を印鑑の朱肉の色(色は任意指定可)で指定して対象PDFに貼り付けると、以下の画像のように印鑑を再現することができます。
PDF Tool API masking01
こちらもマスク指定する画像がビットマップ画像のため、拡大するとジャギーが見えてしまいます。PDF Tool API masking02単一色での塗りつぶしのため、にじみは生じていません。
ステンシルマスクで指定した場合のメリットは

  • bitmapで指定するためににじみが生じない
  • 透明度及び透過に関する情報を扱わないため、PDF1.3のPDFに対しても互換性を保ったまま加工することができる。

といったものが挙げられます。
(※ PDF各バージョンにおける描画関係の違いについては、こちらのサイト《PDFのバージョンと各バージョンの特徴と解説―吉田印刷所》に分かりやすい表が掲載されています。)

今回は以下のモノクロbitmapデータをステンシルマスクで指定しました。
Masking_stamp.bmp (ZIP)

◆ 3.PDFで指定する

ベクタ形式で用意した画像をPDFに変換し、それをPDF Tool APIで貼り付ける方法です。貼り付けた状態が以下の画像です。
PDF Tool API PDF01 PDFの作成にひと手間必要ですが、ベクタ形式画像を用いているため、このように拡大してもジャギーは生じません。
PDF Tool API PDF02

PDFで指定した場合のメリットは

  • ベクタ形式のため拡大してもにじみが生じない
  • PDF Tool API V6.0 であれば印鑑部分を半透明で描画することができる

といったものが挙げられます。

今回は以下のPDFファイルを指定して貼り付けました。
PDF_stamp (PDF)

今回、印鑑の貼り付けをテーマにPDF加工法を紹介しましたが、いかがでしたでしょうか。
このようにPDF Tool APIでは目的に応じて様々な形式で画像を扱うことができます。
「1.画像で指定して印鑑を描画する」及び「3.PDFで指定して印鑑を描画する」についてはPDF CookBook第1巻でサンプルプログラム付きで紹介しています。
また、今回取り上げたトピック以外にも、PDF CookBookでは様々な加工方法を紹介しています。

それぞれ PDF CookBook第1巻 では

  • ページの順序、サイズの設定
  • 本文への文字・画像・他のPDFのページ要素挿入

等の内容について、PDF CookBook第2巻 では

  • パスワードによるセキュリティ設定
  • 透かし機能の追加
  • しおり情報の編集・作成

等について解説しております。

それぞれアンテナハウスオンラインショップ及びAmazonpプリントオンデマンドにて好評販売中です。
また、現在、PDF CookBook第3巻も社内にて鋭意製作中です。
ご期待ください。


『Antenna House PDF Tool API』(PDF Tool API)でPDFに含まれる画像を保存する

『Antenna House PDF Tool API』(PDF Tool API)は、PDFファイルの情報取得やPDFファイルの加工・編集を行うライブラリです。
PDFに関するさまざまな処理機能を搭載しています。
文書情報やページ数などの情報取得、ページの挿入や削除、透かしの挿入、セキュリティ設定などのファイル加工、ページコンテンツのテキストや画像の削除、画像の最適化(ダウンサンプリング)といったページ編集処理が可能です。

今回は『Antenna House PDF Tool API』(PDF Tool API)を使用して、PDFの中に含まれる、すべての画像を、外部ファイルとして保存してみたいと思います。

Javaサンプルコード

Javaサンプルコード(SearchImageAndExport)のダウンロード (zip)

関数 subSearchImageAndExport にて、画像を検索して、ファイルとして保存しています。

入力サンプルPDF

sample

出力サンプル画像(1)


出力サンプル画像01

出力サンプル画像(2)


出力サンプル画像02

PDFに含まれる、すべての画像を、簡単に取り出すことが可能です。
PDF Tool API には、このほかにも便利な機能が沢山あります。ぜひご検討ください。

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

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

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


『Antenna House PDF Tool API』(PDF Tool API)で墨消しを自動化してみる

『Antenna House PDF Tool API』(PDF Tool API)は、PDFファイルの情報取得やPDFファイルの加工・編集を行うライブラリです。
PDFに関するさまざまな処理機能を搭載しています。
文書情報やページ数などの情報取得、ページの挿入や削除、透かしの挿入、セキュリティ設定などのファイル加工、ページコンテンツのテキストや画像の削除、画像の最適化(ダウンサンプリング)といったページ編集処理が可能です。

今回は『Antenna House PDF Tool API』(PDF Tool API)を使用して、PDFの文字列に対して、墨消しの自動化を行ってみたいと思います。
墨消しの対象となる文字列を検索、文字列に対して墨消しを設定、最後に文字情報が消されているのかチェックします。

Javaサンプルコード

Javaサンプルコード(SearchTextAndSetMask)のダウンロード(ZIP)

関数 subSearchTextAndSetMask にて、文字列検索と墨消しの設定をしています。
その後、関数 subSearchText にて、再度文字列検索を行い、文字情報が消えたかチェックしています。

入力サンプルPDF

pdftool.6.0.sample

出力サンプルPDF(文字列「Antenna」を指定して墨消し)

入力サンプルPDF

出力サンプルPDF(文字列「PDF」を指定して墨消し)

pdftool.6.0.case2

Javaサンプルコードで、墨消しの設定は、わずか7行ほどです。
大量のPDFであっても、bat的に呼び出すだけで、一括で墨消しを設定することも可能です。
PDF Tool API には、このほかにも便利な機能が沢山あります。ぜひご検討ください。

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

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

Webページ
https://www.antenna.co.jp/ptl/


プリントオンデマンド本で変わるソフトウエア製品のマニュアル提供形態

ソフトウエアの分野では利用者向けのドキュメントが重要な意義を持ちます。プログラミング言語やIT技術に関する本もそうですが、ソフトウエア製品を使うにも優れた技術ドキュメントが必須です。

技術ドキュメントが優れているかどうかで製品の販売額も変わってくるのだろうと思います。

さてそうしたドキュメントができたとして、ドキュメントを利用者の手元に届ける必要があります。ドキュメントの配布形態や配布方法は一昔前と比べて、抜本的に変化しました。

弊社のデスクトップ製品マニュアルの提供方法について、20年前と現在を比較してみますと:

20年前(1998)のソフト製品販売
・製品はCD-ROMに収容して紙マニュアルを同梱したパッケージで販売
・マニュアルは印刷製本して製品に添付

現在(2018)のソフト製品販売
・製品はオンラインショップからダウンロードしていただいたり、CD-ROMに収容して紙マニュアルを同梱したパッケージで販売(パッケージ版)
・マニュアルはPDF版を製品に同梱してPCにインストール
・Webマニュアルをホームページに掲載
・紙版をPODでアマゾン、hontoなどより販売(但し、一部製品)

製品の提供方法の変化としては、ダウンロード販売が増えてきたことがあります。

また、マニュアルの提供形態も、紙(アナログ)主体からデジタル主体へとシフトしました。デジタル版ではWebマニュアルとPDFになっています。

そしてアナログの紙は、以前はデフォルトで同梱でしたが、現在はオプションで有償に変更しています。

PDFを製品に添付しているにも関わらず、紙版が売れるのだろうか? という疑問をもたれる方が多いと思いますが、やはり紙を望まれる方が一定の割り合いでいらっしゃいます。次は、アマゾンなどより販売しているデスクトップ製品マニュアルです。最近の「CAS電子書籍」では、『瞬簡PDF書けまっせ7』のマニュアルが一番人気です。

昔は本の流通は、出版社⇒取次⇒書店といった経路を通していて、本として販売するためには結構沢山の部数を印刷・製本して準備する必要がありました。このため多品種少量な本の提供が難しかったのですが、近年はプリントオンデマンドで本の販売が簡単にできるようになり、提供形態の選択肢が増えたことが一番ありがたく感じます。

プリントオンデマンド(POD)の紹介

このようなドキュメント制作・配布形式の多様化は、弊社の「デジタル出版物制作Webサービス CAS-UB」です。

CAS-UBご案内Webサイト


Pages: 1 2 Next