¿Hay alguna forma posible en Angular 10 / Typescript para descargar un PDF desde una URL en lugar de abrirlo en una nueva pestaña?
Ejemplo de URL: http://www.africau.edu/images/default/sample.pdf
Si necesita descargarlo y guardarlo, una etiqueta de anclaje con el atributo de descarga como sugiere @sasa debería ser suficiente. Aquí hay un código de muestra para Angular.
<a [href]="url" download>Click to download</a> Si desea descargar el archivo mediante programación, debe usar HttpClient de Angular:
Instale esta dependencia para hacer su vida más fácil:
npm install file-saver --save npm install -D @types/file-saverY tener un servicio genérico
import {saveAs} from 'file-saver' @Injectable({ providedIn: 'root' }) export class DownloadService { constructor(private http: HttpClient) {} downloadUrl(url: string, filename: string): Observable<Blob> { return this.http.get(url, {responseType: 'blob' }).pipe( map(res => res.blob()), tap(blob => saveAs(blob, filename)) ) } } Tenga en cuenta que llamar a la función no descargará el archivo; deberá subscribe al Observable<Blob> devuelto o transformarlo en una Promise y esperarlo
Debe configurar el tipo de contenido como application/octet-stream normalmente para informar al navegador que debe descargarlo en lugar de mostrarlo en una pestaña. No estoy seguro específicamente de cómo en Angular 10 / Typescript:
Lo siento si estoy siendo demasiado obvio, pero el atributo de download de la etiqueta a no funciona.