Los requisitos son una función de exportar PDF. La ejecución multipartidista finalmente se ha implementado. He tomado muchos desvíos, y sospecho que este método todavía está en una curva ahora.
Hay un complemento JSPDF que puede generar PDF directamente en la parte delantera, que es muy simple, pero no admite IE.
Interfaz:
Primero introduzca html2canvas.js
html2canvas (document.body, {// objeto de captura de pantalla // Los parámetros detallados se pueden configurar aquí onrendered: function (canvas) {// El canvas de devolución de llamada de finalización de finalización de la representación. Formato, o sin parámetros var FormData = new FormData (); "../bulletin/exportpdf"); == true) {alertbox ({content: 'PDF exportado correctamente!', bloquear: true, drag: falso, ok: true}); }); // Convierta los datos de la URL de la imagen con base64 a blobfunction convertBase64UrlTOBLOB (urldata) {// Retire el encabezado de URL y conviértelo a byte var bytes = window.atob (urldata.split (',', ') [1]); // Defiende la excepción y convierta el código ASCII con menos de 0 a mayor que 0 var AB = new ArrayBuffer (bytes.length); var ia = nuevo uint8Array (AB); for (var i = 0; i <bytes.length; i ++) {ia [i] = bytes.charcodeat (i); } return new blob ([ab], {type: 'image/png'});}Compatibilidad: Firefox 3.5+, Chrome, Opera, IE10+
No es compatible: iframe, complemento del navegador, flash
Las imágenes de dominio cruzado deben combinarse con el encabezado del servidor de dominio cruzado para permitir solicitudes de dominio cruzado
Access-Control-Allow-Origin: * Access-Control-allow-credenciales: verdadero
La imagen SVG no se puede admitir directamente, hay un paquete de parche, pero no lo he probado.
IE9 no admite el formato de datos de FormData, ni admite BLOB. En este caso, la cadena de 64 bases generada por lienzo se eliminará y luego se pasará directamente al fondo. Después de que se recibe el fondo:
Cadena base64 = img.split (",") [1]; base64Decoder decode = new Base64Decoder (); byte [] imgbyte = decode.decodeBuffer (base64);extremo posterior:
Importar el paquete Jar de Itext
@RequestMapping ("/exportpdf") public @ResponseBody void Exportpdf (solicitud de múltiple Solicitud de Servicio de Servicio de Oferta, respuesta httpServletResponse) lanza ServLetException, IOException {resultData result = new ResultData (); // Formato de resultado personalizado cadena filepath = "c: //exportpdf2.pdf"; Cadena imagePath = "c: //exportimg2.bmp"; Documento documento = nuevo documento (); intente {map getMap = request.getFileMap (); Multipartfile mfile = (multipartFile) getMap.get ("imgdata"); // Obtener el archivo InputStream de datos = mfile.getInputStream (); byte [] filyte = fileCopyUtils.copyTobyTearray (archivo); FileImageOutputStream ImageOutput = nuevo FileImageOutputStream (nuevo archivo (ImagePath)); // Abrir transmisión de entrada ImageOutput.Write (fileByte, 0, fileByte.length); // Generar archivo de imagen local imageOutput.close (); Pdfwriter.getInstance (documento, nuevo FileOutputStream (FilePath)); // archivo itextpdf // document.setPageSize (pageSize.a2); document.open (); document.add (nuevo párrafo ("Just Test ...")); Image Image = Image.getInstance (ImagePath); // itext-pdf-image float heigth = image.getheight (); width float = image.getWidth (); int porcentar = get porcent2 (heigth, ancho); // escalar la imagen a escala image.setalignment (image.middle); Image.ScalEpercent (porcentaje+3); document.add (imagen); document.close (); resultado.setsuccess (verdadero); operatelogservice.addoperateloginfo (solicitud "exportada con éxito: presupuesto breve PDF"); } catch (DocumentException de) {System.err.println (de.getMessage ()); } catch (Exception e) {E.PrintStackTrace (); resultado.setsuccess (falso); resultado.setErrorMessage (e.ToString ()); intente {OperatorLogService.AdDoperatelogError (solicitud, "Exportar fallido: excepción del servidor"); } catch (excepción e1) {e1.printstackTrace (); }} respuesta.getWriter (). print (jsonObject.FromObject (resultado) .ToString ());} private static int flotante P2 = 0.0f; P2 = 530 / W * 100; P = Math.round (P2); regresar p;}ITEXT es un conocido proyecto SourceForge SourceForge, una biblioteca de clase Java utilizada para generar documentos PDF.
Velocidad rápida de procesamiento y admite muchas características "avanzadas" de PDF.
Sin embargo, cuando ocurre el error de ITEXT, no informará un error. Saltará sobre él y mirará hacia atrás en el documento PDF y no puede encontrar la causa del error. Es realmente una frustración.
Finalmente, me gustaría agradecer las publicaciones y publicaciones de blog relevantes en Internet y Baidu Search.
El artículo anterior guarda la página HTML como una imagen y escribe la imagen en PDF para lograr la implementación completa (recomendada) es el contenido completo que comparto con usted. Espero que pueda darle una referencia y espero que pueda apoyar más a Wulin.com.