この記事では、主に、印刷プレビューの実装方法とWebページコンテンツの保存方法に関する関連する知識を紹介します。一緒に学びましょう!
1。ウェブページの印刷に関する問題
この前に、私は通常、使いやすいLodopを使用して印刷操作を実行しました。これは、以前の記事の多くの記事で取り上げられていました。このコントロールはActiveXコントロールです。ダウンロードしてインストールした後、ページに印刷できます。また、非常に便利なコントロールです。したがって、通常のコンテンツ、ドキュメントセット、その他の操作を印刷するのに非常に適しています。
ただし、ブラウザテクノロジーの更新により、このプラグインはChromeまたはFirefoxにサポートされていないようで、基本的にこのプラグインの処理方法を放棄します。たとえば、以下に示すように、ページのダイアログボックスに内容を印刷する必要がある場合。
Lodopを使用する通常の方法で処理すると、Chromeブラウザからプロンプトが表示され、このエラーメッセージはLodopコントロールをダウンロードまたは更新するかどうかに関係なく続きます。
代替方法については、これがこの記事のトピックです。私は常に必要な関数を実装するいくつかのより良い方法を見つけるのが好きだったので、printthis(https://github.com/jasonday/printthis)とjquery-preview-plugin(https://github.com/etimbo/jquery-print-preview-plugin)のプラグインを見つけました。 2つと比較して、私は最初のもののシンプルで便利な使用を好みます。
2。印刷プラグインの使用
上記の問題があるため、必要なページコンテンツの印刷操作を実装するための新しい印刷方法、つまりjQueryプラグインを紹介します。
このプラグインの使用は非常にシンプルで便利です。まず、以下に示すように、対応するJSファイルをページに導入する必要があります。
<スクリプトsrc = "〜/content/jquerytools/printthis/printthis.js"> </script>
印刷やエクスポート操作など、ページの上部に2つのボタンを追加します。コードは次のとおりです。
<div> <a href = "#" onclick = "javascript:preview();"> <img src = "〜/content/images/print.gif"/> <br/> print preview </a> <a href = "#" onclick = "javascript:saveas(); </a> </div>
また、表示されているWebページのコンテンツを配置するためにDivを宣言する必要があります。これは、印刷に便利です。
印刷する処理コードも非常にシンプルで、レイヤーを直接印刷するだけです。以下の使用コードが非常に簡単であることがわかります。
// print preview function preview(){$( "#printcontent")。printthis({debug:false、importcss:true、importstyle:true、printcontainer:true、loadcss: "/content/themes/default/style.css」 formvalues:true}); };印刷が実行された後、IEとChromeに印刷プレビューダイアログボックスが表示され、印刷するかどうかを確認します。
3.ページコンテンツを保存します
時には、ビジネス処理を促進するために、一般に、印刷されたコンテンツをエクスポートするための操作をユーザーに提供できます。以下に示すコードは、印刷されたコンテンツを、ユーザーが処理することやその他の目的にWordにエクスポートすることです。
function saveas(){var id = $( '#id2')。val(); window.open( '/information/exportwordbyid?id =' + id); }上記の操作は、主にMVCコントローラーメソッドを処理し、IDを渡してコンテンツを抽出し、必要な単語コンテンツを生成します。
背景では、主にapose.wordコントロールを使用して、テンプレートドキュメントを生成します。
下の図に示すように、ブックマークでいくつかのブックマーク情報を定義または表示できます。
このようにして、情報を取得し、コードでこの単語テンプレートを指定できます。
InformationInfo info = bllfactory <情報> .instance.findbyid(id); if(info!= null){string template = "〜/content/template/ポリシースケールboard.doc"; string templatefile = server.mappath(テンプレート); asops.words.document doc = new Aspose.Words.Document(TemplateFile);以下に示すように、単語テンプレートの内容はテキストを使用して置き換えることができます。
setbookmark(ref doc、 "content"、info.content);
次のコードに示すように、ブックマークブックマークメソッドを使用してクエリして交換することもできます。
aspose.words.bookmark bookmark = doc.range.bookmarks [title]; if(bookmark!= null){bookmark.text = value; }これには、主なHTMLコンテンツの特別な処理が必要です。一般に、HTMLを挿入する専用の方法を使用してコンテンツを作成する必要があります。そうしないと、HTMLコードが表示されます。専用のHTMLメソッドを使用して記述されたコンテンツは、基本的にWebページに表示されるものと違いはありません。次のコードに示されているように。
documentBuilder Builder = new DocumentBuilder(doc); asopse.words.bookmark bookmark = doc.range.bookmarks ["content"]; if(bookmark!= null){builder.movetobookmark(bookmark.name); builder.inserthtml(info.content); }単語ドキュメントをインポートする方法全体は、これらのコンテンツの統合を使用して、標準ドキュメントの生成を実現することです。この種のビジネスドキュメントは固定テンプレートであるため、実際のビジネスでの使用に非常に適しています。他の方法を使用して自動的に生成されるHTMLファイルまたはドキュメントよりも、可塑性と美学が優れています。
コード全体を以下に示します。
public fileestremresult exportwordbyid(string id){if(string.isnullorempty(id))return null; InformationInfo info = bllfactory <情報> .instance.findbyid(id); if(info!= null){string template = "〜/content/template/ポリシースケールboard.doc"; string templatefile = server.mappath(テンプレート); asops.words.document doc = new Aspose.Words.Document(TemplateFile); #regionはテキストを使用して// dictionary <string、string> dictsource = new Dictionary <string、string>(); //dictsource.add("title "、info.title); //dictsource.add("content "、info.content); //dictsource.add("editor "、info.editor); //dictsource.add("edittime "、info.edittime.tostring()); //dictsource.add("subtype "、info.subtype); // foreach(dictsource.keysの文字列名)// {// doc.range.replace(name、dictsource [name]、true、true); //} #endregion // setbookmark(ref doc、 "title"、info.title)を交換してください。 setbookmark(ref doc、 "editor"、info.editor); setbookmark(ref doc、 "edittime"、info.edittime.tostring()); setBookmark(ref doc、 "subtype"、info.subtype); // setBookmark(ref doc、 "content"、info.content); // HTMLコンテンツの場合、documentBuilder Builder = new DocumentBuilder(doc)を記述する必要があります。 asopse.words.bookmark bookmark = doc.range.bookmarks ["content"]; if(bookmark!= null){builder.movetobookmark(bookmark.name); builder.inserthtml(info.content); } doc.save(System.web.httpcontext.current.response、info.title、aspose.words.contentdisposition.attachment、aspose.words.saveoptions.createSaveoptions(aspose.words.saveformat.doc)); httpresponsebase応答= controllercontext.httpcontext.response; Response.flush(); Response.End();新しいfilestreamResult(respons.outputStream、 "application/ms-word"); } nullを返します。 } private void setbookmark(ref aspose.words.document doc、string title、string value){aspose.words.bookmark bookmark = doc.range.bookmarks [title]; if(bookmark!= null){bookmark.text = value; }}最終的なエクスポートされたWordドキュメントは、テンプレートされた特定のドキュメントコンテンツであり、Word Previewインターフェイスを以下に示します。
上記は、Webページのコンテンツの印刷プレビューと保存を実現するために[9]に紹介されたBootstrap Metronicに基づいたBootstrap Metronic Development Frameworkの経験の要約です。私はそれが誰にでも役立つことを願っています。詳細情報を知りたい場合は、wulin.comのWebサイトに注意してください!