タグ別アーカイブ: AH Formatter

AH Formatter:PDFから複数行のテキストをコピペしたときに、不要な改行を避けるには。

こんにちは
AH Formatter』サポート担当です。

『AH Formatter』で作成した PDF をビューアで表示して、
テキストをコピー&テキストエディタなどにペースト(以下コピペ)した時に
改行が入ってしまうというお問い合わせをいただくことがあります。

具体的には、
 <fo:block>AH Formatterはアンテナハウス株式会社の製品です。</fo:block>
 <fo:block>最新版は弊社Webサイトからダウンロードできます。</fo:block>

これを組版した結果が以下のような場合
 組版結果
ここを Adobe Acrobat や Adobe Reader からコピペすると
次のようになります。

 AH Formatterはアンテナハウス株式会社
 の製品です。
 最新版は弊社Webサイトからダウンロー
 ドできます。

このように見た目のまま、改行されてしまっていますね。

データ中に改行コードが挿入されているわけではないので
この結果は PDFビューアに依存します。
別の PDFビューアでは

 AH Formatterはアンテナハウス株式会社 の製品です。 最新版は弊社Webサイトからダウンロー ドできます。

こんな風にひとつの連続したテキストでコピペされる場合もあります。
(改行位置に空白が入っています。)

では、”コピペした時に改行されないようにしたい” 場合はどうすればよいのでしょう。

PDFビューアに依存するので一概には言えないのですが
Adobe Acrobat や Adobe Reader の場合には
『AH Formatter』から “タグ付きPDF” として出力すると
次のようにコピペできます。

 AH Formatterはアンテナハウス株式会社の製品です。
 最新版は弊社Webサイトからダウンロードできます。

こうすれば、元のテキストデータと同じように連続したテキストとしてコピペできます。
ただし、ひとつ注意することがあります。
例えば、下記のような場合です。

<fo:block linefeed-treatment=”preserve” >
 XfoObj axfo = null;
 try {
 axfo = new XfoObj();
 ErrDump eDump = new ErrDump();
 axfo.setMessageListener(eDump);
 axfo.setDocumentURI(args[0]);
 axfo.setOutputFilePath(args[1]);
 axfo.setExitLevel(4);
 axfo.execute();
 }
</fo:block>

マニュアルのソースコード説明などでよくあるケースですが、
ひとつの fo:block にまとめて記述して、
linefeed-treatment=”preserve” で改行コードを有効にした場合です。

AH Formatterでの組版結果は以下のようになります。
 組版結果

このような場合、タグ付けしていない PDF では見た目のまま改行してコピペされますが
タグ付きPDF として出力してコピペすると
fo:block内のテキストはひとつの連続したテキストになってしまいます。
したがって、1行ずつ fo:block で分割する必要があります。

 


セミナーのご案内:Formatter Club 2017 -冬-

今週末、2017年12月8日(金) 14:00~18:30 に、中央区月島区民館にて「Formatter Club セミナー」(無料)を開催いたします。

今回の内容も次のように盛りだくさんになっております。

・『デジタル書籍制作Webサービス CAS-UB』の新機能紹介

・『AH Formatter V6.5』の新機能紹介

『AH Formatter』の活用事例として、
・株式会社ウイング様による「ドキュメント出力管理システム(OPALUS)」のご紹介
・株式会社ニューキャスト様による「編集・制作の環境改善を実現する AH Formatter の活用事例」のご紹介

・『AH PDFXML変換ライブラリ』の利用例のご紹介

・DITA入門

まだお申し込み可能ですので、セミナーへご参加を希望される方は、http://www.kokuchpro.com/event/AH_winter/ からお申し込みください。詳細もそちらに記載しております。

 


AH Formatter 機能のご紹介:リッチメディア注釈

AH Formatter』では、V6.5 よりマルチメディアをリッチメディア注釈として埋め込み可能になりました。
リッチメディア(オンラインマニュアル)

『AH Formatter』のサンプルFO集には、本機能の動作が確認できるサンプル「リッチメディア注釈」を掲載しております。

本機能を用いて PDF を作成することで、閲覧時に外部のプレイヤなどを必要とせずにマルチメディアの再生が可能になります。そのため、配布される PDF に動画などを埋め込んだ場合に、配布先での閲覧がスムーズに行えることが期待できます。

『AH Formatter』は主にバージョンアップのたびに機能強化や新機能の追加を行っています。
“あったら便利な機能” も既に追加されていることがございますので、どうぞお気軽にサポートにお問い合わせください。
未実装の機能であれば、ご要望として承り今後の開発の参考にさせていただきます。

今回ご紹介した「リッチメディア注釈」も海外のお客様の要望を受けて開発に至りました。

『AH Formatter』の評価版は次のページよりお申し込みいただけます。ご興味のある方は是非お試しください。
AH Formatter 評価版のお申し込み

なお、弊社は AH Formatter の自動組版だけではなく、
Office文書から PDF への変換、
それとは逆に PDF から Office文書への変換、
PDF の編集や加工なども得意としております。
ご案内に向けた Webページ「製品ナビゲータ」をご用意しておりますので、こちらも是非ご覧ください。
製品ナビゲータ

 


「Formatter Club セミナー2017冬」開催 緊急予告!

ご無沙汰をしています。Formatter Clubセミナー事務局です。

大盛況のうちに終えることができた7月7日のセミナーを自画自賛したきり、3ヶ月間の惰眠を貪っておりました。
この間、AH Formatter V6.5が公開され、前回のセミナーで予告した開催時期の11月も迫って来たということで、生存確認も併せて、次回「Formatter Club セミナー2017冬(仮称)」の予告をさせていただきます。

既に、Formatter Clubの会員の皆様にはご案内をしていますが、12月のお忙しい時期と重なりますので(11月開催ではなかったのかとの突っ込みについては、また別の機会にご説明を差し上げます)、取りあえずご予定だけでも押さえていただければと思います。

==============================================================
□ AH Formatterユーザーのための事例紹介セミナー「Formatter Club セミナー2017冬(仮称)」を開催致します。

■ 開催日:12/8(金)午後
■ 会場:未定(東京都内)10月下旬確定予定
■ 講演内容

  • AH Formatter V6.5製品案内とお役立ち機能紹介
  • 事例紹介
    株式会社ウイング様:ドキュメント出力管理システム
    株式会社ニューキャスト様:新規事例
  • AH Formatter周辺事情:内容未定
  • XML関連製品案内
    CAS-UB:新バージョン機能紹介
    AHPDFXML:(私達が考えた)お薦め利用法ご紹介

※講演内容については変更の可能性もありますことをご了承願います。

会場、日程等の詳細については、改めてご案内をさせていただきます。
==============================================================

なお、講演向けの導入事例紹介については、引き続き募集をしております。
是非とも「AH Formatter」を使った事例を公開したい、「AH Formatter」を組み込んだオリジナルアプリの発表の場にしたい、という方がいらっしゃれば、ご連絡をいただけますでしょうか。

また、「講演の時間は取れないが」と言う方は、AH Formatterの導入事例 でご紹介をさせていただきます。
如何に困難を克服したかなどのトピックがあれば、同様の課題を抱えている方の参考になると考えています。

今後も「AH Formatter」を導入されているユーザーや、関心を持っていただいている皆様と開発者とを繋ぎ、会員同士の交流、情報交換により製品の利用技術を向上させ、より皆様のお役に立てる製品としていくために努めてまいります。

次回「Formatter Clubセミナー2017冬(仮称)」も、乞うご期待!

「Formatter Club」へ参加ご希望の方は、紹介サイト より、参加申込書用 PDF をダウンロードしていただき、ご記入の上メールもしくは FAX でお申し込みください。
メールアドレス:naganawa@antenna.co.jp または nukaga@antenna.co.jp(Fomatter Club 事務局担当)
FAX 番号:03-5829-9024
また、「Formatter Club」へご要望も、同様の連絡先宛にお願い致します。


[XSL-FO] side-float 使ったリストの謎

こんにちは。
AH Formatterサポート担当です。
ドラクエがまだ終わりませーん。
やり込み要素は全部クリアしないと気が済まないタイプです。
最強装備全て揃えるまで頑張ります。
えと、ドラクエも FF も初代からリアルタイムでやっております。
(あっ、年がばれる)
3DS のすれ違い通信機能、田舎なんで誰にも会いません。。。車移動だし。

少し前のブログで、AH Formatter(XSL Formatter)の発売当初から携わっているというお話を
書かせていただきましたが、
xx年もやっております間に、
国内/海外のたくさんのお客様の XSL-FO を見てきました。
こちらが勉強になるようなテクニックもたくさんありました。

そんな中でひとつ、ずーーーーっと疑問に思っていることがあるのです。
それは、リストを fo:float で実装されるケースが度々あること。

簡単に書くと、こんな感じ。

 <fo:block><fo:float float=”start”><fo:block>1.</fo:block></fo:float>リスト項目の内容です。</fo:block>

実際にはもう少し複雑だったりしますが。

自分で XSL-FO(XSLTスタイルシート)を書いてもリストに fo:float を使ったことはありませんし、
念のため、弊社の XSLT開発の者に聞いてみたんですが、そういう方法は使わない、とのこと。
まぁ、リストは fo:list-block で書くもんだと思ってるからかもしれませんけど。

特定の会社のマニュアルのみとかですと、そういう方針?なのかな?と思ったりしたのですが、
別々のお客様で同じような手法を使われていることがちょくちょくあったりするのです。
これって、どうしてなんでしょう。
どこかにお手本あったりしたんでしょうか?
しかも、日本国内のみで、海外ではまず見たことありません。

XSL-FO のfo:list-block、難しいですか?めんどくさいですか?

リストの構造

うん、めんどくさいかも。。。。

もしこのブログを見たお客様で、
こんな理由で float 使ってるよと教えてくださる方、
いらっしゃいませんでしょうか。

■XSL-FOの仕様紹介:『XSL-FO の基礎 第2版 – XML を組版するためのレイアウト仕様』(クリックで紹介文章へ)


[XSL-FO] margin-top と space-before

こんにちは。
AH Formatterサポート担当です。
先日、私たちが暮らす長野県でもJアラートの音が鳴り響いて驚きました。
朝起きないことで定評のあるわたくしですが、一発で飛び起きました(^^;
一瞬で聴いた人を不安にさせるあの音?メロディ?を考えた人、ある意味すごいなぁと思います。
でも怖かった~。

丈夫な建物か地下に避難してください、って言われても
田舎なんで。。。。。。地下が。。。。ない。。。。(笑)

さて、今日は margin-top と space-before について、です。
margin-top は皆さまご存じのとおり、指定されたブロックの上端側にアキを作ります。
XSL-FO ではもうひとつ space-before というのがあります。
こちらは “before” なのでエリアの before側のアキということで
“top”(絶対位置指定)とはちょっと意味合いが違ってきますが
通常の横書き(lr-tb)の文書ですと “before” と “top” は同じですので
ここでは同じものとしてお話しします。

space-before を使った便利なケースはこんな場合です。

space-before を使った便利なケース

“1.1.1 Tree Transformations” と “1.1.2 Formatting” のサブタイトルのブロックには
どちらも space-before=”24pt” が指定してあります。
ページ途中にある場合は前のブロックとの区切りとしてアキを作り、
サブタイトルがページの先頭にある場合にはアキは不要ということでページ上端から始まります。
サブタイトルのブロックがどこに位置するか、ページの先頭にくるかどうかは
組版してみないとわからないですが、
space-before を指定しておくとこのような組版が可能です。

この振る舞いを定義するのが、
space-before の .conditionality です。
.conditionality の値は “discard” と “retain” です。
既定値は “discard” で、上記のような結果になります。
“retain” の場合は 常に(アキを)残す という意味なので
このサンプルのような場合でも、ページ先頭にアキが作られます。

XSL-FO で書く場合は、space-before.conditionality=”discard” のように指定します。
(既定値が discard なのでわざわざ指定しなくてもこうなります)

XSL-FO は元々 CSS2(2.1)を元に考えられているので
仕様の互換性のために margin-top が残されています。
では、margin-top と space-before のどこが違うのかというと、
この .conditionality です。

margin-top には .conditionality の概念はありません。指定もできません。
さらに (lr-tb のドキュメントにおいて)margin-top が指定された場合は
space-before.conditionality は “retain” が指定されたものとして扱うということが
XSL-FO の仕様で決められています。
space-before の方が実用的に考えられているんですね。

CSS は今のところ、残念ながら space-before はまだありません。
CSS3 の仕様策定が進んでいますので将来的には検討されるのかもしれませんね。

■XSL-FOの仕様紹介:『XSL-FO の基礎 第2版 – XML を組版するためのレイアウト仕様』(クリックで紹介文章へ)

 


[書籍紹介] MathML 数式組版入門

MathML 数式組版入門

昨年 6月に販売を開始した、W3C が定めた数式記述言語 MathML3.0 を使って数式組版を行うための入門書「数式組版入門」を、より MathML をご理解、ご活用いただけるよう、初版の内容を精査し、説明の追加や内容の整理を行い 8月に第1.1版をご用意しました。

本書はこの第1.1版より全文を PDF形式で無料公開しています。是非ともご覧ください。
PDF版

なお POD も販売しておりますので、
紙でお読みになりたい方は次の販売店よりお買い求めください。
販売店:Amazon.co.jp三省堂書店楽天ブックスhonto


Formatter Club 満員御礼!

早いもので、「Formatter Club」が発足してからこの7月で7年目を迎えました。
しかも、2017年7月7日とこれ以上の幸運は無いというに日に「Formatter Club【AH Formatter活用セミナー】」が開催されました。
「7」が続いてラッキー!な気分になっているところに、当初の定員を超える42名のご参加をいただきまして、お申込みをいただきました皆様には、この場をお借りてしてお礼を申し上げます。

3か月前の ブログ で開催を予告させていただきましたが、とかく腰の重たい性分で、まあまあそれなりに適当にと腰砕けになりそうなところでしたが、予告通りとは言えないまでも近い内容を実現できたのではないかと自負しています。

セミナーの概要は、こちら となります。
また、セミナー冒頭を飾りました「CAS-UB」のプレゼン資料については、こちら をご覧ください。 その他のプレゼン資料については、公開可能の承諾をいただきましたら、順次公開をさせていただく予定です。
ところで、なぜ開催の案内もなかったのに、突然に過去形の事後報告なのかという疑問は多々ありましょうが、実はこのブログの目的は次回の予告なのです。

次回は11月開催を予定しています。
既に、2社よりユーザー事例紹介の承諾をいただいています。
もし、「AH Formatter」を使った事例を紹介したい、「AH Formatter」を組み込んだオリジナルアプリの発表の場にしたい、という方がいらっしゃれば、ご連絡をいただけますでしょうか。 また、製品のお役立ち情報も、引き続きご提案をさせていただく予定です。

今後も、「AH Formatter」を導入されているユーザーや関心を持っていただいている皆様と開発者とを繋ぎ、会員同士の交流、情報交換により製品の利用技術を向上させ、より皆様のお役に立てる製品としていくために努めてまいります。

次回「Formatter Club」に、乞うご期待!

「Formatter Club」へ参加ご希望の方は、紹介サイト より、参加申込書用 PDF をダウンロードしていただき、ご記入の上メールもしくは FAX でお申し込みください。

メールアドレス:naganawa@antenna.co.jp または nukaga@antenna.co.jp(Fomatter Club 担当)
FAX 番号:03-5829-9024
また、「Formatter Club」へご要望も、同様の連絡先宛にお願い致します。


AH Formatter:縦書きのテーブルセルについて

こんにちは。
AH Formatterサポート担当です。
今週はAH Formatterのサポートで比較的よくあるご質問を紹介いたします。

今回は、縦書きのテーブルセルについて、です。
横書きの文書でも、テーブルヘッダだけ縦書きにしてセンタリング配置したいことってありますよね。
例えば、こんな感じ。
縦書きのテーブルセルについて

このように配置するための方法を順を追って説明します。

続きを読む


AH Formatter:”.precedence” の効果について

こんにちは。
AH Formatterサポート担当です。
今週はAH Formatterのサポートで比較的よくあるご質問を紹介いたします。

今回は、.precedence について、です。
XSL-FOの仕様の中で、space-before や space-after などのプロパティで Value に <space> が定義されているものがあります。

7.11.5 “space-before”
では、以下のように書かれています。

 XSL Definition:
 Value: <space> | inherit
 Initial: space.minimum=0pt, .optimum=0pt, .maximum=0pt, .conditionality=discard, .precedence=0

さらに
5.11 Property Datatypes
の中で、<space> の説明があります。

 A compound datatype, with components: minimum, optimum, maximum, precedence, and conditionality.

つまり、Value に <space> とあるプロパティについては
space-before.minimum=”2.0pt”
space-before.optimum=”3.0pt”
space-before.maximum=”4.0pt”
space-before.precedence=”0″
space-before.conditionality=”discard”
のような使い方ができます。

この中の “.precedence” について
どのような意味を持っているのか?
使い方がよくわからないというご質問を受けることがあります。

.precedence は指定値が競合するような場合の解決に用います。
競合した場合の強さを整数または”force”(最も強い)で表します。

space-after/space-beforeを例にしますと、

 <fo:block space-after=”2cm”>1のブロック</fo:block>
 <fo:block space-before=”1cm”>2のブロック</fo:block>

このような場合、どちらのblockも .precedence は指定されていないので
値は初期値の0です。したがって、
1のブロックと2のブロックの間の space は、
大きいほうの値が選択され、2cmとなります。

補足:
スペース指定子のこのような法則は
4.3.1 Space-resolution Rules
に定義されています。

次に、2のブロックに space-before.precedence=”force” を指定します。

 <fo:block space-after=”2cm”>1のブロック</fo:block>
 <fo:block space-before=”1cm” space-before.precedence=”force”>2のブロック</fo:block>

space-before の方が強制力を持つので、space は1cmになります。

次に両方に .precedence=”force” を指定すると、

 <fo:block space-after=”2cm” space-after.precedence=”force”>1のブロック</fo:block>
 <fo:block space-before=”1cm” space-before.precedence=”force”>2のブロック</fo:block>

両方とも強制的に space を出力するので、間の space は3cmとなります。

このような使い方を知っていると、章タイトル/節タイトルや本文との空きを調節するのに
便利なことがあるかもしれません。

参考資料
『XSL-FOの基礎』 6.8 複合データ型
 


Pages: 1 2 Next