자바스크립트:바이트 배열의 새 탭에서 PDF 열기
앵귤러를 쓰고 있습니다.외부 API 호출을 위한 HTTP 리소스가 있는 JS이며, 제 응답은 바이트 배열입니다.이 바이트 배열을 새 창에서 PDF로 바꿔야 합니다.브라우저를 넘나들거나 순수 자바스크립트로 작동하는 아주 좋은 솔루션은 여기서 본 적이 없습니다.이것을 할 방법이 방법이 있습니까?
여기 내 코드가 있습니다.
자바스크립트
Document.preview({id: $scope.order.id}, function(data){
// Open PDF Here
var file = new Blob([data], {type: 'application/pdf'});
var fileURL = URL.createObjectURL(file);
window.open(fileURL);
});
서비스 콜에서 responseType을 전달해야 합니다.
$http.post('/Service-URL', dataTO, {responseType: 'arraybuffer'});
그러면 데이터 통화가 성공하면 새 창에 pdf가 열립니다:-
getDocument()
.success(function(data) {
var file = new Blob([data], { type: 'application/pdf' });
var fileURL = URL.createObjectURL(file);
window.open(fileURL);
})
이 답변에서 :- https://stackoverflow.com/a/21730535/3645957 by https://stackoverflow.com/users/2688545/michael
만약 누군가가 여전히 그것을 찾고 있다면, 여기에 제가 하고 있는 일이 있습니다.
var pdfAsDataUri = "data:application/pdf;base64,"+byteArray;
window.open(pdfAsDataUri);
여기서 byteArray는 수신되는 데이터입니다.좋은 솔루션은 아닐 수도 있지만(바이트 배열은 URL에 표시됨) 작동합니다.
언급URL : https://stackoverflow.com/questions/28197179/javascript-open-pdf-in-new-tab-from-byte-array
'programing' 카테고리의 다른 글
pphmyadmin 결과에서 예상 행 수가 매우 다른 이유는 무엇입니까? (0) | 2023.10.16 |
---|---|
PowerShell에 터미네이터가 없습니다. " (0) | 2023.10.16 |
파이썬 데코레이터에게 추가 인수를 전달하려면 어떻게 해야 합니까? (0) | 2023.10.16 |
malloc()는 연속된 메모리 블록을 할당합니까? (0) | 2023.10.16 |
Spring Boot 애플리케이션에서 베어러 인증을 활성화하는 방법은? (0) | 2023.10.11 |