Antenna House Formatterよくいただくご質問

基本・一般

XSL-FO を学習するのに適した本はありますか。

XSL-FO プロセサを利用する人向けの解説書として、弊社から「XSL-FO の基礎」を出版しています。 全文を Webで公開していますのでご利用ください。

CSS組版と XSL-FO組版の選択において、考慮すべき点はなんですか。

CSS組版は、比較的シンプルな構造やシンプルなレイアウト(例:HTMLの組版や帳票の組版など)に向いています。マニュアル等、複雑なレイアウトの文書には XSL-FO組版をおすすめします。
XSL-FO組版と CSS組版

XML+XSL と XHTML+CSS の違いを教えてください。

CSS は HTML のスタイルを指定するための言語ですが、XSLスタイルシートは XML形式の文書を XSL-FO であったり、XHTML であったり、さまざまな文書に変換する言語です。
『Formatter』 が組版するのは、XSL-FO文書や (X)HTML文書((X)HTML+CSS)です。そのため、XML文書と XSLスタイルシートが 『Formatter』 に与えられた場合、『Formatter』 は外部の XSLTプロセッサを利用してそれらを XSL-FO または HTML に変換してから組版します。組版の流れは、マニュアルの「製品概要」-「組版の流れ」に詳細を記載しておりますのでご覧ください。

MathML とはどういうものですか。

MathML(マスエムエル)とは、Mathematical Markup Language の略で XML形式で数式などの数学的記述を表現するためのマークアップ言語です。数式「x+2」であれば次のような記述で表現されます。

<math><mi>x</mi><mo>+</mo><mn>2</mn></math>

<mi>は変数など識別名、<mo>は +,- などの演算子、<mn>は数値を表します。

弊社では MathML を使って数式組版を行うための入門書も出版しております。PDF形式で無料公開しておりますのでご参考にしてください。
MathML 数式組版入門

MathML を 『Formatter』 で組版するにはどうすればよいですか。

MathML を組版させるには FO、HTML、XHTML へ直接書き込む方法と、作成した MathML ファイルを外部参照(リンク)させ画像などと同列に扱う方法があります。なお、どちらの組版方法でも MathML かどうか判定される条件を満たしている必要があります。直接書き込む場合の判定条件は FO、HTML、XHTML によって異なります。MathML ファイルの判定条件は math 要素に MathML の名前空間(xmlns="http://www.w3.org/1998/Math/MathML")が指定されていることです。正しく判定、組版されることで MathML が PDF へ出力できます。
詳しくは「MathML を組版して PDF にするにはどうするか。」をご覧ください。

エリアツリーの仕様は公開されていますか。

エリアツリー(AreaTree)を組版した結果は保証しておりませんが、情報資料として GitHub に公開いたしました。
エリアツリー文書

自動組版の元となる XMLデータや XSLデータはどのように作成するのですか。

元となるデータの運用及び作成方法はお客様によりさまざまです。『Formatter』 では導入事例をご紹介していますが、御社に合った方法がございますので、細かな点についてのご相談・お問い合わせは sis@antenna.co.jp にご連絡ください。

DITA などのコンテンツ制作における XSL-FOファイルの処理は 『Formatter』 で可能ですか。

可能です。詳しくは、「DITA を PDF にする」をご覧ください。

JATS の実績があれば教えてください。

『Formatter』 の JATS の実績としては、中西印刷様の事例があります。ほかにも JATS の組版に 『Formatter』 が採用されている実績はありますが、非公開としています。
『Formatter』 を使った日本語全文 XML(JATS)組版(中西印刷株式会社様)
なお、弊社は「学術情報XML推進協議会 XSPA」の会員であり、JATS の普及のために XSLT スタイルシートをオープンソースとして公開しています。
JATS を組版する XSLT スタイルシートの紹介

マニュアルの自動組版に関する採用事例を教えてください。

マニュアルの事例は次のページをご覧ください。
『Formatter』 導入事例紹介
日本における DITA の採用事例
さらに詳しくお知りになりたい方は sis@antenna.co.jp にお問い合わせください。

Formatter について(一般的なお問い合わせ)

『Formatter』の動作環境を教えてください。

対応OS は、マニュアルの「製品概要」-「動作環境」に詳細を記載しておりますのでご覧ください。

『Formatter』のバージョン情報を確認する方法はありますか。

Windows版であれば GUI のメニューバーの [ヘルプ]-[Antenna House Formatter Vx.x について] を選択することでライセンス情報とバージョン情報がダイアログ内に表示されます。その他では、コマンドラインインターフェイスで -v パラメータを指定して実行することで、バージョン情報が表示されます。それらのバージョン表記は、
"Antenna House Formatter Vx.x R1 ..." であれば初版、
"Antenna House Formatter Vx.x MR1 ..." は改訂1版(MR1)、
"Antenna House Formatter Vx.x MR2 ..." は改訂2版(MR2)、
を示します。

『Formatter』 を 64ビット環境で使用する場合、64ビット版の 『Formatter』 を使用することになると思いますが、『Formatter』 を使用するアプリ自体は 32ビットアプリとしてコンパイルしたいのですが、問題ないでしょうか。

『Formatter』 32ビット版は 64ビット OS環境にインストール可能ですので、アプリケーションを 32ビットとしてコンパイルするのであれば、『Formatter』 も 32ビット版をご利用いただく選択肢があります。『Formatter』 64ビット版をご使用されるのであれば、事前に評価版で動作をご確認ください。
なお、64ビット OS環境で 『Formatter』 32ビット版を動作させる場合は、各インターフェイスの利用において次の注意事項があります。

  • .NET インターフェイス:/platform:x86 を指定してください。
  • COM インターフェイス:32ビット版の WSH(C:\Windows\SysWOW64\cscript.exe)を使用してください。
  • Java インターフェイス:32ビット版の JDK を使用してください。
  • C/C++ インターフェイス:Win32 プラットフォーム用にコンパイルしてください。

『Formatter』 を仮想化環境に導入する場合に、制限事項はありますか。

『Formatter』 を仮想化環境(VMware や Hyper-V など)で実行する場合、仮想化環境で実環境上と同じ動作が保証されている場合は、機能制限はありません。

Dockerイメージはありませんか。

『Formatter』 は Linux 64ビット版のコマンドラインインターフェイスの Dockerイメージを Docker Hub で公開しています。既に該当バージョンの Linux 64ビット版をご利用いただいている場合は、そのライセンスファイルで Dockerイメージの実行が可能です。評価をご希望の方は、弊社システム営業グループ sis@antenna.co.jp までご連絡ください。
Dockerイメージの詳細とその実行方法など詳しくは、「Dockerイメージ」のページをご覧ください。

『Formatter』 をクラウドサービスに導入する場合に、制限事項はありますか。

クラウドサービス上の OS が 『Formatter』 が動作保証するものであれば問題ありません。例えば、弊社でも内部で 『Formatter』 を使用しているクラウド型デジタル出版物制作 Webサービス CAS-UB を 2011年より実運用しております。

『Formatter』 はスレッドセーフな実装がされていますか。

『Formatter』 はマルチスレッドアプリケーションとして設計されています。

同時処理実行数の制限等はありますか。

特に制限はありませんが、メモリを大量に消費するような文書の場合は、マシンのメモリ容量が相応分必要です。

『Formatter』 の Javaインターフェイスはなにでビルドされていますか。

『Formatter』 の Javaインターフェイスは、Windows版では J2SE5.0、 Linux 64ビット版では Java SE 8、Amazon Linux 2 Graviton2版では OpenJDK 8、Macintosh 64ビット版では Java SE 6 を使ってビルドされています。

ロングパスに対応していますか。

『Formatter V7.4』の Windows版では、Windows 10 のバージョン 1607 以降で、長いパスのファイルを扱うことができます。ただし、環境変数 TMP または TEMP に長いパスは設定できません。

『Formatter』 の ECCN を教えてください。

『Formatter』 の ECCN(輸出規制品目分類番号)は「EAR99」です。

インストール・アップグレード・ライセンスファイルについて

『Formatter』のバージョンと改訂版とはどのような意味ですか。

バージョンとは、「Vn.m」形式で表記されるメジャーバージョン(n)とマイナーバージョン(m)の組み合わせです。nの増加をメジャーバージョンアップ、mの増加をマイナーバージョンアップといいます。
改訂版とは新旧バージョン番号(Vn.mのnとm)が同一でリリース日のみが新しくなっている製品をいいます。メンテナンスリリース(MR)と呼ぶこともあります。バージョン番号の後にMR番号が表記されます。

『Formatter』 のバージョンアップを検討しています。バージョン間の相違や対応方法を教えてください。

バージョン間の相違やその対処方法については、マニュアルの「技術」-「以前の版との組版上の相違」に詳しく掲載しています。ご覧ください。

製品版のライセンスを購入したので、評価版を正式版にしたいがどうしたらよいですか。

電子納品の納品物(下記)の中に、ライセンスファイル(ファイル名:AHFormatter.lic(正式ライセンスファイル))があります。評価版インストール先フォルダにあるAHFormatter.licを納品物中の正式ライセンスファイルに入れ替えてください。

システム製品納品物:
・ライセンスファイル
・システム製品ライセンス証書
・システム製品「通常保守サービス」約款
・ソフトウエア製品使用許諾契約書
・保守契約のご案内 ※保守更新時の納品のみ

評価版をインストール後に改訂版(MR)がリリースされた。その後、製品版を購入したが、アップデートはどのような手順になるでしょうか。

Windows版のとき、評価版と製品版のバージョンが同じでリリース日が新しく(改訂版に)なっている場合は、次の手順でアップデートできます。順序はどちらでも構いません。

① 旧評価版をインストールしたフォルダに改訂版(最新版)を上書きインストールする。
② インストール先のライセンスファイルを正式ライセンスファイルに入れ替える。

Linux版やMacintosh版は、旧評価版を一旦アンインストールしてから、改訂版をインストールし、その後に正式ライセンスファイルを配置します。

ライセンスファイルに記載されている情報を確認するにはどうしたら良いですか。

コマンドラインで AHFCmd.exe -v を実行すると、ライセンス情報を画面に表示できます。

バージョンアップの際、旧バージョンをアンインストールする必要がありますか。

『Formatter』は、異なるバージョンを1台のPC上にインストールすることができます。実運用する製品を旧バージョンから新バージョンに移行するときは、旧バージョンのインストール先にある正式ライセンスファイルを削除し、新バージョンのインストール先に正式ライセンスファイルを入れてください。ひとつの正式ライセンスで2つのバージョンを実運用することは許諾されていません。

必要なライセンス数のカウントの仕方を教えてください。

仮想化環境でないときのライセンス本数のカウントは CPU のソケット数を基準とします。複数の CPU でお使いになる場合は、CPU の個数分のライセンスが必要です。なお、シングルコアCPU も、デュアルコアCPU も、CPU数を 1個とカウントします。詳しくは、「ライセンス案内」-「ライセンス数のカウント基準」をご覧ください。

Linux版のアンインストールはどのように行いますか。

Linux版はrpmパッケージとして提供していますので、rpm -eコマンドでアンインストールします。次に環境変数を設定している場合は削除します。環境変数については、マニュアルの「環境変数」をご覧ください。

『Formatter』の改訂版(MR)は上書きインストールできますか。そのときファイルはどうなりますか。

Windows版の場合、改訂版を上書きインストールできます。上書きインストールでは、実行バイナリファイルは日付とファイルバージョンを確認して新しいものに置き換わります。オンラインマニュアルなどの非実行ファイルは日付を確認して新しいものに置き換わります。ライセンスファイルは置き換えません。
Linux版及び Macintosh版は上書きインストールできません。改訂版をインストールする前に旧版をアンインストールしてください。

『Formatter』をバージョンアップするとき、ライセンスファイル(AHFormatter.lic)の入れ替えは必要ですか。

メジャーバージョンアップでは、ライセンスファイルの入れ替えは必須です。マイナーバージョンアップでは保守期限内にリリースされたバージョンであればライセンスファイルの入れ替えは必須ではありません。
保守契約期限内であれば、メジャーバージョンアップ用の新しいライセンスファイルは、保守契約窓口(hosyu@antenna.co.jp)に請求して入手できます。

『Formatter』を改訂版に更新するとき、ライセンスファイル(AHFormatter.lic)の入れ替えは必要ですか。

『Formatter』の改訂版リリース日が、ライセンスファイルに記載されている保守期限内であれば、ライセンスファイル置き換えは必須ではありません。ライセンスファイルに記載された保守期限を過ぎてからリリースされた改訂版を使用するには、保守期限を更新したライセンスファイルに入れ替える必要があります。

『Formatter』の正式版を使用していました。改訂版が出たので上書きインストールして起動したところ、評価版のメッセージが出力されます。なぜでしょうか。

ライセンスファイルの保守期限が切れていると考えられます。保守期限を更新したライセンスファイルに入れ替えていただく必要があります。ライセンスファイルについては「ライセンスファイルに関して」を参照してください。

保守契約期間終了後でも現在使用している『Formatter』はこれまでどおり動作しますか。

現在ご使用中の『Formatter』はこれまでどおり動作します。ただし、保守期間終了後以降にリリースされた改訂版(MR)を使用すると、評価版として動作します。もしそうなった場合は、保守期間終了前にリリースされた版を再インストールしてください。

バージョンの移行をしたところ、評価版のメッセージが出力されます。新しいライセンスの発行はどこに連絡すれば良いですか。

製品のバージョンアップは保守契約窓口(hosyu@antenna.co.jp)で承っております。年間の保守サポートサービスの期限内ですと、無償でバージョンアップが可能です。

「保守更新のご案内」のライセンスファイルの適用手順に「当該製品を使用しているシステムを停止します」とあるが、どういった意味ですか。

2023年3月以前の保守更新時に同梱していた「保守契約のご案内.pdf」に記載されているライセンスファイルの入れ替え手順には不要な手順が含まれています。現在は、以下のとおり訂正いたしました。

〇 ライセンスファイルの入れ換え手順
1) 添付ファイル内の製品シリアル番号フォルダに、ライセンスファイルがあることを確認してください。ライセンスファイルの拡張子は、.lic または .dat です。
2) 当該製品のインストール先、または【マニュアルに記載されている】配置先にある、同名のライセンスファイルのバックアップを取ってください。
3) 弊社当該製品を終了してください。
4) 1)の新しいファイルを、2)の古いファイルに上書きしてください。

VC++ランタイムのインストールなしで『Formatter』を動作させることはできますか。

Windows版の『Formatter』は、MicrosoftのVisual C++(VC++)を使用して開発されています。したがって、開発に使用したVC++のバージョンとバイナリ互換のランタイムライブラリーが必須です。『Formatter』の旧バージョンでは、インストール時にVC++のランタイムをインストールするかどうか問い合わせていました。しかし、最近のバージョンではこの問合せを廃止し、『Formatter』のインストーラがVC++の再頒布可能パッケージのインストーラを起動するようになっています。

インストール先のPCに、VC++のランタイムが存在している場合はどうなりますか。

『Formatter』のインストーラはMicrosoftのVisual C++の再頒布可能パッケージのインストーラを起動します。お使いの環境に古いVC++のランタイムが存在するとき、通常は、MicrosoftのVisual C++の再頒布可能パッケージが新しいものに置き換わります。このとき、Windowsの再起動を要求されることがありますので、ご注意ください。

(Windows版)バージョンのアンインストール後にバージョンアップを実施したところ、「セットアップ失敗」画面が表示されます。本エラー画面を閉じるとインストールは継続し、正常終了するようですが本手順で問題ないでしょうか。

より新しいランタイムが存在するとき、Microsoft Visual C++の再頒布可能パッケージのインストーラが、「セットアップ失敗」画面を表示することがあります。この場合、エラー画面を閉じるとインストールが継続し、正常終了します。「セットアップ失敗」が表示されても『Formatter』をご使用いただく上では問題ありません。

Microsoft Visual C++ の最新版VC++ 2022でアプリケーションを開発する予定です。『Formatter』のC++インターフェイスを組み込むことはできますか。

VC++のランタイムは、VC++ 2015から2022までバイナリ互換性があります。次のページを参照してください。
Visual Studio のバージョン間の C++ バイナリ互換性

インストール途中で「COMの登録をする」、「PATHを追加する」がありますが、これはどのような意味でしょうか。

COM の登録は、『Formatter』 を COM インターフェイスを使って起動する場合に必要になります。それ以外のインターフェイスでお使いになる場合は必要ありません。
PATH の追加は、システムの環境変数 PATH に 『Formatter』 のインストール PATH を追加することです。お使いの 『Formatter』 の運用によって要不要が変わりますので運用形態によって必要であればチェックしてください。環境変数 PATH に追加するだけで他のアプリケーション等に影響するものではありませんので通常はチェックしたままでインストールされても問題ないかと思います。

改訂版(メンテナンスリリース)がリリースされた際にユーザー登録申請書に記載した管理担当のメールアドレスにリリースの案内は、届かないのでしょうか。

改訂版の公開時には、原則としてユーザー登録申請書に記載されている連絡窓口宛てに公開のご案内を電子メールでお送りしております。

Webサイト上のオンラインマニュアルは最新バージョンのみの掲載ですが、以前のバージョンのマニュアルはどちらから参照可能でしょうか。

以前のバージョンのマニュアルはオンライン上にありません。製品インストール先に当該製品のマニュアルを保存したフォルダがありますので、そちらをご参照ください。

Formatter の機能について

組版に対応している言語を教えてください。

マニュアルの「製品概要」-「対応スクリプトと言語」をご覧ください。

『Formatter』 から出力した PDF は、OS にインストールされているフォントによらず表示できますか。

表示可能です。PDF を作成する際に、フォントの埋め込みを設定してください。『Formatter』 の初期設定では、欧文基本14フォントを除く埋め込み可能なすべてのフォントを埋め込むようになっています。なお、埋め込みが許可されていないフォントを PDF に埋め込むことはできません。詳しくは、マニュアルの「PDF出力」-「フォント埋め込み」をご覧ください。

PDF へ埋め込まれるフォントは、文書内で使用されている文字だけでしょうか。

ほとんどの場合、文書内で使用されている文字のみが埋め込まれますが(サブセット埋め込み)、オプション設定ファイルの "embed-subset-font-percentage" を使用することで、状況に応じてそのフォントを(使っていない文字も含めて)すべて埋め込む(フルセット埋め込み)ことも可能です。

PDF に埋め込むフォントを常にフルセットで埋め込みたい場合、どうすればよいですか。

オプション設定ファイルの "embed-subset-font-percentage" に "0" を指定してください。ただし、フォントがフルセットで埋め込まれる分、ファイルサイズは大きくなりますので、ご承知置きください。

font-family="'Times New Roman'" を指定して PDF を生成しました。その PDF を Adobe Acrobat で開いてファイルプロパティの「フォント」タブで確認するとフォント名が "TimesNewRomanPSMT" と表示されています。なぜですか。

TrueType や OpenTypeフォントは、"name table" という文字列データを持っています。ここにはフォントファミリ名やフォントの著作権などの情報が定義されています。TimesNewRoman の場合、"Font Family name" は "Times New Roman" ですが、"Postscript name" として"TimesNewRomanPSMT" が定義されています。Adobe Acrobat で「ファイル」-「プロパティ」-「フォント」を選択して表示されるのは Postscriptフォント名です。したがって、同じフォントでもこのように違う名前が表示されることがあります。

作成される PDF にセキュリティ設定(文書を開くときにパスワードなど)はできますか。

可能です。パスワードの設定や、印刷及び編集の制限などさまざまセキュリティ設定をご用意しています。文書を開くときのパスワード(ユーザパスワード)であれば、オプション設定ファイルの user-password が該当します。

PDF に印刷不可の設定を付与できますか。

可能です。オプション設定ファイルの printing-allowed へ "none" を指定することで PDF の印刷を制限できます。なお、印刷を制限する場合は、owner-password でオーナパスワードを指定いただく必要があります。グラフィカルユーザインターフェイス(GUI)では「PDFオプション設定」ダイアログ-「セキュリティ」タブで設定することが可能です。

PDF/X の出力はできますか。

出力可能です。PDF/X のほか、PDF/A や PDF/UA、タグ付きPDFなども出力できます。詳しくは、マニュアルの「PDF出力」をご覧ください。

PDF/X1-a 出力時に画像の色は変換されますか。

CMYK、グレイ画像はそのまま出力されますが、RGB画像はすべて CMYK画像に変換されて出力されます。これは、PDF/X-1a が RGB をサポートしていないためです。そのほか、透明画像などもサポートされていません。PDF/X の特徴について詳しくは、マニュアルの「PDF出力」-「PDF/X」をご覧ください。

PDF/X 出力で、出力インテントを ICC プロファイルの URL で指定したのですが、出力した PDF の出力条件識別子が "Custom" になってしまいます。

PDF/X の仕様上、出力インテントに ICCプロファイルの URL を指定した場合、出力条件識別子(OutputConditionIdentifier)のデフォルト値は "Custom" となります。『Formatter V6.6 改訂6版(MR6)』以前は指定された ICCプロファイルから推測される出力条件識別子が出力されていましたが、本来は出力条件識別子をユーザ側で指定する必要があり、『Formatter V6.6 改訂7版(MR7)』にて修正されました。 次の例のように fo:color-profile の src プロパティ で #OutputConditionIdentifier= に続けて出力条件識別子を指定してください。

  <fo:declarations>
    <fo:color-profile
      src="url('file:///C:/WINDOWS/system32/spool/drivers/color/JapanColor2001Coated.icc#OutputConditionIdentifier=JC200103')"
      color-profile-name="#CMYK"
    />
  </fo:declarations>

<fo:color-profile> に出力条件識別子を src="#OutputConditionIdentifier=Black & White" と指定したのですが、組版時にエラーになってしまいます。なにがいけないのでしょうか。

srcプロパティ値の記述は <uri-specification>(※)に従います。プロパティ値の文字列に空白や & が含まれる場合は、パーセントエンコーディング(URLエンコード)の必要があります。お問い合わせの指定であれば、src="#OutputConditionIdentifier=Black%20%26%20White" と記述してください。
※ <uri-specification> について詳しくは、マニュアルの「技術的資料」-「URI」をご覧ください。

Distiller で、PDF/A または PDF/X を出力すると、エラーになって出力されないことがあります。

オプション設定ファイルで PscriptPassThrough="false" を指定してください。
PscriptPassThrough(マニュアル)

PDF に出力する際に黒を K100 で出力したいのですが、どのようにすればよいでしょうか。

『Formatter V7.4』で実装された color-conversion-k100 を利用することで、黒が常にK100に変換されます。

『Formatter』 が出力する PDF の解像度は何 dpi か教えてください。

PDF には解像度という概念はありません。詳しくは弊社ブログで解説していますので、是非ご一読ください。
PDF の解像度とは?(1)(2)

PDF のフォームフィールドを作成できますか。

『Formatter』 の独自拡張を使用することで、テキストフィールド、ボタンフィールド、選択フィールド、電子署名フィールドの作成が可能です。詳しくは、マニュアルの「XSL/CSS拡張」-「フォームフィールド」をご覧ください。

ファイル添付注釈に data:スキームの指定はできませんか。

『Formatter V7.3 MR1』から axf:annotation-file-attachment / CSS -ah-annotation-file-attachment に data:スキームを指定することができるようになりました。どうぞご利用ください。

PDF出力をしたところ次のエラーメッセージが表示されました。どう対処すればよいでしょうか。
16390 (4006): PDF output error (3335). PDF version setting is lower than that of imported PDF

埋め込まれる PDF のバージョンは、出力する PDF のバージョン以下でなければなりません。
PDF/X などとの許される組み合わせは、マニュアルの「PDF出力」-「PDFの埋め込み」にある表を参照してください。

PDF2.0 に PDF1.5 の PDF を埋め込む方法はありませんか。

PDF2.0では、PDF1.Xを埋め込むことは推奨されていませんが、『Formatter V7.4』で実装された allow-embedding-lower-versions を利用することで実現可能です。

PDF から複数行のテキストをコピペしたときに不要な改行コードが含まれないようにできませんか。

データ中に改行コードが挿入されているわけではないため、この結果はお使いの PDFビューアに依存しますが、Adobe Acrobat や Adobe Reader の場合には、『Formatter』 から "タグ付きPDF" として出力すると fo:block内のテキストは連続したテキストとしてコピー&ペーストできます。
参考:PDFから複数行のテキストをコピペしたときに、不要な改行を避けるには。(弊社ブログ記事)

Acrobat のプリフライト機能の「潜在的なフォントの問題を一覧表示」を実行したところ、インド系言語で「テキストを Unicode にマッピングできない」と警告が表示されることがありますがなぜでしょうか。

マニュアルの「PDF出力」-「タグ付きPDF」には、アラビア文字やデヴァナガリ文字などの複雑なスクリプトでは、元文字列は複雑にグリフに変換されてPDFへ出力されます。そのグリフは元文字列のUnicodeとは一対一対応しないので、PDFから正しい元文字列をコピーすることはできません。タグ付きPDFにすれば、元文字列をコピーすることができます。と記載していますが、この前半部分の「グリフは元文字列のUnicodeとは一対一対応しない」が、ご報告の警告の理由です。母音と子音を組み合わせて文字を構成するような言語では必要な処理になります。
Acrobat のプリフライト機能は「プロファイルを編集」することでこのチェックを行わないようにすることも可能です。詳しくは、Acrobat のマニュアルをご覧ください。

標準言語フォントにMS 明朝、欧文フォントに Arial を個別に指定できますか。 font-family="'MS 明朝', Arial" と指定したら全部MS 明朝になってしまいました。

可能です。
font-family="Arial, 'MS 明朝'"
と指定してください。font-family に指定したフォントは、はじめの方が優先されます。先にMS 明朝があると、MS 明朝は欧文も表示できるので Arial が使われません。Arial が先にあれば欧文は Arial で、日本語は Arial では表示できないためMS 明朝が使われます。

欧文フォントと日本語フォントとでフォントサイズを変えることは可能でしょうか。

可能です。フォント構築ファイルの font-size-adjust で特定のフォントのフォントサイズを変更できます。また、baseline-adjust を使って特定のフォントのベースラインを変更することも可能です。

このお問い合わせは、英語と日本語が混在している文書で、font-family="欧文フォント, 和文フォント" のように指定することで英語には欧文フォントを、日本語には和文フォントを適用しているが、和文フォントに比べて欧文フォントの文字が小さく見えるため、欧文だけフォントサイズを大きくしたいというご要望でした。

特定のフォントのベースラインを調整する方法を教えてください。

「特定のフォントのベースラインを調整する」ということであれば、FO中でベースライン関連の属性によって変更するよりも「フォント構築ファイル」で指定するのが良いかと思われます。

1)<font-folder> の子要素に <font-entry> 要素を追加します。
2)file属性でフォントファイル名を指定します。
3)baseline-adjust属性で任意の値を指定します。
例えば、baseline-adjust="0.1" と指定したときは、FO中で指定されたベースラインにこの値が加算された位置に調整されます。指定は、"10%" のように %値で行うこともできます。

例:
<font-folder path="フォントフォルダ">
 <font-entry file="フォントファイル名" baseline-adjust="-0.05" />
</font-folder>

Windows 10 でインストールしたフォントが 『Formatter』 で利用できません。どうしたらよいですか。

フォントをインストールした場所をフォント構築ファイル(font-config.xml)で指定してください。

Windows 10 では一般ユーザの権限によるフォントが C:¥Users¥[ユーザ名]¥AppData¥Local¥Microsoft¥Windows¥Fonts にインストールされる仕様に変わっています。『Formatter V7.0』は、デフォルトでそのフォルダを参照しますが、フォント構築ファイルを編集している場合や『Formatter V7.0』より前のバージョンをご利用の場合は参照されないため、フォント構築ファイルへ該当のフォルダを次のように追加し、参照されるようにしてください。

  <font-folder path="C:¥Users¥[ユーザ名]¥AppData¥Local¥Microsoft¥Windows¥Fonts"/>

『Formatter V7.0』では次のように追加すれば参照することができます。

  <font-folder path="@@USERWINFONTS@@"/>

Google Fonts は使用できますか。

使用可能です。『Formatter』 が対応しているフォントについての詳細は、マニュアルの「フォント」-「サポートされるフォント」をご覧ください。

Adobe Fonts は使用できますか。

『Formatter V7.0』 より使用可能です。Windows版または Macintosh版で使用することができます。
Adobe Fonts の使用についての詳細は、マニュアルの「フォント」-「Adobe Fonts」をご覧ください。

絵文字は使用できますか🤔

使用可能です。『Formatter』がサポートしている絵文字について、詳しくは、マニュアルサンプルFO集の「絵文字のサポート」をご覧ください😄

合成フォントのような機能はありますか。

合成フォント(※)は、『Formatter』の拡張機能を利用して実現できます。拡張機能の <axf:font-face> / CSS @font-faceフォント構築ファイルでフォントを適用する Unicode範囲やそれぞれのフォントサイズの調整を行うことができます。フォントを適用する Unicode範囲については、本FAQ内の「font-face で指定したフォントにそれを適用する Unicode の範囲は指定できませんか。」を、その際のそれぞれのフォントサイズの調整については「欧文フォントと日本語フォントとでフォントサイズを変えることは可能でしょうか。」をご覧ください。
※ 合成フォントとは、複数のフォントを組み合わせてひとつのフォントのように扱える機能です。合成フォントでは、和文と欧文、かなと漢字など、指定した文字ごとに実際に適用されるフォントを使い分けることができます。

font-face で指定したフォントにそれを適用する Unicode の範囲は指定できませんか。Unicode 範囲ごとにフォントの割り当てを変更したいためです。

font-face に unicode-rangeプロパティを指定することで実現可能です。

  <axf:font-face
    font-family="'hogehoge'"
    src="url(bogus.ttf) format('truetype')"
    unicode-range="U+0040-0060"

詳しくは、マニュアルサンプルFO集の「axf:font-face で追加したフォントのUnicode範囲を指定、およびフォントサイズを調整する」をご覧ください。

font-family でフォントを複数指定していますが、V6.4改訂2版以降とそれ以前のバージョンで採用されるフォントが変わりました。なぜでしょうか。

『Formatter V6.4改訂2版(MR2)にてオプション設定の font-selection-mode="6"(既定値)のときの処理を見直しました。仕様変更以前では「font-selection-strategy="character-by-character" のとき、グリフを持つ最初のフォントが採用されます。」でしたが、仕様変更後は「グリフを持つ最初のフォントが採用されます。」となり、font-selection-strategy="character-by-character" でなくてもグリフがあればフォントが採用されるようになりました。このため font-family で複数のフォントが列挙されていると以前とは違うフォントが選択される場合があります。オプション設定ファイルで font-selection-mode="5" と指定すると以前と同じフォントが適用されるようになります。

以前のバージョンで axf:alt-glyph を使って文字の代替字形を指定していたのですが、『Formatter V6.5』以降のバージョンではヘルプにありません。

『Formatter V6.5』で axf:font-feature-settings の実装にともない axf:alt-glyph は廃止になりました。以前のバージョンで axf:alt-glyph="1" のように指定していた場合、フォントの GSUBテーブルの aalt feature を使いますので、次のように指定してください。

  <fo:inline axf:font-feature-settings="'aalt' 1">葛</fo:inline>

画像ファイル名に %20 が使われているとき、相対パスの場合と絶対パスの場合で挙動が異なります。これはこういうものなのですか。

マニュアルの「技術的資料」-「URI」をご覧ください。

画像を指定する path 内に "#" を含むフォルダがあると正常に組版できないことがありました。これは仕様ですか。

# はフラグメントの区切りとなります。file:///C:/dir/foo#bar.png で、実際にアクセスされるリソースは、file:///C:/dir/foo です。foo#bar.png というリソースにアクセスしたいときは、url('foo%23bar.png') としてください。
上記は、「技術的資料」-「URI」(マニュアル)より抜粋しました。

画像の回転は指定できますか。

axf:image-orientation / CSS -ah-image-orientation プロパティで指定可能です。

SVG 2 には対応していますか。

『Formatter』は Scalable Vector Graphics (SVG) 2 の描画および出力に対応しています。詳しくは、マニュアルの「SVG仕様の実装状況」「SVG出力」サンプルFO集の「グラフィクス Scalable Vector Graphics (SVG) 2 の表示」をご覧ください。

元の SVG の本来のサイズで出力されていません。width="497.724" height="335.787" となっている SVG ファイルを Formatter で組版して、AreaTree を確認すると該当する画像が width="373.293pt" height="251.84pt" で出力されていました。

SVG の「width="497.724" height="335.787"」には単位が付いていません。この場合、単位は px になります。AreaTree では pt(1/72inch)で表示されていますので、単位を合わせれば同じ数値になります(例:497.724/96*72=373.293pt)。

EPS の画像が低解像度で出力されてしまいました。高解像度で EPS を使用する方法はありませんか。

Formatter は EPS に表示イメージがあるとき、そのイメージを出力します。EPS の表示イメージは低解像度なのでご報告のような結果になります。表示イメージが存在しない場合は、代替画像に置き換えます。
オプション設定ファイルで、Adobe Distiller やGhostscript を外部プロセッサとして指定し、EPS を PDF へ変換して出力することが可能です。詳しくは、マニュアルの「オプション設定ファイル」-「PDF出力の設定」をご覧ください。

MathML の数式用フォントを変更するため、オプション設定ファイルで <variant-font font-family="'Cambria Math'"/> と指定しましたが反映されません。どのように指定すれば反映されますか。

"font-family" ではなく、"fontfamily" と指定してください。オプション設定ファイルにおける MathML のフォント指定に関する属性名には、この "fontfamily" のように間に "-"(ハイフン)が入りませんのでご注意ください。
「オプション設定ファイル」-「MathMLの設定」(マニュアル)

インライン数式を欧文として扱えませんか。和文と数式との間に和欧間のアキを入れたい。

可能です。和欧文間のアキや全角約物の詰めのためのみなし文字列を axf:text-treat-as / CSS -ah-text-treat-as プロパティで指定することができます。

Microsoft の Word/Excel/PowerPoint 文書などを画像のように埋め込む方法はありませんか。

弊社製品の『Office Server Document Converter (OSDC)』と『Formatter V7.4』で実装された axf:image-preproc / CSS -ah-image-preproc を使用することで、Microsoft の Word/Excel/PowerPoint 文書などを画像のように埋め込むことが可能です。『OSDC』が対応しているさまざまな文書形式を『OSDC』で PDF化し、その PDF を『Formatter』の組版する文書中に埋め込むことで実現します。その際、埋め込みたい文書のページ指定や、『OSDC』の出力する PDF のバージョン指定も可能です。

バーコードの生成は可能ですか。

可能です。Formatter のオプションである「バーコードジェネレータオプション」をご利用いただくことでさまざまなバーコードの生成が実現できます。

バーコードジェネレータオプションで作成される QRコードなどの縦横サイズの指定はできますか。

可能です。XSL-FO の場合は、fo:external-graphic 要素内に content-height や content-width でサイズをご指定ください。 HTML の場合は、img 要素内に height や width をご指定ください。 CSS の場合は、img 要素に height や width をご指定ください。 ただし、縦横比の変更や、あまり小さな画像にすると読み取れなくなる可能性がありますのでご注意ください。

バーコードの線幅を細くできませんか。

可能です。『Formatter V7.3 MR3』から線形バーコードのバーの幅の表示倍率(svgのときのみ有効)が "reduc" で指定可能になりました。お試しください。

QRコードの導入実績を教えてください。

Formatter の「バーコードジェネレータオプション」の QRコードの導入事例としては「住宅情報誌、物件チラシ、契約書作成ツールとして活用(香陵住販株式会社様)」があります。
「バーコードジェネレータオプション」のサンプルは「サンプルFO集」をご覧ください。

ハイフネーションを禁止したい単語はどうしたらよいですか。

標準のハイフネーション処理で望みどおりにならない単語は、例外辞書を用意し、登録することができます。詳しくは、マニュアルの「ハイフネーション」-「例外辞書」をご覧ください。

ハイフネーションのときに挿入されるハイフンの文字を変更できますか。

ソフトハイフンや通常のハイフネーションで改行時に挿入される文字は、"hyphenation-character" プロパティで定義されます。
ソフトハイフンが含まれる単語が行末に位置して、ハイフンが出力される場合もこの文字で置き換えられます。
hyphenation-character の既定値は U+2010 になっていますので、hyphenation-character="&#x002D;" のように指定すると変更できます。
このプロパティは継承されますので、上位のオブジェクトで指定すれば下位のブロックにも有効になります。

チェコ語では、ハイフンの位置で行分割が起こったとき、次の行頭にもハイフンを繰り返し置くことになっていますが、そのようなハイフネーションはできますか。

『Formatter V7.4』でご用意した axf:double-hyphen-translineation / CSS -ah-double-hyphen-translineation を利用することで、ハイフンの位置での行分割時にハイフンを行頭にも置くかどうか指定可能になりました。

特定の単語の途中で改行しないようにできますか。

『Formatter V7.0』 から、オプション設定ファイルで分割禁止語を登録できるようになりました。詳しくは、マニュアルの「オプション設定ファイル」-「組版の設定」をご覧ください。

タブ記号で間隔のアキを指定できますか。

可能です。Formatter では、タブ構造を表現できるような拡張を用意しています。マニュアルの「XSL/CSS拡張」-「タブ」や、弊社 Webページの「サンプルFO集」にある「タブ (<axf:tab>, axf:tab-*)」のサンプルをご覧ください。

テキストを透かしとして追加することはできますか。

「オプション設定ファイル」を利用してページにすかし文字列を表示することが可能です。また、フォントやスタイルの指定なども可能です。詳しくは、マニュアルサンプルFO集をご覧ください。

エラーレベル 1 のエラーメッセージを非表示にできませんか。

エラーレベルを指定して出力されるエラーメッセージを抑制することはできませんが、特定のエラーコードの出力を抑制することは可能です。 Formatter では、オプション設定ファイルに no-disp-warnings をご用意しています。これに抑制したいエラーコード(エラーコードはエラーメッセージとともに出力されています)を指定すると、そのエラーメッセージを非表示にできます。 詳しくは、マニュアルの「no-disp-warnings」をご覧ください。

エラー「SYSTEM ERROR: Out of memory.」が発生しました。なにが原因でしょうか。

「Out of memory.」はメッセージのとおりメモリ不足が原因と考えられます。 例えば、大規模文書の組版などにより必要なメモリが確保できない場合に発生するものと思われます。 これは文書の内容やマシンスペック等に依存しますのでどれくらいメモリがあればよいという回答はできません。 なお、マニュアルの「技術的資料」-「大規模文書の組版」にもメモリ不足となる可能性のある文書の特性を記載しています。 ここに記載されている「2パス組版」はそれを解決するためのオプション設定です。ご参考にしてください。

overflow="error-if-overflow" を指定してオーバーフローする場合にエラーが表示されるようにしています。エラーメッセージ中の (inline XXXpt) や (block XXXpt) がどういう意味か教えてください。

overflow="error-if-overflow" 指定時に表示されるエラーメッセージは例えば次のような形式になります。
例:
14850 (3A02): Area overflow: fo:block (inline 31.969pt) Page 1 (1).
14850 (3A02): Area overflow: fo:block-container (block 23.811pt) Page 1 (1).

オーバーフロー判定には 2種類あります。"(inline XXXpt)" とあるのはインライン方向=行の進行方向(一般的な横書きの場合は右方向(幅)へのオーバーフロー)、"(block XXXpt)" とあるのはブロック方向=段落の進行方向(一般的な横書きの場合は下方向(高さ)へのオーバーフロー)です。数値はそれぞれのエリアのオーバーフローしている寸法になります。

px(ピクセル)でサイズを指定した場合の大きさはどうなりますか。

ページサイズやマージンなどを px 単位で指定した場合、Formatter ではオプション設定で px 単位の換算率を指定することが出来ます。初期値は 96dpi となっていて通常はこの値を元に計算されます。
オプション設定ファイルの pxpi 属性
背景画像や埋め込み画像で大きさが指定されていない場合、axf:background-image-resolutionaxf:image-resolution の指定に従います。この拡張属性は、XSL と CSS では既定の動作が異なります。

『Formatter V7.0』 で組版すると "Breaking Paragraphs into Lines unsupported ...." というエラーメッセージが表示されるようになりましたが、これはなんですか。

『Formatter V7.0』 では欧文組版における行分割処理のためのアルゴリズムとして Breaking Paragraphs into Lines(以下 BPIL と略)を実装しています。BPIL が適用される条件は、
・axf:line-break="bpil" が指定されているブロック
・axf:line-break でアルゴリズムが指定されていず、オプション設定ファイルの bpil で指定された言語であるブロック
となっています。
axf:line-break では BPILを適用しない "line" か、BPILによる行分割を行う "bpil" が指定できますが、どちらも指定されていない場合はオプション設定ファイルの bpil の指定に従います。オプション設定ファイルの bpil の既定値は "Latn Grek Cyrl" のため、ラテン文字、ギリシャ文字、キリル文字が代表的である言語(英語、ギリシャ語、ロシア語など)が指定されている場合は BPIL が適用されます。
ただし、フロートが含まれるブロックや BIDI処理を要するブロックでは BPIL は適用されず、そのような場合に 『Formatter V7.0』 では警告メッセージを表示します。BPIL が適用されないケースは、マニュアルの「技術的資料」-「行分割」を参照してください。なお、axf:line-break / CSS (-ah-)line-break に "line" を指定するか、オプション設定ファイルで bpil="" を指定して組版すると BPIL は適用されないので警告メッセージは表示されません。

JavaScript に対応していますか。

対応しておりません。

GUI でしおりの表示はできませんか。

『Formatter V7.2』より Windows版に付属しているグラフィカルユーザインターフェイス(GUI)でしおりの表示が可能になりました。詳しくは、マニュアルの「しおりウィンドウ」をご覧ください。

GUI でレイヤの表示を確認できませんか。

『Formatter V7.3』より Windows版に付属しているグラフィカルユーザインターフェイス(GUI)でレイヤの表示状況が確認可能になりました。詳しくは、マニュアルの「レイヤウィンドウ」をご覧ください。

GUI で CSS の編集はできませんか。

Windows版に付属しているグラフィカルユーザインターフェイス(GUI)では、スタイルシートの編集が可能です。スタイルシートの編集には外部エディタで指定されたエディタを用います。詳しくは、マニュアルの「スタイルシートの編集」をご覧ください。

XSL-FO 関連

改訂バーの表示位置を偶数ページと奇数ページで変更できますか。

XSL-FO であれば fo:change-bar-begin の change-bar-placementプロパティで、CSS であれば -ah-change-bar-sideプロパティで指定が可能です。

start-indent="inherit+2em" を指定したら「Invalid property value」という警告が出ました。どのように指定すればよいですか。

start-indent="from-parent(start-indent) + 2em" と指定してください。
ご参考までに 「Extensible Stylesheet Language (XSL) Version 1.1」の「5.9.10.1 inherit」 には「"inherit" is not allowed as an expression mixed with operations. The same functionality is provided by the from-parent() function, which can be mixed with operations.」と記載されています。

改行させるために <fo:character character="&#x0A;"/> と指定しましたが、改行されません。なぜですか。

#x0A コードはあくまでも通常の文字コードとして処理されます。そして linefeed-treatment プロパティ(初期値 treat-as-space)によって U+0020(space) に変換されます。もし #x0A にて改行処理を行いたいときは、fo:block に linefeed-treatment="preserve" を指定してください。なお、linefeed-treatment は継承されるプロパティですので指定にはご注意ください。

同じ内容の文章なのに、箇所によって改行される位置や適用されるフォントが変わってしまっています。なぜですか。

禁則処理やフォント選択のアルゴリズムには、その箇所で適用されている言語・スクリプトの指定が影響します。典型的なミスとして、XSLT での変換の際などに、正しい言語の指定がされた箇所とそうでない箇所が生じていることがあります。

言語・スクリプトについての値は継承されるため、メインとなる言語については fo:root に指定することで FO 全体に適用されます。たとえば、<fo:root xml:lang="ja" ...> と指定することで、明示的に別の言語を指定しない限り、日本語が指定されているとみなされます。

FO で言語が指定されていない場合、『Formatter』はオプション設定の default-langdefault-lang2 の値を参照します。default-lang2 の既定値は "eng" であるため、無指定のとき英語とみなされます。

fo:block で space-before・space-after を指定して間隔を広げようとしていますが、組版結果に反映されません。なぜですか。

fo:block-container の子として fo:block を記述しているような場合、先頭の fo:block に指定された space-before、最終の fo:block に指定された space-after の値は、そのままでは組版結果に反映されません。space-before.conditionality・space-after.conditionality の初期値は discard です。このため、fo:block-container の領域内でそれぞれ先行・後続して配置されるオブジェクトがない fo:block の space-before・space-after の指定は組版結果には反映されません。

fo:list-item-label の子の fo:block-container に「overflow="condense" axf:overflow-condense="font-size"」を指定したところ「10792 (2A28): Cannot condense no-width area:」のエラーが表示されてしまいます。なにが原因でしょうか。

fo:list-item-label に指定されている end-indent の継承が原因となることが考えられます。fo:list-item には、次のように start-indent/end-indent を指定することが多いでしょう。

<fo:list-item>
 <fo:list-item-label end-indent="label-end()">
  ...
 <fo:list-item-body start-indent="body-start()">
  ...

start-indent や end-indent は継承されるので、

<fo:list-item>
 <fo:list-item-label end-indent="label-end()">
  <fo:block-container>
   <fo:block>
    ...

のように fo:block-container を含めたとき、中の fo:block に end-indent が継承されます。このときの end-indent はたいていは大きな値なので、fo:block の幅はゼロになってしまいます。このような事態を避けるために、

<fo:list-item>
 <fo:list-item-label end-indent="label-end()">
  <fo:block-container>
   <fo:block end-indent="0pt" start-indent="0pt">
    ...

のように指定する必要があります。

CSS 関連

HTML を Formatter で組版したところ、文字と画像が重なってしまいました。なぜでしょうか。

CSSスタイルシートには次の指定がありました。この -ah-line-stacking-strategy: font-height があると、行の高さが固定になるので、大きな画像があっても行の高さが大きくなりません。そのため行の高さからはみ出した大きな画像がテキストと重なってしまいます。

  html {
    font-size: 9pt;
    line-height: 15pt;
    -ah-line-stacking-strategy: font-height;
  }

以下のようにインラインの画像を含むようなブロックでは -ah-line-stacking-strategy: font-height; は使えません。

  <img alt="..." src="../20070117.PNG" width="507" height="296" />

IE、FF の印刷プレビュー表示と Formatter の印刷プレビューが大幅に違います。例えば、背景や画面の写真はブラウザの印刷プレビューでは表示されないけれども、Formatter で組版すると写真も表示される、など。これはなぜでしょうか。

Internet Explorer、Firefox では、「ページ設定」で「背景の色とイメージを印刷する」が OFF になっていると印刷・印刷プレビューで背景色や背景画像が出ません。このためではないでしょうか。

WebページをFormatterでPDFにすると横がA4の用紙をはみ出してしまいます。なぜでしょうか。

段落や表にwidthを指定していないかどうか確認してみてください。例えばwidth="1000px"と指定していると、Formatterのデフォルトでは 96dpi(dot per inch) で幅を計算するため約10.4インチ(26.46cm)となりA4の横幅をはみ出すことになります。

CSS組版で章の始まりを必ず奇数ページにしたいのですが、前の章が奇数ページで終わった場合、白紙のページを挿入して調整する方法はありますか。

page-break-before/page-break-after など改ページ位置を指定する方法があります。例えば、"page-break-before: right;" を指定すれば、改ページを強制して次のページが右側のページになるようにします。前章が奇数(右側)ページで終わった場合であれば、次章が奇数(右側)ページになるよう章の間に白紙ページが挿入されます。

マージンボックスで、例えば、top-leftのマージンボックスの内容に右寄せ指定すると、その内容がページの右側に寄ってしまいます。どうしたら良いですか。

@top-left があって、@top-center も @top-right もない場合、その幅は width の指定がない限りページエリアの幅いっぱいになります。したがって、右寄せはページの右に寄ります。 @top-center や @top-right も指定すれば、それらの幅と分け合います。 マージンボックスに width を指定すれば、その指定された幅になるので、そのようなことはありません。

2段組の最終ページを振り分けにしない方法はありますか。

"-ah-column-fill: auto;" をご指定ください。
CSS3仕様:CSS3 Multi-column layout:column-fill

表のヘッダを繰り返すにはどうしたらよいでしょうか。

表ヘッダに thead 要素を使えば、繰り返すことが可能です。例えば次のような表の場合、

  <table>
    <tbody>
      <tr>
        <th class="TableWidth1">住所</th>
        <th class="TableWidth2">氏名</th>
      </tr>
      <tr>
        <td>
          <p>あいうえお</p>
        </td>
         :

次のようにします。

  <table>
    <thead>
      <tr>
        <th class="TableWidth1">住所</th>
        <th class="TableWidth2">氏名</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td>
          <p>あいうえお</p>
        </td>
         :

幅を固定したテーブルセルから桁数の大きな数字がはみだしてしまいました。はみださないように自動で改行させることはできますか。

Formatter の行分割位置の候補は、UAX #14: Unicode Line Breaking Algorithm の "Line Breaking Properties" の処理によって求められます。この行分割ルールにおいて、連続した数字は途中で分割(改行)することができません。CSS では、word-wrapプロパティの既定値は "normal" なので、行分割できないときにテキストは領域からあふれます。word-wrapプロパティに "break-word" を指定してください。

border や padding があるブロック要素やテーブルセルが、指定した幅(width)より大きくなってしまいました。なぜでしょうか。

CSS では box-sizing というプロパティがあります。ブロック要素に width や height を指定したときに border幅や padding値を含めるかどうかという設定です。既定値は "box-sizing: content-box;" で、width で指定された値は内容の幅であって border幅や padding値を含めないということになります。"box-sizing: border-box;" と指定すると border幅や padding値を含めた幅になります。

HTML のリンク情報を変換後の PDF内に保持して PDF から直接参照できますか。

『Formatter』 で HTML を PDF化したとき、リンクは次のようになります。

  1. ひとつの HTML内の内部リンクは、<a href="#foo">~</a> のような内部リンクなら、PDF にしてもそのまま有効です。
  2. HTML1.html から HTML2.html へのリンク(外部リンク)があるものとし、HTML1.html を HTML1.PDF に変換、HTML2.html を HTML2.PDF に変換するとします。このとき <a href="HTML2.html">~</a> というリンクは、HTML1.PDF から HTML2.html へのリンクになります。PDF へのリンクに変えたいなら、あらかじめリンクを <a href="HTML2.PDF">~</a> のようにしておく必要があります。

タブ文字のサイズを変更できますか。

CSS では tab-size というプロパティでタブ文字(U+0009)の扱いを定義できます。初期値は 8 です。数値を指定した場合は半角スペース(U+0020)の倍数となります。単位付きで長さを指定することも可能です。HTML で pre要素以外に tab-size を指定する場合は、"white-space: pre-wrap;" の指定も必要です。

CSSグリッドや CSSフレックスボックスを利用できますか。

『Formatter V7.4』より使用可能です。それぞれマニュアルの「CSSグリッド」「CSSフレックスボックス」をご覧ください。

CSS でも大規模文書の組版に用意されている XSL-FO の 2パス組版機能を利用できませんか。

「大規模文書の組版」のためにご用意している 2パス組版は、CSS組版ではご利用できません。しかしながら、『Formatter V7.4』では、CSS でページ番号の解決を待たずにレンダリング処理するかを指定するプロパティ「-ah-fixed-width-pending-page-number」をご用意しました。これにより 2パス組版のような効果が得られる場合がありますので、お試しください。

CSS組版で CSSの宣言がどの要素にどういう順序で適用されるのか確認する方法はありませんか。

『Formatter V7.4』でご用意した「CSSデバグツリー」で、それらの情報を含む XML の出力が可能です。

組版共通

3段組のページで2段抜きすることは可能でしょうか。

『Formatter』 では、フロート拡張により、高度なフロート配置の機能が実装されています。これにより段組の段をまたぐ配置も可能です。詳しくは、マニュアルの「フロート拡張」や、弊社 Webページの「サンプルFO集」にある「段抜きフロート (axf:float-reference, axf:float-x, axf:float-y)」のサンプルをご覧ください。

段組の段をまたぐ配置の例
段組の段をまたぐ配置の例

ページの残り領域の高さによって改ページを実行するかどうかを指定できませんか。

『Formatter V7.3』で実装された axf:break-distance / CSS -ah-break-distanceプロパティで実現可能です。詳しくは、マニュアルサンプルFO集の「改ページ時の残り領域の高さを指定」をご覧ください。

最終ページに空白ページを付加する機能はありませんか。

『Formatter V7.3』より出力の最後にブランクページを出力できるようになりました。詳しくは、マニュアルの「-addbp」をご覧ください。

タイ語、ラーオ語(ラオ語)、クメール語、ビルマ語(ミャンマー語)は、単語単位で行分割されるのですか。

単語単位で行分割されます。ICU(International Components for Unicode)ライブラリによって行分割位置が決定されます。それでも行分割が生じる単語については、その単語を 『Formatter』 の例外辞書に登録することで行分割の禁止を設定できます。詳しくは、マニュアルの「ハイフネーション」-「例外辞書」をご覧ください。

コロンやカンマの行分割について教えてください。

『Formatter V6.x』は、Unicode仕様の "UAX#14: Line Breaking Properties" に従って行分割処理をします。この仕様の中で、コロン(U+003A)もカンマ(U+002C)も ISクラスという文字クラスに分類されます。ピリオド(U+002E)やセミコロン(U+003B)も同じ扱いです。この ISクラスの文字はその直前で(スペース文字がなければ)行分割(改行)することはできません。また、この文字の直後に数字やアルファベットが続く場合もそこで行分割することもできません。したがって、以下のような文字列の途中では通常は改行されません。

  • 100.000
  • Antenna,House
  • www.antenna.co.jp
  • Sample:123,000,000.000

関連 QA:
英数字で構成されるスペースのない長い単語を組版すると行末ではない箇所で改行されてしまいます。

URL が行分割されるとき、「The Chicago Manual of Style」が推奨するようにスラッシュの前で行分割させるにはどうしたらよいですか。

『Formatter V7.4』では URL の行分割方法が指定可能になりました。詳しくは、axf:url-break / CSS -ah-url-break をご覧ください。

『Formatter V7.0』 と以前のバージョンの結果を比較したときに、改行位置が異なる場合があります。仕様が変わったのでしょうか。

マニュアルの「技術的資料」-「行分割」で「行分割位置の候補は、UAX#14: Line Breaking Properties の処理によって求められます。」と記載していますが、『Formatter』 のバージョンによって次のように「UAX#14: Line Breaking Properties」へのリンク先が異なります。

Formatter V6.5:https://www.unicode.org/reports/tr14/tr14-30.html
Formatter V6.6:https://www.unicode.org/reports/tr14/tr14-33.html
Formatter V7.0:https://www.unicode.org/reports/tr14/tr14-39.html

これらの「UAX#14: Line Breaking Properties」のページには、「Modifications」として変更点が記載されています。また、『Formatter』 は、この Unicode の行分割仕様に加え、独自の行分割ルールを追加したり、V7.0 では BPIL を実装して段落のバランスを考慮した行分割の処理を行っています。このため、バージョンによって行分割位置が変わることがあります。詳しくは、マニュアルの「技術的資料」-「行分割」をご覧ください。

なお、BPIL を適用しないようにするには、axf:line-break / CSS (-ah-)line-break に "line" を指定するか、オプション設定ファイルで bpil="" を指定してください。

border-radius で丸め罫が指定できますが、そこを斜めの直線で表現するようにはできませんか。

可能です。『Formatter V7.4』で axf:border-radius に新しくご用意した値 "diagonal" を使用することで丸めずに直線状に対角線を描けるようになりました。

ボックスシャドウのぼかしに画像の解像度は設定できませんか。

『Formatter V7.4』から box-shadow にてぼかし処理を行うときの画像の解像度を boxshadow-resolution-dpi で dpi単位で設定可能になりました。ご活用ください。

クロップマーク(トンボ)を本文領域にまで延長できませんか。

可能です。『Formatter V7.4』で追加された axf:printer-marks-over-content / CSS -ah-printer-marks-over-content でトンボをページ内容の上に描くか指定できるようになりました。

『Formatter』の新しい機能を使用しているため、その機能が実装されていないバージョンでは組版できないようにしたいのですが、よい方法はありませんか。

『Formatter V7.3』で追加された axf:require / CSS -ah-require を使うと、組版に必要な『Formatter』のバージョンが指定できます。

組版時に「セキュリティ設定で、このスタイルシートのスクリプトコードの実行は許可されていません。」というエラーが発生しました。回避方法はありませんか。
 8195 (2003):FO transformation is failed.
 セキュリティ設定で、このスタイルシートのスクリプトコードの実行は許可されていません。

このエラーメッセージの「セキュリティ設定で…」以降の部分は、『Formatter』 ではなく、XSLT プロセッサから出力されているメッセージです。Windows版をお使いの場合、オプション設定による指定がなければ MSXML が選択されます。このエラーメッセージは MSXML6 での XSLT 変換において出力されています。MSXML6 ではセキュリティ関係等の変更が行われており、その影響によるものかと思われます(MSXML6 に関しては MSXML Security Overview をご参照ください)。
さて、このようなエラーが発生した場合、MSXML プロパティを変更することによって解消される場合があります。『Formatter』 ではオプション設定ファイルで MSXML のプロパティを指定することが可能です。スクリプトコードの実行を許可する場合には、
 <msxml name="AllowXsltScript" value="true"/>
とすれば解決するでしょう。詳しくは、マニュアルの「オプション設定ファイル」-「XSLTの設定」をご覧ください。

旧FAQページ

2011年11月11日以前の「よくいただくご質問」は、旧FAQページをご覧ください。