Este artículo presenta principalmente el conocimiento relevante sobre cómo implementar la vista previa de impresión y el ahorro del contenido de la página web. ¡Aprendamos juntos!
1. Problemas sobre la impresión de la página web
Antes de esto, generalmente usé el lodop más fácil de usar para realizar operaciones de impresión. Esto fue cubierto por muchos artículos en mis artículos anteriores. Este control es un control ActiveX. Después de descargar e instalar, puede imprimir en la página. También es un control muy conveniente. Por lo tanto, es muy adecuado para imprimir contenido ordinario, conjuntos de documentos y otras operaciones.
Sin embargo, con la actualización de la tecnología del navegador, este complemento parece estar sin apoyo en Chrome o Firefox, y básicamente abandona el método de procesamiento de este complemento. Por ejemplo, si necesito imprimir el contenido en el cuadro de diálogo en la página, como se muestra a continuación.
Si lo procesa en la forma normal de usar LODOP, obtendrá un mensaje del navegador Chrome, y este mensaje de error continuará independientemente de si descarga o actualiza el control LODOP.
Para métodos alternativos, este es el tema de este artículo. Siempre me ha gustado encontrar algunas formas mejores de implementar las funciones que necesito, por lo que encontré el complemento de PrintTHIS (https://github.com/jasonday/printthis) y jQuery-print-preview-plugin (https://github.com/etimbo/jquery-print-preview-plugin). En comparación con los dos, prefiero el uso simple y conveniente del primero.
2. Uso del complemento de impresión impreso
Con el problema anterior, presentamos un nuevo método de impresión, es decir, el complemento JQuery para implementar la operación de impresión del contenido de la página que necesitamos.
El uso de este complemento es muy simple y conveniente. Primero, debe introducir el archivo JS correspondiente en la página, como se muestra a continuación.
<script src = "~/content/jquerytools/printthis/printthis.js"> </script>
Agregaremos dos botones en la parte superior de la página, como las operaciones de impresión y exportación, el código es el siguiente
<div> <a href = "#" onClick = "javascript: preview ();"> <img src = "~/content/Images/print.gif"/> <br/> imprime previamente preliminar </a> <a href = "#" onClick = "javascript: saveA como </a> </div>
Luego también necesitamos declarar un DIV para colocar el contenido de la página web que se muestra, lo cual es conveniente para imprimirlo.
El código de procesamiento que imprimimos también es muy simple, solo imprima la capa directamente. Puede ver que el código de uso a continuación es muy simple.
// Imprima la función de vista previa Preview () {$ ("#printContent"). PrintThis ({debug: false, importcss: true, importstyle: true, printContainer: true, loadcss: "/content/themes/default/style.css", pagetitle: "anuncio de notificación", eliminación: falso, printdelay: 33, 33, 33, 33, 33, null formvalues: true}); };Después de ejecutar la impresión, aparecerá un cuadro de diálogo Vista previa de impresión en IE y Chrome para confirmar si se debe imprimir.
3. Guarde el contenido de la página
A veces, para facilitar el procesamiento comercial, generalmente podemos proporcionar a los usuarios una operación para exportar contenido impreso. El código que se muestra a continuación es exportar el contenido impreso a Word para que los usuarios procesen y otros fines.
función saveas () {var id = $ ('#id2'). val (); window.open ('/información/exportwordById? id =' + id); }La operación anterior llama principalmente al método del controlador MVC para procesar, pasar una ID para extraer el contenido y luego generar el contenido de palabra requerido.
En segundo plano, utilizamos principalmente el control Apose.word para generar documentos plantados.
Podemos definir o ver alguna información de marcador en el marcador, como se muestra en la figura a continuación.
De esta manera, podemos obtener información y especificar esta plantilla de palabra en el código.
InformationInfo Info = BLLFactory <100 información> .instance.findById (id); if (info! = null) {String Template = "~/content/plantplate/Policy scale board.doc"; String TemplateFile = Server.Mappath (plantilla); Aspose.words.document doc = new Aspose.words.document (TemplateFile);El contenido de la plantilla de palabras se puede reemplazar usando texto, como se muestra a continuación.
SetBookmark (Ref Doc, "Content", Info.Content);
También puede usar el método Bookmark Bookmark para consultarlo y reemplazarlo, como se muestra en el siguiente código.
Aspose.words.bookmark bookmark = doc.range.bookmarks [título]; if (bookmark! = null) {bookmark.text = valor; }Esto requiere un tratamiento especial para el contenido HTML principal. En general, es necesario escribir contenido utilizando un método dedicado para insertar HTML, de lo contrario se mostrará el código HTML. El contenido escrito utilizando un método HTML dedicado no es básicamente diferente de lo que vemos en la página web. Como se muestra en el siguiente código.
DocumentBuilder Builder = new DocumentBuilder (DOC); Aspose.words.bookmark bookmark = doc.range.bookmarks ["contenido"]; if (Bookmark! = NULL) {Builder.MovetObookmark (Bookmark.name); builder.insertTtml (info.content); }Todo el método de importación de documentos de Word es utilizar la integración de estos contenidos para lograr la generación de un documento estándar. Este tipo de documento comercial es una plantilla fija, por lo que es muy adecuado para su uso en negocios reales. Tiene una mejor plasticidad y estética que los archivos HTML o documentos que se generan automáticamente utilizando otros métodos.
El código completo se muestra a continuación.
public FileStreamResult ExportWordById (ID de cadena) {if (String.ISNULLOREMPTY (id)) return null; InformationInfo Info = BLLFactory <100 información> .instance.findById (id); if (info! = null) {String Template = "~/content/plantplate/Policy scale board.doc"; String TemplateFile = Server.Mappath (plantilla); Aspose.words.document doc = new Aspose.words.document (TemplateFile); #región Use texto para reemplazar // diccionario <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 (nombre de cadena en dictsource.keys) // {// doc.range.replace (nombre, dictsource [nombre], true, true); //} #EnDregion // Reemplazar SetBookmark (Ref Doc, "Título", Info.title); SetBookmark (Ref Doc, "Editor", Info.Editor); SetBookmark (Ref Doc, "EditTime", info.edittime.ToString ()); SetBookmark (Ref Doc, "Subtype", Info.Subtype); // setbookmark (refoc, "contenido", info.content); // Para contenido HTML, debe escribir DocumentBuilder Builder = nuevo documentBuilder (DOC); Aspose.words.bookmark bookmark = doc.range.bookmarks ["contenido"]; if (Bookmark! = NULL) {Builder.MovetObookmark (Bookmark.name); builder.insertTtml (info.content); } doc.save (system.web.httpcontext.current.response, info.title, aspose.words.contentdisposition.attachment, aspose.words.saving.saveoptions.createSaveOptions (aspose.word.saveformat.doc)); HttpResponseBase Response = ControllerContext.httpContext.Response; respuesta.flush (); respuesta.end (); devolver nuevo FileStreamResult (Respuesta.outputStream, "Aplicación/MS-Word"); } return null; } private void setbookmark (ref aspose.words.document doc, string title, string valor) {aspose.words.bookmark bookmark = doc.range.bookmarks [title]; if (bookmark! = null) {bookmark.text = valor; }}El documento final de Word exportado es el contenido de documento específico plantado, y la interfaz de vista previa de Word se muestra a continuación.
Lo anterior es el resumen de la experiencia del marco de desarrollo metrónico de Bootstrap basado en el Bootstrap Metronic introducido a usted [9] para realizar la vista previa de impresión y el guardado del contenido de la página web. Espero que sea útil para todos. Si desea saber más información, ¡preste atención al sitio web de Wulin.com!