3

WPF アプリケーションに PDF を埋め込んで表示しようとしています。これまでのところ、これらのソリューションを試しましたが、成功しませんでした:

  1. ここ に示されているものと同様に、WindowsFormsHostホスティングコントロールにPDF を表示します。問題は、私のアプリケーションがModern UIに似たスタイルを作成するように設定していることですが、それが a とうまく調和しない(コントロールが見えなくなる) ことです。AxAcroPdfAllowsTransparency = TrueWindowsFormsHost

  2. PDF をWebBrowserコントロールに表示します。問題は同じです。

  3. を設定AllowsTransparency = Falseしますが、これによりアプリケーションの動作が遅くなります。私は WPF を意図的に使用して、ビジネス アプリケーションのルック アンド フィールをエンド ユーザーの利益になるように強化しているため、これは解決策にはなりません。

  4. で 2 番目のウィンドウを使用してAllowsTransparency = Falseを表示しWindowsFormsHost、それをハックしてメイン ウィンドウの子コントロールのように見せます (ここで説明します) 。ただし、MVVM を使用しているため、コード ビハインド アプローチは好きではありません。

  5. WPF のネイティブ PDF コントロールを見つけます。ただし、商用のものは数個しか見つかりませんでした。現在、それはオプションではありません。

私が必要とするのは、次のことができることです:

  • WPF アプリケーションで PDF またはその表現 (つまり、画像または別の形式への変換) を表示します。
  • 私のスタイルを視覚的に損なわず、流動的に保ちます (AllowsTransparency維持する必要がありますTrue)。
  • MVVM の原則を尊重するアプローチを使用します (コード ビハインドがないことが望ましい)。
  • 私のアプリケーションに無料で含めます (商用利用)。

私は手作りのソリューション、オープンソース ライブラリ、さらにはまったく異なるアプローチに対して完全にオープンです。

4

3 に答える 3

3

オープンソース ソリューションを受け入れる場合は、 GhostScriptをお勧めします。PDF を (ほとんどの場合、まともな品質で) 作業したいほとんどすべての形式の個々の画像ファイルに変換できます。

もう 1 つのオプションは、pdf2htmlEXを使用して PDF を HTML に変換することですが、現時点では Linux 用にのみコンパイルされます。

Linux と Windows の両方で、いくつかのアプリケーションで上記のソリューションの両方を使用しています。HTML 方式の利点は、テキストをコピーして貼り付けることができることです。GhostScript による方法の利点は、イメージの移植性が高い (小さい) ことです。

他のオープンソース ソリューションと同様に、各製品がリリースされる際のライセンス条件と、それが最終結果にどのように影響するかを認識する必要があります。

于 2014-01-20T17:59:20.233 に答える
2

私が以前に使用した良い解決策は、CefSharp を使用することです。PDF ドキュメントのプレビューをサポートするのは、Chrome ブラウザ エンジンです。クイック スタート ページにアクセスします。

問題が発生した場合は、トラブルシューティング ページにアクセスして適切な設定を行うことをお勧めします。

ローカル ドライブにある PDF ファイルを表示したい場合は、ブラウザに次の設定を使用してから、file:///プロトコルを使用する必要があります。

 CefSharp.BrowserSettings browserSettings = new CefSharp.BrowserSettings();
 browserSettings.FileAccessFromFileUrls = CefSharp.CefState.Enabled;
 browserSettings.UniversalAccessFromFileUrls = CefSharp.CefState.Enabled;
 browserSettings.TextAreaResize = CefSharp.CefState.Enabled;
 my_bowser.BrowserSettings = browserSettings;
于 2016-06-28T19:10:34.060 に答える