タグ別アーカイブ: タグ付きPDF

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 で分割する必要があります。

 


Next Generation PDF について(2)

Core concepts and use cases

キーノートでは詳しいことが分からなかったので、このセッションのスライドを読んでみました。

ここでは「next-generation PDF」を処理する「next-generation processor」という用語が出てきます。その役割は「タグ付きPDFからの導出(Derivation):PDF コンテンツを HTML で表現するための標準化されたモデル」と書かれています。
どうやら、HTML にうまく変換できるような標準化されたタグ付けのモデルとその変換アルゴリズムを定めて、予測可能で互換性のある方法で HTML に変換しよう、ということのようです。

そして、HTML に変換してから端末に応じたスタイルシートを適用することで、既にモバイル環境に対応した Web のテクノロジーを利用して、PDF のコンテンツをモバイル環境で利用できるようにする、という目論見のようです。

PDF から HTML に変換する製品は現時点でも既にあるようで、後のセッションでも紹介があります。標準化された方法でより正確に出来ることを目指そうということでしょうか。

また、ユースケースでは、アクセシビリティの観点からの解説がありました。

U.S. や EU 等の政府機関ではアクセシビリティが要求されますが、既存のスクリーンリーダーなどの Assistive Technology(障害を持つ人々を支援する機器や技術)は HTML をサポートするが、PDF はほとんどサポートされない状況があります。一方で PDF は電子文書としての信頼性と互換性が確立されているので、政府機関は PDF を諦めたくはない。

アクセシビリティの準拠基準は、W3C の WCAG (Web Content Accessibility Guidelines) 規格の達成基準レベル「AA」を条件として示されるようですが、この規格は Web を前提としたもので HTML には適用しやすいが、PDF には直接的に適用しにくいので、PDF が HTML として表現できれば WCAG への適合を判定しやすい、ということが説明されています。

今後 PDF がどのように発展していくのか。「PDF Day Europe 2017」での動向をご紹介しました。参考になれば幸いです。

<< その(1)


Next Generation PDF について(1)

5月15, 16日にドイツのベルリンで開催されたイベント「PDF Day Europe 2017」のスライドやビデオが公開されていました。

https://www.pdfa.org/slides-and-video-recordings-of-the-pdf-days-europe-2017/

PDF2.0 の情報があれば見ておこうと思い Web サイトを訪れたのですが、「Next Generation PDF」という見慣れないワードを見つけました。最初は PDF2.0 のことかと思ったのですが違うようです。初日のキーノートと、3トラックのうち1トラックが「Next Generation PDF」に充てられています。気になり少し調べてみました。

KEYNOTE: Introducing Next-Generation PDF

スライドを見ると、最近のモバイル端末での PDF の閲覧や操作性の問題を課題としているようです。PDF は電子文書フォーマットとして広く普及していますが、モバイル端末環境となると閲覧や操作にかなり不満がありますね。特にスマートフォンでは閲覧するだけでも拡大縮小したり移動したりで大変です。PDF リーダーによっては実装されているリフロー表示もうまく使えないことが多いです。

モバイル端末しか使わないユーザーが急増する中で、Web の世界ではレスポンシブ web デザインやモバイルファースト等、積極的にモバイル環境への対応が進んでいますが、PDF もモバイル端末環境に対応すべく、イベントの主催者である PDF Association のテクニカルワーキンググループで「Next Generation PDF」なるものを検討している、ということのようです。

では「Next Generation PDF」とはどんなものなのか。スライドによると、

  • フル機能の PDF2.0
  • うまくタグ付けされた PDF

と書いてあります。PDF2.0 をベースにした規格になるのでしょうか。

「タグ付きPDF」は、例えば段落、表、ヘッダといった文書の構造情報を PDF に付加するための仕様です。PDF のページは単に文字や線や画像が並べられて見た目が構成されているだけなので、それらが段落、表、ヘッダなど何を表すのかプログラムは正確に判定できず推測するしかありません。そのため、スクリーンリーダーで正しい順序でテキストを読めない、PDF リーダーのテキストリフロー表示がうまくできないといったことが起こります。この問題は「タグ付きPDF」にすることでより正確にできるようになります。
「タグ付きPDF」は PDF1.4 から導入され ISO32000-1(PDF1.7)の仕様の一部ですが、PDF2.0 で見直されることになっています。

キーノートはここまででした。詳しくはあとのセッションでということです。
明日は「Core concepts and use cases」を読んでみたいと思います。

その(2) >>