Access データベースの添付ファイル フィールドに PDF ファイルを保存した場合、データベースからその添付ファイルを取得して WinForm で表示することはできますか? それとも、WinForm WebBrowser でしょうか?
それとも、データベース内のフィールドに固執して、そのファイルのファイル パスを教えてくれるので、WebBrowser をそこに移動できるのでしょうか?
Access データベースの添付ファイル フィールドに PDF ファイルを保存した場合、データベースからその添付ファイルを取得して WinForm で表示することはできますか? それとも、WinForm WebBrowser でしょうか?
それとも、データベース内のフィールドに固執して、そのファイルのファイル パスを教えてくれるので、WebBrowser をそこに移動できるのでしょうか?
データベースからファイルを読み取るには、データベースからバイトを読み取り、それらを新しい pdf ファイルに書き込んでから、ビューアをそのファイルに向ける必要があります。WinForm で直接 PDF を表示するには、サード パーティ製のコントロールが必要です。ブラウザで PDF を表示できるプラグインがある場合は、WinForm WebBrowser が機能します。
パスだけをデータベースに保存すると、コーディングの観点から見れば手間が省けます。ビューアーにファイルを指定する必要があるからです。また、データベースに問題がありますか。すべての添付ファイルが失われる可能性が高くなります。反対に、パスだけが保存されている場合は、それらのパスが常にアクセス可能であることを確認する必要があります。
特にこれが大規模なデータベースである場合は、上記の理由からデータベースの外部に保存することをお勧めします。
私は、Access 2007 で添付ファイル フィールド タイプが導入されるずっと前から Access を使用してきたため、データベースに画像やドキュメントを埋め込むことを敬遠してきた歴史があります。(これらはデータベースを非常に肥大化させる傾向があり、ファイルに追加された OLE "ラッパー" は、コードを介してファイルを抽出しようとするときに本当に厄介でした。)
.SaveToFile
Access 2007+ では、DAO が添付ファイルをサポートするように更新されているため、添付ファイル フィールドを使用すると、これがかなり簡単になり.LoadFromFile
ます。また、添付ファイルはデータベースに保存されるときに (明らかに) 圧縮されるため、肥大化の問題を解決するのに役立ちます。
したがって、選択は本当にあなた次第だと思います.WinFormでPDF添付ファイルを表示(またはプレビュー、または開く)したい場合はMicrosoft.Office.Interop.Access.Dao
、添付ファイルを一時ファイルとして保存するために使用することになるでしょう.とりあえず。したがって、添付ファイルをプレビュー/表示/開くために使用するメカニズムは、ファイルに対して機能します。どちらかになります
データベースから抽出された一時ファイル、または
データベース内のパス名または URL から参照する、ファイルシステム内の永続ファイル。