Ajax 호출로 서버에서 생성 된 PDF 표시

마이크 비닐

이 ajax 호출이 있습니다.

var datiInput = {};

datiInput.idTipo = idtipo;
datiInput.clearEngine = clearengine;
datiInput.nomeFileSvg = numfile;

var jsonData = JSON.stringify(datiInput);

OpenLoading();

$.ajax({
    type: "POST",
    url: "handlers/generaDatiTecniciPDF.ashx",
    data: jsonData,
    contentType: "application/pdf",
    dataType: "text",
    success: function (data) {
        CloseLoading();
          //i wanna open pdf recived in new tab :(
    } 
});

이것은 내 핸들러 ashx입니다.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.IO;
using System.Web.Script.Serialization;
using iTextSharp.text;
using iTextSharp.text.pdf;
using ImageMagick;

namespace Federal_Mogul.handlers
{
    /// <summary>
    /// Descrizione di riepilogo per generaDatiTecniciPDF
    /// </summary>
    public class generaDatiTecniciPDF : IHttpHandler
    {

        public void ProcessRequest(HttpContext context)
        {
            context.Response.ContentType = "application/pdf";

            string datiJson = new StreamReader(context.Request.InputStream).ReadToEnd();

            Input_DatiTecnici obj = Deserialize<Input_DatiTecnici>(datiJson);

            if (obj != null)
            { 
                int idtipo = Convert.ToInt32(obj.idTipo);
                string ce = obj.clearEngine;
                string svg = obj.nomeFileSvg;

                string percorso_svg = @"http://www.website.it/svgs/" + svg + ".svg";

                DatiVeicolo dV = GetDatiVeicolo(idtipo);

                List<DatiTecnici> elencoDatiTecnici = new List<DatiTecnici>();

                //elaboration of elencoDatiTecnici


                CreaFilePDFDatiTecnici(dV, elencoDatiTecnici, idtipo, ce, percorso_svg, context);
            }
        }

        public DatiVeicolo GetDatiVeicolo(int idtipo) //, int idbody)
        {
            // function for getting data of veichle
        }

        public void CreaFilePDFDatiTecnici(DatiVeicolo dV, List<DatiTecnici> dati, int idtipo, string clearengine, string svg, HttpContext context)
        {
            var document = new Document(PageSize.A4, 50, 50, 25, 25);
            var output = new MemoryStream();
            var writer = PdfWriter.GetInstance(document, output);
            document.Open();

            //elaboration of pdf

            document.Close();

            context.Response.BinaryWrite(output.ToArray());

        }

        public string GetNumeroSchedaDaBodyType(int idtipo, int idbody)
        {
            // function for obtain schedule number string
        }

        public class GradientTableBackground : IPdfPTableEvent
        {
            //class for managing gradient on table
        }

        public class DatiVeicolo
        {
            public string marca { get; set; }
            public string modello { get; set; }
            public string versione { get; set; }
            public string cod_motore { get; set; }
        }

        public class DatiTecnici
        {
            public int Sort3 { get; set; }
            public int idGruppo { get; set; }
            public string Gruppo { get; set; }
            public int IdSottogruppo { get; set; }
            public string Sottogruppo { get; set; }
            public string Dati { get; set; }
            public string Valori { get; set; }
            public string Discriminante { get; set; }
            public string codMotore { get; set; }
            public string ClearEngine { get; set; }
            public int cTypeId { get; set; }
            public int TypeID { get; set; }
        }

        public class Input_DatiTecnici
        {
            public int idTipo { get; set; }
            public string clearEngine { get; set; }
            public string nomeFileSvg { get; set; }
        }

        public T Deserialize<T>(string context)
        {
            string jsonData = context;

            //cast to specified objectType
            var obj = (T)new JavaScriptSerializer().Deserialize<T>(jsonData);
            return obj;
        }


        public bool IsReusable
        {
            get
            {
                return false;
            }
        }
    }
}

pdf 객체에 응답하고 새 탭에서 ajax 호출 후 어떻게 표시 할 수 있습니까? 다른 탭을 닫지 않고?

무사

Blob으로 다운로드하여 Blob URL을 만든 다음 새 탭을 열 수 있습니다.

var xhr = new XMLHttpRequest();
xhr.onreadystatechange = function(){
    if (this.readyState == 4 && this.status == 200){
        var url = window.URL || window.webkitURL;
        window.open(url.createObjectURL(this.response));
    }
}
xhr.open('POST', 'handlers/generaDatiTecniciPDF.ashx');
xhr.responseType = 'blob';
xhr.setRequestHeader('Content-Type', 'application/pdf');
xhr.send(jsonData);    

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

동적으로 생성 된 PDF 전에 로딩 화면 표시

분류에서Dev

ajax 호출에서 동적으로 생성 된 코드에서 버튼 값을 읽는 PHP

분류에서Dev

Cimg에서 생성 된 이미지는 jagPDF로 생성 된 pdf와 함께 GDI +를 사용하여 저장 될 때 pdf에서 다르게 표시됩니다.

분류에서Dev

Zathura는 다른 PDF 프로그램에서 생성 된 PDF 북마크를 표시 할 수 있습니까?

분류에서Dev

Ajax 함수는 동적으로 생성 된 버튼 내부에서 호출되지 않습니다.

분류에서Dev

knitr로 생성 된 PDF에서 흑백 친화적 인 구문 강조 표시를 달성하는 방법

분류에서Dev

Sphinx 문서 빌더에서 생성 된 pdf로 하이퍼 링크를 올바르게 표시하는 방법

분류에서Dev

pdf로 생성 된 썸네일을 UIImage View에 명확하게 표시

분류에서Dev

Shiny Golem 앱에서 동적으로 생성 된 PDF 파일을 표시하는 방법

분류에서Dev

테이블은 html로 잘 표시되지만 mpdf로 생성 된 pdf에는 표시되지 않습니다.

분류에서Dev

nodejs를 사용하여 Python에서 생성 된 PDF 웹 페이지에 표시

분류에서Dev

Ajax 다시로드 된 페이지에서 함수 호출

분류에서Dev

파생 클래스에서 오버로드 된 기본 생성자 호출

분류에서Dev

ajax에서 click 이벤트가 호출 될 때 동적으로 생성 된 버튼에 대한 해당 데이터 값을 전달합니다.

분류에서Dev

Android Studio에서 생성 된 폴더로 표시

분류에서Dev

CodeIgniter의 AJAX 성공 함수에서 동적으로 생성 된 양식 제출

분류에서Dev

ITextSharp의 WriteCompatiblePdf 메서드 호출시 빈 PDF 생성

분류에서Dev

Ajax / jquery 호출에서 반환 된 PHP 배열을 표시하는 방법

분류에서Dev

구현 중에 새 구성 요소 내에서 생성 된 프로 시저를 호출하는 방법

분류에서Dev

HttpMessageResponse Content를 통해 전송 된 자바 스크립트에서 서버 측 생성 PDF 스트림을 표시하는 방법

분류에서Dev

ajax 호출에서 반환 된 get 변수를 기반으로 쿼리 작성

분류에서Dev

HTML 페이지에서 생성 된 PDF를 다운로드하지 않고 부트 스트랩 모달로 표시

분류에서Dev

asp.net에서 해시 된 암호로 로그인 생성

분류에서Dev

URL에서 동적으로 생성 된 PDF 가져 오기

분류에서Dev

mPDF로 생성 된 PDF가 Android에서 작동하지 않음

분류에서Dev

이미로드 된 페이지에서 TCPDF pdf를 생성하고 표시하는 방법은 무엇입니까?

분류에서Dev

Tk 버튼 기능에서 생성 된 가져온 텍스트를 Tk 텍스트로 표시

분류에서Dev

동적으로 생성 된 라디오 버튼 템플릿에서 선택한 데이터 표시

분류에서Dev

빈 HTML 텍스트 영역 입력이 mPDF에서 생성 된 PDF에 표시되지 않습니다.

Related 관련 기사

  1. 1

    동적으로 생성 된 PDF 전에 로딩 화면 표시

  2. 2

    ajax 호출에서 동적으로 생성 된 코드에서 버튼 값을 읽는 PHP

  3. 3

    Cimg에서 생성 된 이미지는 jagPDF로 생성 된 pdf와 함께 GDI +를 사용하여 저장 될 때 pdf에서 다르게 표시됩니다.

  4. 4

    Zathura는 다른 PDF 프로그램에서 생성 된 PDF 북마크를 표시 할 수 있습니까?

  5. 5

    Ajax 함수는 동적으로 생성 된 버튼 내부에서 호출되지 않습니다.

  6. 6

    knitr로 생성 된 PDF에서 흑백 친화적 인 구문 강조 표시를 달성하는 방법

  7. 7

    Sphinx 문서 빌더에서 생성 된 pdf로 하이퍼 링크를 올바르게 표시하는 방법

  8. 8

    pdf로 생성 된 썸네일을 UIImage View에 명확하게 표시

  9. 9

    Shiny Golem 앱에서 동적으로 생성 된 PDF 파일을 표시하는 방법

  10. 10

    테이블은 html로 잘 표시되지만 mpdf로 생성 된 pdf에는 표시되지 않습니다.

  11. 11

    nodejs를 사용하여 Python에서 생성 된 PDF 웹 페이지에 표시

  12. 12

    Ajax 다시로드 된 페이지에서 함수 호출

  13. 13

    파생 클래스에서 오버로드 된 기본 생성자 호출

  14. 14

    ajax에서 click 이벤트가 호출 될 때 동적으로 생성 된 버튼에 대한 해당 데이터 값을 전달합니다.

  15. 15

    Android Studio에서 생성 된 폴더로 표시

  16. 16

    CodeIgniter의 AJAX 성공 함수에서 동적으로 생성 된 양식 제출

  17. 17

    ITextSharp의 WriteCompatiblePdf 메서드 호출시 빈 PDF 생성

  18. 18

    Ajax / jquery 호출에서 반환 된 PHP 배열을 표시하는 방법

  19. 19

    구현 중에 새 구성 요소 내에서 생성 된 프로 시저를 호출하는 방법

  20. 20

    HttpMessageResponse Content를 통해 전송 된 자바 스크립트에서 서버 측 생성 PDF 스트림을 표시하는 방법

  21. 21

    ajax 호출에서 반환 된 get 변수를 기반으로 쿼리 작성

  22. 22

    HTML 페이지에서 생성 된 PDF를 다운로드하지 않고 부트 스트랩 모달로 표시

  23. 23

    asp.net에서 해시 된 암호로 로그인 생성

  24. 24

    URL에서 동적으로 생성 된 PDF 가져 오기

  25. 25

    mPDF로 생성 된 PDF가 Android에서 작동하지 않음

  26. 26

    이미로드 된 페이지에서 TCPDF pdf를 생성하고 표시하는 방법은 무엇입니까?

  27. 27

    Tk 버튼 기능에서 생성 된 가져온 텍스트를 Tk 텍스트로 표시

  28. 28

    동적으로 생성 된 라디오 버튼 템플릿에서 선택한 데이터 표시

  29. 29

    빈 HTML 텍스트 영역 입력이 mPDF에서 생성 된 PDF에 표시되지 않습니다.

뜨겁다태그

보관