最終更新日: 2011/05/17

AH Formatter Q&A

ケーススタディ

☞ AH Formatterを使用したシステムのケーススタディはこちら

基本・一般

☞ AH Formatter の、基本・一般・XSL-FO 仕様などの Q&A はこちら

CSS の基本・一般

AH Formatter でWebページをPDF化してみましたが、レイアウトが乱れてしまいます。なぜでしょうか?

AH Formatterは、印刷を意識して作成されたWebページを紙などのページメディアに出力することを想定しており、Webブラウザで画面表示した結果とは異なることがあります。

Webページに画面表示用のレイアウトが埋め込まれている場合は、画面表示と印刷では想定している解像度が異なるため、画面では正常でも、印刷では乱れてしまうことが考えられます。

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

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

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

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

HTMLの(a)PRE要素の内容と、(b)P要素に対して、次のように指定したとき、空白と改行以外のプロパティは同じと仮定して、(a)と(b)のレイアウトは同等になりますか?

P {
white-space: pre
}

pre 要素は、デフォルトスタイルシートで次のように設定されています:

    pre { white-space: pre }

したがって、p 要素に white-space: pre を指定した場合も white-space の扱いに関しては pre と同様になります。

ただし、次のような場合に違いがあります。

<pre>
   Hello,
       world!
</pre>

<p>
   Hello,
       world!
</p>

このように開始タグの直後に改行がある場合、pre の場合にはその改行は無視されます。
pre 以外のブロック要素に white-space: pre を指定した場合には開始タグの直後の改行も保持されます。

AH Formatterのほか、Firefoxなどのブラウザで表示しても p のほうにだけ "Hello" の前に余計な空行ができます。
主な最新ブラウザの動作はほとんどそうなのですが、IE8だけは p のほうも空行ができないという違いがあります。

2段組にしたとき、文字の分量が少ない場合は、両方の段に均等に文字が流れるのではなく左段の最後まで文字が流れるようにしたいのですが、このようなレイアウト指定はできませんか?

[CSS3-Multicol]モジュールの column-fill を使うことにより実現できます。

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

@top-left があって、@top-center も @top-right もない場合、その幅は width の指定がない限りページエリアの幅いっぱいになります。したがって、右寄せはページの右に寄ります。

@top-center や @top-right も指定すれば、それらの幅と分け合います。

マージンボックスに width を指定すれば、その指定された幅になるので、 そのようなことはありません。

@top-rightにlogoをおきたいと思ってcontent: url(../LogoMark.jpg); としたのですが、右上のマージンボックスには、「file」とだけ表示されます。ワーニングメッセージは特にありません。何か他に指定する必要があるのでしょうか?

すみません、マージンボックスのcontentプロパティでは画像を配置できない制限があります。かわりにbackground-imageを使うようお願いします。

例:

        @top-right {
          background-image: url(../LogoMark.jpg);
          background-repeat: no-repeat;
          background-position: right center;
          content: "";
        }

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

CSSスタイルシートを見たら、次の指定がありました。

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" />

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

次のように和文フォントと欧文フォントを指定している場合、

<head>
<style type="text/css">
body {
	font-family: 'Times New Roman', 'MS 明朝', serif;
	font-size: 20pt;
}

</style>
</head>
<body>

<p>
[図123] いろはにほ

</p>

</body>

組版結果を見ると、次の図のように半角文字に欧文フォントが適用されてベースラインが下がっています。欧文フォントで表示されている [ ] のベースラインを上げるための方法はどんなものがありますか?

Baseline Adjust

思いつく方法はつぎのようなものです。

表の途中で強制的に改段するにはどうしたらよいでしょうか?

強制改段させたい要素(trなど)にプロパティ -ah-column-break-before: always を指定することで強制改段させることが可能です。 セル(td)の途中での分割がされないようにしたいのであれば、次のように指定してください。

td {
  -ah-page-break-inside: avoid;
}

※ 改段に関するCSS3プロパティについて
CSS3 Multi-column layout:column-breaks の最新版でそれまでと変わっています。
AH Formatter V5.1からこのCSS3新ドラフトにあわせたプロパティ break-before, break-after, break-inside も使用可能になります。

旧形式:

新形式:

(AH Formatter V5.1では新旧両形式いずれも有効となります)

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

表ヘッダーに 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>
    :

2段組の最終ページをふりわけにしない方法はありますか?

AH Formatter V5.1から次のプロパティが有効になりますので、このプロパティを使用してください。

CSS3仕様:CSS3 Multi-column layout:column-fill

AH Formatterの機能

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

AH Formatter V5.0で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>のようにしておく必要があります。

innerHtml にも対応していますか?

innerHtml には対応していません。

AH Formatter V5 オンラインマニュアル

その他、製品の仕様詳細につきましては、
☞ AH Formatter V5 オンラインマニュアルをご参照ください。


Copyright © 1996-2011 Antenna House, Inc. All rights reserved.
Antenna House is a trademark of Antenna House, Inc.