私はWPFを初めて使用し、WPFアプリケーションにPDFビューアーを追加しようとしていますが、それを行う方法がうまくいかないようです...私がオンラインで見つけたチュートリアル/例ですが、さまざまな理由で私にはうまくいかないようです...
たとえば、次のチュートリアルを試してみました。 https://documentation.devexpress.com/#WPF/CustomDocument114328 PDF設計時のビューア-itに言う
dX.15.2:Data&Analytics ToolboxタブからPdfViewerControlをドラッグして、メインウィンドウにドロップします。
ただし、ツールボックスにData & Analytics
タブはないようです... Data
タブがありますが、ポインター、チャート、リストビューなどのアイテムがあります。何かありますかVisual StudioでData & Analytics
ツールバーを追加/有効にする必要がありますか?
私は次のチュートリアルに従ってみました: https://documentation.devexpress.com/#WPF/CustomDocument114329 PDF Viewer by code- it
ソリューションエクスプローラーを開き、[参照設定]を右クリックして[参照の追加...]を選択し、PDF Viewer Libraryを追加します。
次に、DevExpress.Data.v15.2、DevExpress.Pdf.v15.2.Core、DevExpress.Xpf.DocumentViewer.v15.2.Core、DevExpress.Xpf.PdfViewer.v15.2アセンブリを見つけて、それらのチェックボックスをアクティブにします。 。
しかし、Add Reference
にアクセスすると、言及されているアセンブリがどこにも見つからず、それらを「検索」してもアイテムが見つかりません...
include
がありませんか、またはこれらを使用するためにどこかまたは何かからいくつかのライブラリをインポートする必要がありますか?
私が試したもう1つは: http://www.codeproject.com/Articles/380019/Using-Adobe-Reader-in-a-WPF-app これは言う:
このコントロールをプロジェクトに追加すると、空白のキャンバスでWindowsフォームデザイナが開かれます。ツールボックスを開く必要があります(CTRL + W、X)。最初のステップとして、カスタムコントロール用の新しいタブを追加することをお勧めします。これは、ツールボックスのコンテキストメニューのオプションです。この新しいタブを展開して、コンテキストメニューから[項目を選択]を選択します。 [ツールボックスアイテムの選択]ダイアログが表示されたら、[COMコンポーネント]タブを選択し、[Adobe PDF Reader(これはAcroPDF.DLLをツールボックスに追加します)]を選択します。
しかし、私が話しているChoose Toolbox Items
またはCOM Components
が見つからないようです...
誰も私に明確なチュートリアルを教えたり、WPFアプリケーションにPDFビューアを追加する方法を説明できますか?Visual Studio 2015を使用しています。
編集
以下を実行して、アプリケーションウィンドウ内にPDFファイルを表示しようとしました。
<Grid>
を追加して、XAMLのGUIにPDF)を表示します。
<StackPanel>
<Grid x:Name="browserHost" Height="300" Width="525" Margin="0,0,0,0"></Grid>
</StackPanel>
WebBrowser
をC#の<Grid>
に追加し、それをPDF表示したい場所:
System.Windows.Controls.WebBrowser browser = new System.Windows.Controls.WebBrowser();
public MainWindow()
{
InitializeComponent();
try
{
//browser.Navigate("C:\\...\\sample.pdf");
browserHost.Children.Add(browser);
//browser.Visible = true;
browser.Navigate("C:\\...\\sample.pdf");
browserHost.Opacity = 200;
}catch(Exception e)
{
Console.WriteLine("browser is visible/ not: " + browserHost.Visibility);
}
}
private void Window_Loaded_1(object sender, RoutedEventArgs e)
{
/*Create the interop Host control */
//System.Windows.Forms.Integration.WindowsFormsHost Host = new System.Windows.Forms.Integration.WindowFormsHost();
/*Create the MaskedTextBox control */
//browser.Navigate("C:\\...\\sample.pdf");
//Host.Child = browser;
browserHost.Children.Add(browser);
}
しかし、現在、アプリケーションを実行すると、ロードするとすぐに、追加したbrowser
に次のようなページが表示されます。
Webページへのナビゲーションは取り消されました
ファイルを開くか保存するかを尋ねるダイアログボックスがポップアップします(sample.pdf
-ブラウザに表示しようとしているもの)...
ファイルを表示するのではなく、ダウンロードしようとするのはなぜですか? browser
をダウンロードしてファイルを表示する代わりに表示するにはどうすればよいですか?または、ここでSystem.Windows.Controls.WebBrowser
以外のものを使用する必要がありますか?
@NawedNabiZadaで既に示唆されているように、試みられた簡単な方法の1つは、埋め込みInternetExplorerを使用してAdobe PDF Reader
ActiveXコントロール。したがって、Windows上で実行しており、Adobe PDF Reader
インストール済み。
次に、次のコントロールを含むユーザーコントロール、ウィンドウなどを作成します。
<WebBrowser x:Name="pdfWebViewer"></WebBrowser>
コンストラクターで、空白のページに移動します。
pdfWebViewer.Navigate(new Uri("about:blank"));
PDFドキュメントをそのコントロールに読み込むには、次の簡単なコードを使用します。
pdfWebViewer.Navigate(fullPathToPDF);
このアプローチは、SAPクライアントを含むWPFアプリだけでなく、多くのWindowsソフトウェアで使用されていますが、隠れた問題があります。 この質問 を参照してください。
これを機能させるには、Internet ExplorerのAdobe PDF Reader Addonを有効にする必要があります。AcrobatReader XIにはさまざまな問題があり、DCバージョン。 Adobeを有効にするPDF IE設定、アドオンに移動し、Adobeを見つけるPDF Readerおよび有効にする(AR XIおよび上記)。
私にとって、これはリンクしたコードプロジェクトの記事と比較して好ましい方法でした。
cefsharp Webブラウザでも可能です。
pDFの埋め込みモジュールが含まれているため、Acrobat-Readerやその他のActiveXは必要ありません。
WPF pdfビューアでは、 http://pdfprinting.net/ を使用できます