[AH Formatter V6.6] OpenType の MATHフィーチャに対応

2018年8月30日にリリースいたしました新バージョン『AH Formatter V6.6』から対応された MathML に関する機能についてご紹介いたします。MathML は W3C が定めた数式記述言語となります。詳しくお知りになりたい方は弊社より販売、公開中の「数式組版入門」を是非ともご覧ください。

本題に戻りますが『AH Formatter V6.6』では数式用の OpenType フォントに含まれる、MATHフィーチャに対応しました。MATHフィーチャには数式の配置、サイズ調整などレイアウトするための多くの情報が含まれています。次の画像は『AH Formatter』の V6.5 と V6.6 で MathML を描画した一例となります。

OpenType の MATHフィーチャの組版例

各数式を組版している数式フォントは V6.5 が STIX、V6.6 が STIX Two Math となります。
STIX Two Math は MATHフィーチャを含みますが、STIX は含みません。

V6.6 では MATHフィーチャの処理により分数式の割線と分子分母との間隔が文字毎に調整され、
積分記号などもフォントに含まれている MATHフィーチャの情報を元にしたグリフを採用します。

MATHフィーチャの機能はオプション設定ファイル enableOpenTypeMATH によって設定を変更できます。enableOpenTypeMATH に指定できる機能名キーワードはマニュアルにてご紹介しております。enableOpenTypeMATH の設定により MATHフィーチャの処理そのものを有効・無効することや特定の処理だけを有効・無効にすることも可能です。

MATHフィーチャ対応のほか『AH Formatter V6.6』の詳しい機能については、製品ページをご覧ください。
V6.6 の新しい機能

評価版をご用意しております。是非、お試しください。
AH Formatter 評価版のお申し込み

 


Antenna House Formatter V6.6 のご紹介

2018年8月30日に XML/HTML 自動組版ソフトのベストセラー『AH Formatter』をバージョンアップした『AH Formatter V6.6』を公開しました。

AH Formatter ロゴ

『AH Formatter』は XML で記述されたマニュアル、契約書、報告書・書籍などを XSL-FO または CSS によりレイアウトを指定して、PDF に出力したり印刷するソフトウェアです。

XSL-FO は W3C が XML に対するレイアウト指定の標準として勧告している世界標準です。国内外で『AH Formatter』は最も優れた XSL-FO 準拠製品との評価を確立しており、現在、自動車、携帯電話、航空機、OA機器のメーカ等のマニュアル制作システムなど数千社のお客様にお使いいただいています。

『AH Formatter』は Webページ用に普及している技術である CSS もご利用いただけます。CSS3 のページモデルにも対応しているため、高品質なページ組版が実現できます。

マニュアルのような複雑なレイアウトには XSL-FO を、比較的単純なレイアウトには直感的な CSS をお薦めしています。

詳しくは製品ページをご覧ください。

AH Formatter の組版フロー

 
続きを読む


PDF Viewer SDKでPDF自動印刷

「pdf 自動印刷 コマンド」などで検索すると、たくさんのPDFファイルを一括印刷するために、Adobe Reader や Adobe Acrobat をバッチファイルやPowerShell/VBスクリプトなどから利用して、PDFファイルを自動で印刷する工夫をされている記事を多く見かけます。
『Antenna House PDF Viewer SDK』はWindows向けのPDFビューアー開発ライブラリですが、PDFの印刷機能も持ちます。この機能を使うと、Adobe ReaderやAdobe Acrobat がなくても、自由に印刷を制御するコマンドラインプログラムやサービスを開発することができます。この機能についてご紹介したいと思います。

印刷プログラムの開発には「PDF Viewer API」を利用します。C++/C APIのDLLです。
印刷処理は基本的には次の順序で用意されたAPIを呼び出します。

  1.  PDFファイルをオープンする。
  2.  PDFファイルの印刷を開始する。
  3.  ページ番号を指定してPDFページを印刷する。必要に応じて繰り返す。
  4.  PDFファイルの印刷を終了する。
  5.  PDFファイルをクローズする。

2の印刷開始時に、印刷先のプリンタや印刷設定を指定できます。

  • 印刷先指定(デバイスコンテキスト)
  • 印刷設定
  • 印刷ジョブの指定
  • 用紙選択(ページに合わせ自動選択、指定された用紙サイズを使用)
  • 用紙に合わせる/大きいページを縮小、拡大縮小率指定
  • ページへの配置(中央配置、左揃え、右揃えなど)

Windowsの一般的な印刷プログラムの話になりますが、印刷設定はDEVMODE構造体で指定します。このデータに必要な設定をすることで、

  • 用紙の向き
  • 用紙サイズの指定
  • 両面印刷

などの指定をすることもできます。

3でページの指定順序をかえることで、

  • 先頭から順に最後のページまで順に印刷
  • 指定ページのみ印刷
  • 指定部数や、部単位の印刷
  • 逆順に印刷

といった細かな制御をプログラム自身で行うことができます。

この処理を基本として

  • フォルダーを監視してフォルダー内のPDFを自動で一括印刷
  • 印刷ダイアログを出さずにサイレント印刷
  • ファイル名やフォルダーによってプリンタや印刷設定を変更して振り分け印刷
  • PDF Viewer SDK のウォーターマーク機能を使って、透かし強制的に挿入して印刷

といった、さまざまな形の印刷プログラムを開発することができます。

以上、PDF印刷機能のご紹介でした。 PDF印刷の自動化が必要になったら『Antenna House PDF Viewer SDK』をぜひご検討ください。

詳しい機能についてぜひ製品ページをご覧ください。
製品ページ:
https://www.antenna.co.jp/oem/ViewerSDK/

評価版をご用意しております。ぜひこの機会にお試しください!
評価版のお申し込み:
https://www.antenna.co.jp/oem/ViewerSDK/trial.html

お問い合わせ:
SDKは OEM販売 となります。OEMご相談窓口 へお問い合わせください。


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巻も社内にて鋭意製作中です。
ご期待ください。


Pages: Prev 1 2 3 4 5 6 7 8 9 10 ... 178 179 180 Next