0

Chrome でパッケージ化されたアプリに PDF が含まれており、ユーザーに表示させたいと考えています。現在のフレームで開くと、「Chrome PDF Viewer は許可されていません」というエラーが表示されます。

率直に言って、Chrome の PDF ビューアはかなりひどいので、とにかくユーザーが選択した PDF ビューアで表示できるようにしたいと思います。chrome PDF プラグインを (実験として) 無効にし、chrome.app.window.open を使用して PDF を開こうとすると、PDF が「ダウンロード」され、ユーザーはそれを開くことができます。しかし、これには 2 つの問題があります。

  1. 現実的には、ユーザーを chrome://plugins に移動させて無効にすることはできません
  2. ブラウザ ウィンドウがないため、ユーザーはダウンロードが行われたことを知りません。

助言がありますか?私のアプリに埋め込まれた PDF を開くことは、このアプリにとって必須の機能です。

4

2 に答える 2

1

私はこれを広範囲に調べましたが、Chrome アプリでローカルの PDF を開く方法はないという結論に達しました。私もデータ URI を試しました。

問題はウィンドウ内の PDF サポートではないと思います。これはまだ Chrome であり、PDF のサイズでもあります。むしろ、技術的な問題で、いつか解決されるかもしれないと思います。

私の場合、Chrome アプリで PDF を作成します。表示できませんし、アップロード先のサーバーもないので、ユーザーが選んだファイルに書き込んで、ユーザーが自分で処理できるようにしています。

于 2013-12-06T21:22:36.497 に答える
0

私はこれを機能させましたが、それがあなたにとっての解決策であるかどうかは、ユースケースに大きく依存します. このソリューションには、次の 3 つの部分があります。

  1. pdfjs を使用して実際のレンダリングを行います。

これをパッケージ化されたアプリで実行するには、国際化サポートに多少の暴力を加える必要があります。そして、それを行った後でも、明らかな理由もなく一部の PDF がロードを拒否することに気付くでしょう。そのため、パッケージ化されたアプリで pdfjs を機能させようとする必要はありません。ただ:

  1. アプリ全体を<webview>永続パーティションに配置し、HTML5 キャッシュ マニフェストを使用して、すべてのファイルをオフラインで表示できるようにします。

ええ、ええ、私はキャッシュ マニフェストがもはやクールではないことを知っています。しかし、パッケージ化されたアプリで使用するすべてのファイルを一覧表示できる場合は、キャッシュ マニフェストが実際にうまく機能する 1 つのケースを実行していることになります。

  1. 次に、パッケージ化されたアプリを使用して、Web ビューを含む小さなラッパーをページに配布します。

また、厳格なパッケージ化されたアプリのルール (eval、sync xhr、2GB 制限など) に準拠するようにアプリを書き直す必要がないという利点も得られます。

m.kaon.com/c/ka で実際の例を見ることができます (デスクトップ アプリを取得するには Chrome でアクセスします。Firefox でアクセスすると、同じトリックを使用するホストされたアプリにアクセスできます)。PDF は下部の「Kaon を選択する理由」セクションにあります。

于 2015-03-02T18:58:16.927 に答える