Resource interpreted as Document but transferred with MIME type application/pdf

publicado por: Anonymous

Tengo un reporte creado con la librería de DevExpress v 17.1, como se muestra en la siguiente imagen:

1]

Pero al momento de darle clic al botón de imprimir me manda una alerta en consola diciendo:

Resource interpreted as Document but transferred with MIME type
application/pdf

Y no abre la ventana modal para imprimir.

Ese error es usando el navegador Chrome, en cambio usando Opera me sale el siguiente error:

12836 Uncaught TypeError: Cannot read property ‘submit’ of null

Estuve buscando ese tipo de error pero la mayoría de las respuestas eran acerca de ‘application/zip’, para descargar archivos y yo no ocupo descargar, sino imprimir.

Los métodos que uso para el reporte de devexpress son los siguientes:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Data.SqlClient;
using System.Configuration;
using MiModelo.Models;

namespace Ordenes_de_Compra.Reportes
{
    public partial class LabelReport : System.Web.UI.Page
    {

        Models.Reportes rpt = new Models.Reportes();
        OrdenCompraDB objDB = new OrdenCompraDB();

        protected void Page_Load(object sender, EventArgs e)
        {
            int idreq=Convert.ToInt32(Request.QueryString["id"]);
            var rep = new Requisicion();

            if (Convert.ToInt32(objDB.SelectCadena("select count(*) as resultado from NombreTabla where idreq="+idreq))>0)
            {
                rep.PintarFleteAereo();
            }

            rep.DataSource = LlenarDatos(idreq);
            bool alerta = false;

            foreach (var item in rpt.Tabla1)
            {
                alerta = item.observaciones.ToUpper().Contains("REQUISICIÓN SIN PRESUPUESTO, REQUIERE AUTORIZACIÓN");
                rep.PintarOrigen(item.planta);
                if (item.fechaentrega == "01/01/1900")
                    rep.FechaNula();
            }

            rep.MarcarPresupuesto(objDB.SelectCadena("select isnull(NombreCampo,'') as resultado from NombreTabla where idreq=" + idreq), alerta);
            rep.EsProductoQuimico(objDB.SelectCadena("select isnull(NombreCampo,'') as resultado from NombreTabla where idreq=" + idreq), alerta);
            rep.asignaSubReporte(LlenarCuentas(idreq), Convert.ToInt32(objDB.SelectCadena("select count(*) as resultado from NombreTabla where idreq="+idreq)));              
            this.Visor.Report = rep;
            this.Visor.Report.PageWidth = 2480;
            this.Visor.Report.PageHeight = 3508;
        }

        public Models.Reportes LlenarDatos(int idreq)
        {
            string cs = ConfigurationManager.ConnectionStrings["OCEntities"].ConnectionString;          
            string prov = string.Empty;

            using (SqlConnection con = new SqlConnection(cs))
            {
                con.Open();

                SqlCommand com = new SqlCommand("exec ProcedimientoAlmacenado "+idreq, con);
                SqlDataAdapter da = new SqlDataAdapter(com);
                da.Fill(rpt.Tabla1);

                foreach (var item in rpt.Tabla1)
                {
                    prov = item.idproveedor;
                }

                SqlCommand com2 = new SqlCommand("exec ProcedimientoAlmacenado '" + prov + "',2",con);
                SqlDataAdapter da2 = new SqlDataAdapter(com2);              
                da2.Fill(rpt.DatosProveedor);

                SqlCommand com3 = new SqlCommand("exec ProcedimientoAlmacenado " + idreq, con);
                SqlDataAdapter da3 = new SqlDataAdapter(com3);
                da3.Fill(rpt.ConceptosReq);

                SqlCommand com4 = new SqlCommand("select Campo1,Campo2,Campo3,Campo4 from NombreTabla where idreq=" + idreq, con);
                SqlDataAdapter da4 = new SqlDataAdapter(com4);
                da4.Fill(rpt.FleteAereo);
                con.Close();
            }        
            return rpt;
        }

        public Models.Reportes LlenarCuentas(int idreq)
        {
            string cs = ConfigurationManager.ConnectionStrings["OCEntities"].ConnectionString;

            using (SqlConnection con = new SqlConnection(cs))
            {
                con.Open();
                SqlCommand com4 = new SqlCommand("exec ProcedimientoAlmacenado " + idreq, con);
                SqlDataAdapter da4 = new SqlDataAdapter(com4);

                da4.Fill(rpt.Cuentas);
                con.Close();
            }         
            return rpt;
        }

    }
}

Y este el el HTML que me proporciona DevExpress del reporte:

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="LabelReport.aspx.cs" Inherits="Ordenes_de_Compra.Reportes.LabelReport" %>

<%@ Register namespace="DevExpress.Web" tagprefix="Web" %>
<%@ Register assembly="DevExpress.XtraReports.v17.1.Web, Version=17.1.12.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" namespace="DevExpress.XtraReports.Web" tagprefix="dx" %>

<!DOCTYPE html>

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
    <title>Reporte Req</title>
</head>
<body>
    <form id="form1" runat="server">
    <div style="height:2000px; width:100%">

        <dx:ASPxDocumentViewer ID="Visor" runat="server" EnableTheming="True" Height="100%" Theme="Metropolis" Width="100%" ToolbarMode="Ribbon">
        </dx:ASPxDocumentViewer>

    </div>
    </form>
</body>
</html>

¿Alguna idea?

solución

La solución a mi problema fue agregando este código javascript en el HTML:

<script type="text/javascript">
    function init(s) {
        var createFrameElement = s.viewer.printHelper.createFrameElement;
        s.viewer.printHelper.createFrameElement = function (name) {
            var frameElement = createFrameElement.call(this, name);
            if (ASPx.Browser.Chrome) {
                frameElement.addEventListener("load", function (e) {
                    if (frameElement.contentDocument && frameElement.contentDocument.contentType !== "text/html")
                        frameElement.contentWindow.print();
                });
            }
            return frameElement;
        }
    }
</script>

Y dentro del BODY agregué esto:

<dx:ASPxDocumentViewer ID="Visor" runat="server" EnableTheming="True" Height="100%" Theme="Metropolis" Width="100%" ToolbarMode="Ribbon">
            <ClientSideEvents Init="init" />
</dx:ASPxDocumentViewer>
Respondido por: Anonymous

Leave a Reply

Your email address will not be published.