背景:プロジェクトのプレビューとのpdfファイルダウンロード
環境:jdk1.8、SpringBoot2.0、Mavenの
(2.1をダウンロードしhttp://mozilla.github.io/pdf.js/getting_started/#download:pdf.jsダウンロードを。 266バージョン缶)
コピーインのダウンロードソースプロジェクトの
レビューviewer.js:
defaultUrl:{
値: 'compressed.tracemonkey-PLDI-09.pdf'、---は、デフォルトのPDFパスです
OptionKind.VIEWER:種類
}
変更します:
defaultUrl:{
値: ''、
種類:OptionKind.VIEWERは
}
:新しいウィンドウプレビューが開きます
。<INPUTタイプ= "ボタン"値= "プレビュー" ID = "viewBtn">
<スクリプトタイプ= "テキスト/ JavaScriptを">
$を( "#viewBtn")
.click(
関数(){
VAR curWwwPath = window.document.location.href;
VAR =パス名window.document.location.pathname。
VaRのPOS = curWwwPath.indexOf(パス名)。
VAR localhostPath = curWwwPath.substring(0、POS)。
//リクエストは、インターフェイスを取得し、新しいウィンドウでPDFファイルを開くには、ここでコールバック
窓。オープン("?のhttp:// localhostを:8081 / API /ファイル/プレビューfileNameに= 2019_PDF.pdf");
});
//バックグラウンド制御コードは、ディスプレイ上に、遠位着信ファイル名による指定したディレクトリにPDFファイルを読み取る
@RequestMapping(値=「/プレビュー」、メソッド= RequestMethod.GET)
公共ボイドprePDF(文字列のファイル名、HttpServletRequestのリクエスト、HttpServletResponseの応答){
logger.info( "ファイル名:" + fileNameに);
ファイルファイル=新しい新しいファイル( "E:/ PDF /" + fileNameに);
IF(File.Exists()){
バイト[] = NULLデータ;
試み{
FileInputStreamの新しい新しいINPUT = FileInputStreamを(ファイル);
データ=新しい新しいバイト[input.available()];
input.read(データ)
。response.getOutputStream()ライト(データ);
input.closeを();
}キャッチ(例外e){
logger.info( "PDF文件处理异常...")。
}
}
}
PDF文件下载:
の<input type = "ボタン"値= "下载" ID = "ダウンロード">
。$( "#ダウンロード")(クリック関数(){
VAR形= $( "<FORM>") ;
form.attr( "スタイル"、 "表示:なし");
form.attr( "ターゲット"、 "");
form.attr( "方法"、 "ポスト"); //提交方式为ポスト
form.attr ( "アクション"、 "/ downloadFile"); //定义アクション
。$( "本体")(フォーム)を追加し、
form.submit();
});
文字列downloadFilePath = "E:/ PDF /"; //サーバーでダウンロードされたファイルへのパス、
文字列fileNameに= "0602.pdf"、ダウンロードするファイルの名前//
ファイルファイル=新しいファイル(downloadFilePath + fileNameに)。
(File.Exists()){IF
response.setContentType( "ファイルアプリケーション/ダウンロード力"); //は開かずに強制ダウンロードを設定
Response.AddHeader( "コンテンツの廃棄"、 "添付ファイルを、fileNameに=" + filename)で、
バイト; [] =新しい新しいバイトバッファー[1024]
のFileInputStream FIS = NULL;
BufferedInputStreamをBIS = NULL;
試み{
FIS新しい新しい= FileInputStreamを(ファイル);
BIS =新しい新規にBufferedInputStream(FIS)。
OutputStreamのOutputStream = response.getOutputStream()。
int型I = bis.read(バッファ)
(!I = -1){一方
outputStream.write(バッファ、0、I)。
I = bis.read(バッファ)
}
}キャッチ(例外e){
e.printStackTrace();
}最後に、{
(!ビス= NULL)場合、{
{試みる
)(bis.closeします。
}キャッチ(IOExceptionを電子){
e.printStackTrace();
}
}
(FIS!= null)の場合は{
{みてください
fis.close();
}キャッチ(IOExceptionをE){
e.printStackTrace();
}
}
}
}
}
上部には、等に対応するプレビューページツールバー、印刷、ダウンロード、フリップ、ズームを持って、個々の実際のニーズに応じて、とすることができます表示ページのソースコードにviewer.htmlに対応する機能をコメントアウト。
PDFコンテンツファイルのpdfboxを読み取ることができます:
jarファイルのパッケージを導入する:
<! -依存PDFを読んで- >
<依存>
<groupIdを> org.apache。 PDFBox </ groupIdを>
<たartifactId> PDFBox </たartifactId>
<バージョン> 2.0.4 </バージョン>
</依存関係>
背景読み込みPDFファイルのコード:
パブリック文字列viewPDF(proCode文字列、文字列のファイル名、文字列originPage、HttpServletRequestのリクエスト){
request.setAttribute( "dse_sessionId"、request.getParameter( "dse_sessionId")TRIM());
logger.info( "開示レポートのプレビューがファイル名:" +ファイル名);
ファイルファイル=新しい新しいファイル(constant.getExposeLocalDir()+ fileNameに);
IF(File.Exists(!)){//ファイルがFTPのダウンロードファイルからローカルに、存在しない
}
}
//コンテンツファイル、PDFを読んで-のためのコード
のtry {
PDDocument = PDDocument.load文書(ファイル);
document.getClass();
IF(document.isEncrypted()!){
PDFTextStripperByArea新しい新しいPDFTextStripperByAreaストリッパー=();
stripper.setSortByPosition(真の);
PDFTextStripper textStripper PDFTextStripper新しい新=();
ストリングexposeContent = textStripper.getText(文書)。
文字列[]コンテンツ= exposeContent.split( "\\ N")。
StringBufferのStringBufferの=新しいStringBufferを();
(文字列ライン:コンテンツ)のための{
stringBuffer.append(ライン)
}
}
}キャッチ(例外e){
logger.info( "读取PDF文件异常...")。
}
リターン「」。
}
免責事項:します。https://blog.csdn.net/Xing_Pengfei/article/details/97649888から転載フィルム物品
これに基づき、著者だけでいくつかの変更は、私は、Mavenプロジェクトを使用し、これはわずかに異なるビットのブログかもしれ
----------------
免責事項:この記事はCSDNブロガーです「真夜中の見習いXPFのオリジナルの記事、CC 4.0 BY-SAの著作権契約、複製、元のソースのリンクと、この文を添付してくださいに従ってください。
オリジナルリンクします。https://blog.csdn.net/Xing_Pengfei/article/details/97649888