Reading/Web/PDF 関連の機能

This page is a translated version of the page Reading/Web/PDF Functionality and the translation is 99% complete.

2019年7月15日、PDF出力に関する更新

PDF レンダラの新しい版を実装しました。フィードバックを見守っていますが、今のところ目立った問題は発生していません。利用者からの指摘の採用は検討しますが、現在は管理モードに入ったプロジェクトである点にご留意ください。言い換えるなら、実装して有効なことが証明されており、開発はひとまず達成しました。このページ附属のトークページは今後も開いているものの、すでに開発者が次の課題に取り組んでいるため、返信に多少、時間をいただくことになります。

ブックに関しては、ボランティア開発者およびPediaPressの皆さんの手に委任しました。開発チームが技術面に直接タッチすることはありませんが、質問などで今後も連絡を取り合っていきます。

2019年6月4日、PDF出力に関する更新

単一記事を対象に、新しいPDF出力をすべてのプロジェクトで実装しました。 これは Electron 出力装置に関連し、しばしば予想どおりの PDF が作成できないという状態の解決策です。 新しいレンダラ (出力のしくみ) をぜひ試用して、ご質問、バグなどの問題発生をお知らせください。

2019年3月18日、PDF出力に関する更新

新しいレンダラ (出力装置) Protonは完成目前で、数カ所の課題を残すまでになりました (詳細はphab:T181084のタスク図をご参照ください。) 実装日が確定次第、更新情報を掲載する予定です。 このレンダラは単一記事のPDF化において既定になり、現状の Electron と置き換えます。

2018年8月17日、ブック形式の更新

 
PediaPress提供のブックのサンプル

新しいレンダラをよりわかりやすくした更新版のサンプルをご紹介します。 ウィキマニアで最初に提案した第1版からレイアウトが大きく変わりました。 皆さんのフィードバックのおかげです。 出力にはまだ目立った問題があります。改ページや情報ボックス、表組や数式にまだ大幅な改良が必要です。 未解決の問題の一部は、この英語以外の文字や数式のサンプルファイル が示しています。 現在、数式はMathMLでレンダリングしており - LaTeXへの変更で重大な改善につながると見込まれます。

2018年8月8日、ブック形式の更新

PediaPress社と新しいブックの作成と書式の開発を進めてきました。現状の成果のサンプルを提出してもらったところ、完成版と非常に近いところまで来ています。PediaPress社の担当から提示された現在の改良すべき点を協議しました。サンプルを検討して何か感想や意見などあったら、ぜひ議論のページにフィードバックを投稿してご教示ください。

2018年4月、ブック形式の更新

ブック形式の機能はPediaPressによって復活します。 新規のチケットrendererを細かく検討した結果、本来のブック作成機能のコアの機能(ページ番号や目次)は新しいレンダラでは実装が非常に困難だと判明しました。 それに加えて連結コードに重大な問題がありました。 そこでウィキメディアのプロジェクトにPDF形式のブック作成機能を取り戻すという観点から、代替案を探す必要があったのです。 Wikipediaにブック作成機能をもたらしたPediaPressに連絡を取り、PDFレンダリングによるブック作成機能の再構築に興味があるかどうか打診したところ、合意を得ることができました。 私たちは現在、詳細と日程作りに取り組んでいます。 暫定的な解決策として、旧来、PDF作成に使用された古い技術に取り組み始めています。 この手法は、マップなどグラフィック系の要素に弱点があるとしても、より速く実効性のある解決策なのです。 初回の実装後、フィードバックに基づいて新しいHTML-to-PDF形式のレンダラを作成する予定です。

2018年1月更新

ブック機能のPDFからブック形式への移行について、性能テストの準備に入ります。詳細は2月初旬にわかる予定です。

2017年9月更新

現行のPDFレンダリング・サービスoffline content generator (OCG) は既に保守ができない状態です。 簡単に言うと破損したのです。 ウィキメディア財団の閲覧チーム では代替のために数ヶ月前から取り組んできました。 OCGはサードパーティの開発から始まり旧式のコードで運用することから、将来的にセキュリティの脆弱性及びその他の深刻な問題をもたらす可能性が懸念されます。 この3ヵ月にわたりPDF作成ページにバナーを掲示して、新しいレンダラーのプロトタイプへのfeedback(フィードバック)を募集しました。 OCGと比べると、新しいレンダラーは機能を改善します。表組やインフォボックスを含めて印刷でき、読みやすさを重視した書式を備える予定です。 プロトタイプには多くのフィードバックが寄せられ、新しいPDFに必要な更新に取り組み中です。

補遺:PDFブック生成は短期的に無効に

残念ながら、旧来のレンダラー (OCG) はブック形式の機能を完成させる以前に、レンダリングのオプションから削除しなければなりません。 This is earlier than we wanted. OCG 削除の実行までには記事単位のレンダラーは完成する見込みです。 ところがブック形式の生成機能は、必要な作業を評価し完成するまで中断します。 当初は代替のレンダラーとして Electron レンダリング・サービスを検討したものの、重いPDFに対応不可能であり、複数の記事をブック形式にまとめようとすると失敗してしまいます。 サイズが大きくても、私たちが求める条件を満たすブック形式に対応する新しいレンダリング・システムを決定するため努力を続けます。 これは予定外の道のりでした。 PDF機能の短期的な削除はまったくの想定外でした。

日程表

  • 2017年10月1日 – 記事単位でレンダーする機能完全版の公開(PDF形式で出力)
  • 2017年10月1日 – ブックのPDF 生成を一時停止
  • 2017年10月1日 – OCG レンダラーの廃止期日を告知
  • 2018年1月 – 新しい PDF レンダラーの公開 (暫定的。代替のレンダリングのシステム研究の結果待ち)

機能

現行及び予定される機能の全リストは以下にあります。

このページの更新に伴い、PDF 生成ページのバナーや技術ニュース、ウィキメディアの特定のメーリングリストで告知する予定です。

はじめに

旧来のPDF生成サービスであるoffline content generator (OCG) は既に管理できなくなりました。 簡単に言うと、破損したのです。 サードパーティ製から始まり旧式のコードで運用するため、今後、セキュリティの脆弱性その他の重大な問題を招きかねません。 PDF 機能の導入に当たり旧来のものを置き換えないと、まったく予想外のときに削除しなければならない不幸な事態が突発するかもしれないのです。

さらに加えて、コミュニティから寄せられたレンダリングの要望の多く、中でもthe ability to render tables(表組の生成)に対応できません。 そこでその代替策としてふさわしいレンダリング サービスにエレクトロン レンダリング サービスを新たに選びました。 次の段階はエレクトロンを介して OCG の機能を複製することです。 必要と判断した機能の主な部分は、下記の要領で説明します。 欠けている点あるいはご提示した一覧で無駄な点について、ぜひ会話に参加してください。 同時に、PDF レンダリングの今後の計画の要点を示し、現時点でのフィードバックを募集します。

既知の問題点

  • 現在、ファイアフォックス (上流) には、複数のページに共通して表示されるinfoboxのスタイルに影響を与えるbugが存在します。Mozillaからの進捗状況はこちらで確認できます: https://bugzilla.mozilla.org/show_bug.cgi?id=688556.

ユーザーベース

下記の表は Electron「PDF をダウンロード」機能の6時間のトラフィックのサンプルです。 トラフィック分析の条件はオペレーティングシステム (OS)、ブラウザとそのメジャーな版情報です (Windows 7、Chrome v61など*)。 トラフィックの大部分が Windows 関連のマシンから来ていることに十分な注意が必要です。

OS ブラウザー ブラウザーのメジャー バージョン リクエスト % 
その他 その他 - 14.38
Windows 7 Chrome 61 12.42
Windows 10 Chrome 61 8.83
Windows 7 IE 11 7.33
Windows 7 Firefox 56 6.59
Windows 10 Firefox 56 3.82
Windows 10 Edge 15 3.24
Windows 8.1 Chrome 61 3.07
Windows XP Chrome 49 2.2
Windows 10 Chrome 59 1.53
Windows 10 IE 11 1.51
Windows 8.1 Firefox 56 1.31
Windows XP Firefox 52 1.22
Windows 8 Chrome 61 1.15
Windows 8.1 IE 11 1.15
Mac OS X Safari 11 0.9
Windows 7 Firefox 53 0.89
Windows 7 Firefox 52 0.78
Ubuntu Firefox 56 0.78
Windows XP IE 6 0.7
Windows 7 Chrome 55 0.68
Windows 7 Firefox 55 0.62
Mac OS X Chrome 61 0.62
Android UC Browser 11 0.6
Windows 10 Edge 14 0.59
Windows 7 Opera 48 0.53
Android Chrome Mobile 61 0.49
Windows 10 Opera 48 0.44
Windows 7 Chrome 60 0.4
Windows Vista Chrome 49 0.39
Windows 7 Yandex Browser 17 0.37
Windows 10 Firefox 55 0.37
Mac OS X Safari 10 0.36
Windows 10 Chrome 50 0.34
Android Android 4 0.33
Mac OS X Firefox 56 0.33
Windows 10 Chrome 60 0.32
Windows 8.1 Chrome 43 0.3
Android Amazon Silk 60 0.29
Windows 7 Sogou Explorer 1 0.27
Windows 8 IE 10 0.26
Windows 7 IE 8 0.26
Windows 7 IE 9 0.25
Windows 8 Opera 12 0.25
Linux Firefox 52 0.25
Mac OS X Firefox 53 0.24
Windows 7 Firefox 45 0.24
Windows 10 Firefox 57 0.24
Windows 7 Firefox 38 0.22
Windows 10 Firefox 47 0.21

現在の機能の要件

下記のとおり、現在、記事単体およびブック形式のPDFレンダリングには一連の要件があります。太字で示した部分は、現行の実装と異なります。

履歴

  • ウィキペディアのページから PDF もしくは書籍を生成するには、OCG というサービスで処理します。 ブック生成機能を利用して「ブック」(書籍)をレンダリングするために Collection OCG を埋め込んで実行します。 ところが OCG には問題が複数あり、わけてもtables(表組)で障害があります。
  • OCG には、コミュニティから苦情があがったように表組を処理できない点を含め、問題が複数、判明しています。
  • ドイツ語話者のコミュニティにおいて、表組のレンダリングは技術の要望リスト第9位です。
  • ウィキメディアのドイツ支部はPDFで表組のレンダリングを解決する取り組みを始め、 Electron を導入しています。計画では OCG の代替ではなく、併用を目指しています。
  • ウィキメディア財団でもドイツ支部のエレクトロンの取り組みと並行して、 OCG サービスの管理担当が OCG の削除と入れ替えは必須という結論を得ました。
  • WMF 閲覧チーム (Reading Team) は長期的にPDFレンダリングの管理の責任を引き継ぎ、すべてのプロジェクトで表組をレンダリングする計画作りに着手しました。
  • エレクトロンに関してフィードバックを集めるため、閲覧チームはcommunity consultation (コミュニティとの協議) を始めます。
  • 閲覧インフラストラクチャとウェブの両チーム(Reading Infrastructure and Web teams)でエレクトロン・サービスへ OCG の機能をポートする作業量の見積もりを開始しました。

協議を経た更新

 
コミュニティとの協議を経た PDF と印刷スタイル案

現行のPDFレンダラーの実装に関して2017年7月初旬に協議を始めました。その反応の評価を経て以下の考察を行なっています。

  • 記事の配置は2段組より1段がよいというユーザーが上回る
  • 記事の2段組を好むユーザーによると、好きな理由は書式とルックアンドフィール(デザイン)だと強調する。人により、PDF印刷で1段組を選ぶとフォントの大きさや紙の無駄づかいが気がかり
  • 要望のあった機能
    • 機能的なハイパーリンク
    • 日付とURLの表示。「このページは[URL]から[date]付でダウンロード」
    • レイアウトや題名、作成年月日のCSS(スタイル)をカスタマイズできる
    • 2段組のオプション
    • 画像の表示/非表示を選べる
    • マージンの調整
    • 節単位の印刷ー脚注や不用な段落、目次の削除が可能
    • テキストの大きさを設定できる

コミュニティからのフィードバックを受け、印刷書式に以下を取り入れました。

  • ハイパーリンク
  • 記事の詳細
  • フォントは小さめで書籍に似た書式

上記の要望で未対応のものはPDFレンダラー第2版まで延期し、利用できるオプションをカスタマイズする設定を構築する予定です。

提案

PDFレンダリングに必要な機能の範囲を下記で提案しています。

  • 記事単体はサイドバーから「PDF 形式でダウンロード」のリンクを使い、PDF を生成
  • 複数の記事は「Book Creator」ツールを介してPDFを生成
  • すべての記事に文章と画像の帰属情報を含める
  • レンダリングで生成した PDF 内の表組みは、印刷出力できる
    • PDF の印刷書式を変更できる (オプション)

現行版と今後の実装予定との差分

OCG 新しいサービス 備考
個別の記事のレンダリング はい はい
ブック作成機能で複数の記事をレンダリング はい はい
複数の記事の目次がある はい はい
表組のレンダリング いいえ はい
帰属の表示 はい はい 未解決の疑問点:新サービスにおける帰属表示の位置
スタイル Latex 新書式
複数の段組でレイアウト はい いいえ
既定のレイアウトは2段組 はい 暫定的 既定で段組にしないか2段組にするかは、フィードバック、量的/質的試験の結果によって選択。
出力の形式 PDF、プレーンテキスト PDF 限定

印刷書式(Design)

新しい PDF の書式は読みやすさを高めるよう設定しました。コミュニティのフィードバックならびに量的・質的試験の結果によっては、ブック形式/記事単体の両方もしくはどちらかに 2段組で PDF を出力できる機能をビルドするかもしれません。

開発と展開の工程表

下記の大まかな工程表の概要にしたがって開発と展開を進めます。今後、変更する見込みです。

  1. 2017年4月 – 5月:
    1. 閲覧チームが上記の機能にバックエンドの支援体制を準備
    2. 提案された機能の拡充もしくは縮小は、コミュニティと協議します。
    3. 書式に関する質的試験
  2. 2017年6月 – 7月:
    1. 新しい書式の実施
    2. すべてのプロジェクト群で OCG と併用して第1版を実装、パフォーマンスを比較
    3. コミュニティ他との協議により反復して改良、限定された変数で引き起こされるエッジケースの特定
  3. 2017年8月-同年9月
    1. 必要に応じて行われた、その他の変更
  4. 2017年10月
    1. すべてのプロジェクトでOCG抜きの2回目の反復修正を開始

単一の記事

  • 単一の記事からPDF を作るには「Download as PDF」リンク(PDF形式で書き出す)を選択
  • 「Download as PDF」(PDF として書き出し)を選ぶと、PDFが生成される。ファイルの書き出しのときユーザーは「Download the file link」(ファイルのリンクを書き出す)を選択
  • PDFファイルに含まれる要素:
    • 記事の題名と本文
    • 情報ボックス (ある場合)
    • 表組 (ある場合)
    • 段組なしのレイアウト
    • ページ番号(ノンブル)
    • 記事のすべての画像とキャプション
    • 記事からリンクを貼ったページへのリンク(青字リンクと外部リンク)
    • 本文と画像のソース、寄稿者、著作権

Phabricator で問題を追跡

OCG の終結を含めElectron PDF レンダラーからの乗り換えなど、PDF 関連の変更、ブック作成あるいはページ収集を取り巻く更新は全て、Phabricator の Proton プロジェクトで追跡します。 PDF 関連のタスクの更新情報は、プロジェクトページのまとめをご参照ください。

ブック形式

2017年10月展開の機能

注記:今回は現行のブック・クリエーターに一切変更を加えない

  • ユーザーは「Create a book」を選択、ブック・クリエーターを起動
  • こうして現行のブック作成ページが開く
  • ブックを書き出すときユーザーはブックページの「download」リンクを選択
  • ユーザーはブックをPDF 形式でのみ書き出す
  • ブックには単一の記事に含まれるすべての要素が収まっている:
    • ブックの表題ページ
    • 記事ごとの終わりに、ブックに収められた記事単位の脚注を表示
    • 記事はそれぞれ新しいページから始まる
    • すべての記事からテキストと画像の出典、貢献者や著作権の情報の項目を集め、単一のセクションにまとめて示す。

2017年11月 - 12月に展開の機能

  • ブックにはページ番号が載った目次を生成
    • 利用者が目次から節を選ぶと、ブックの中の当該のページを表示する

ブックの書式を更新、可読性が向上します

代替策

MediaWiki ページを LaTeX、PDF、ODT、EPUBにフォーマット変換する代替策を紹介します。

http://mediawiki2latex.wmflabs.org/

サーバ上の計算処理リソースには上限があります。

Ubuntu Linux をご利用の場合、m2l-pyqt もしくは mediawiki2latexをインストールすると処理速度が上がります。