Open PDF document without popup blocker










1















I'm trying to implement example with opening PDF document from Angular 6 and Spring framework. I tried this:



private static final String EXTERNAL_FILE_PATH = "/Users/test/Documents/blacklist_api.pdf";

@GetMapping(path="export")
public ResponseEntity<byte> export() throws IOException
File pdfFile = Paths.get(EXTERNAL_FILE_PATH).toFile();

byte fileContent = Files.readAllBytes(pdfFile.toPath());

HttpHeaders headers = new HttpHeaders();
headers.setContentType(MediaType.APPLICATION_PDF);
// Here you have to set the actual filename of your pdf
headers.setContentDispositionFormData(pdfFile.getName(), pdfFile.getName());
headers.setCacheControl("must-revalidate, post-check=0, pre-check=0, no-cache, no-store, must-revalidate");
headers.setPragma("no-cache");
ResponseEntity<byte> response = new ResponseEntity<>(fileContent, headers, HttpStatus.OK);
return response;



Service:



@Injectable(
providedIn: 'root'
)
export class DownloadService

constructor(private http: HttpClient)


downloadPDF(): any
return this.http.get(environment.api.urls.downloads.getPdf,
responseType: 'blob'
)
.pipe(
map((res: any) =>
return res
)
);




Component:



@Component(
selector: 'app-download',
templateUrl: './download.component.html',
styleUrls: ['./download.component.scss']
)
export class DownloadComponent implements OnInit

constructor(private downloadService: DownloadService,
private router: Router,
private route: ActivatedRoute)


ngOnInit()


export()
this.downloadService.downloadPDF().subscribe(res =>
const fileURL = URL.createObjectURL(res);
window.open(fileURL, '_blank');
);




I can download the file in new tab but I have to click enable popup. Is there are way to implement this without manually clicking on enable popup? Probably I need to change the type of the returned object?










share|improve this question
























  • It looks like your PDF file is on the same server as the service. In that case, I'd suggest serving the file with SpringBoot, either by moving the file into the static folder in your resources or by overwriting the addResourceHandlers configuration. Would that be feasable in your case?

    – pascalpuetz
    Nov 10 '18 at 21:05











  • Can you should me how to configure addResourceHandlers?

    – Peter Penzov
    Nov 10 '18 at 21:09











  • Try this guide: spring.io/blog/2013/12/19/…

    – pascalpuetz
    Nov 10 '18 at 21:12











  • Oh and if you use that approach, just open the location without first downloading the PDF file (e.g. window.open('/my/static/file.pdf', '_blank');)

    – pascalpuetz
    Nov 10 '18 at 21:13











  • Ok but probably it should be more appropriate to configure Angular not Spring for which content to allow for popup?

    – Peter Penzov
    Nov 10 '18 at 21:15















1















I'm trying to implement example with opening PDF document from Angular 6 and Spring framework. I tried this:



private static final String EXTERNAL_FILE_PATH = "/Users/test/Documents/blacklist_api.pdf";

@GetMapping(path="export")
public ResponseEntity<byte> export() throws IOException
File pdfFile = Paths.get(EXTERNAL_FILE_PATH).toFile();

byte fileContent = Files.readAllBytes(pdfFile.toPath());

HttpHeaders headers = new HttpHeaders();
headers.setContentType(MediaType.APPLICATION_PDF);
// Here you have to set the actual filename of your pdf
headers.setContentDispositionFormData(pdfFile.getName(), pdfFile.getName());
headers.setCacheControl("must-revalidate, post-check=0, pre-check=0, no-cache, no-store, must-revalidate");
headers.setPragma("no-cache");
ResponseEntity<byte> response = new ResponseEntity<>(fileContent, headers, HttpStatus.OK);
return response;



Service:



@Injectable(
providedIn: 'root'
)
export class DownloadService

constructor(private http: HttpClient)


downloadPDF(): any
return this.http.get(environment.api.urls.downloads.getPdf,
responseType: 'blob'
)
.pipe(
map((res: any) =>
return res
)
);




Component:



@Component(
selector: 'app-download',
templateUrl: './download.component.html',
styleUrls: ['./download.component.scss']
)
export class DownloadComponent implements OnInit

constructor(private downloadService: DownloadService,
private router: Router,
private route: ActivatedRoute)


ngOnInit()


export()
this.downloadService.downloadPDF().subscribe(res =>
const fileURL = URL.createObjectURL(res);
window.open(fileURL, '_blank');
);




I can download the file in new tab but I have to click enable popup. Is there are way to implement this without manually clicking on enable popup? Probably I need to change the type of the returned object?










share|improve this question
























  • It looks like your PDF file is on the same server as the service. In that case, I'd suggest serving the file with SpringBoot, either by moving the file into the static folder in your resources or by overwriting the addResourceHandlers configuration. Would that be feasable in your case?

    – pascalpuetz
    Nov 10 '18 at 21:05











  • Can you should me how to configure addResourceHandlers?

    – Peter Penzov
    Nov 10 '18 at 21:09











  • Try this guide: spring.io/blog/2013/12/19/…

    – pascalpuetz
    Nov 10 '18 at 21:12











  • Oh and if you use that approach, just open the location without first downloading the PDF file (e.g. window.open('/my/static/file.pdf', '_blank');)

    – pascalpuetz
    Nov 10 '18 at 21:13











  • Ok but probably it should be more appropriate to configure Angular not Spring for which content to allow for popup?

    – Peter Penzov
    Nov 10 '18 at 21:15













1












1








1








I'm trying to implement example with opening PDF document from Angular 6 and Spring framework. I tried this:



private static final String EXTERNAL_FILE_PATH = "/Users/test/Documents/blacklist_api.pdf";

@GetMapping(path="export")
public ResponseEntity<byte> export() throws IOException
File pdfFile = Paths.get(EXTERNAL_FILE_PATH).toFile();

byte fileContent = Files.readAllBytes(pdfFile.toPath());

HttpHeaders headers = new HttpHeaders();
headers.setContentType(MediaType.APPLICATION_PDF);
// Here you have to set the actual filename of your pdf
headers.setContentDispositionFormData(pdfFile.getName(), pdfFile.getName());
headers.setCacheControl("must-revalidate, post-check=0, pre-check=0, no-cache, no-store, must-revalidate");
headers.setPragma("no-cache");
ResponseEntity<byte> response = new ResponseEntity<>(fileContent, headers, HttpStatus.OK);
return response;



Service:



@Injectable(
providedIn: 'root'
)
export class DownloadService

constructor(private http: HttpClient)


downloadPDF(): any
return this.http.get(environment.api.urls.downloads.getPdf,
responseType: 'blob'
)
.pipe(
map((res: any) =>
return res
)
);




Component:



@Component(
selector: 'app-download',
templateUrl: './download.component.html',
styleUrls: ['./download.component.scss']
)
export class DownloadComponent implements OnInit

constructor(private downloadService: DownloadService,
private router: Router,
private route: ActivatedRoute)


ngOnInit()


export()
this.downloadService.downloadPDF().subscribe(res =>
const fileURL = URL.createObjectURL(res);
window.open(fileURL, '_blank');
);




I can download the file in new tab but I have to click enable popup. Is there are way to implement this without manually clicking on enable popup? Probably I need to change the type of the returned object?










share|improve this question
















I'm trying to implement example with opening PDF document from Angular 6 and Spring framework. I tried this:



private static final String EXTERNAL_FILE_PATH = "/Users/test/Documents/blacklist_api.pdf";

@GetMapping(path="export")
public ResponseEntity<byte> export() throws IOException
File pdfFile = Paths.get(EXTERNAL_FILE_PATH).toFile();

byte fileContent = Files.readAllBytes(pdfFile.toPath());

HttpHeaders headers = new HttpHeaders();
headers.setContentType(MediaType.APPLICATION_PDF);
// Here you have to set the actual filename of your pdf
headers.setContentDispositionFormData(pdfFile.getName(), pdfFile.getName());
headers.setCacheControl("must-revalidate, post-check=0, pre-check=0, no-cache, no-store, must-revalidate");
headers.setPragma("no-cache");
ResponseEntity<byte> response = new ResponseEntity<>(fileContent, headers, HttpStatus.OK);
return response;



Service:



@Injectable(
providedIn: 'root'
)
export class DownloadService

constructor(private http: HttpClient)


downloadPDF(): any
return this.http.get(environment.api.urls.downloads.getPdf,
responseType: 'blob'
)
.pipe(
map((res: any) =>
return res
)
);




Component:



@Component(
selector: 'app-download',
templateUrl: './download.component.html',
styleUrls: ['./download.component.scss']
)
export class DownloadComponent implements OnInit

constructor(private downloadService: DownloadService,
private router: Router,
private route: ActivatedRoute)


ngOnInit()


export()
this.downloadService.downloadPDF().subscribe(res =>
const fileURL = URL.createObjectURL(res);
window.open(fileURL, '_blank');
);




I can download the file in new tab but I have to click enable popup. Is there are way to implement this without manually clicking on enable popup? Probably I need to change the type of the returned object?







angular angular6






share|improve this question















share|improve this question













share|improve this question




share|improve this question








edited Nov 10 '18 at 21:09









georgeawg

32.9k104968




32.9k104968










asked Nov 10 '18 at 20:53









Peter PenzovPeter Penzov

8558178386




8558178386












  • It looks like your PDF file is on the same server as the service. In that case, I'd suggest serving the file with SpringBoot, either by moving the file into the static folder in your resources or by overwriting the addResourceHandlers configuration. Would that be feasable in your case?

    – pascalpuetz
    Nov 10 '18 at 21:05











  • Can you should me how to configure addResourceHandlers?

    – Peter Penzov
    Nov 10 '18 at 21:09











  • Try this guide: spring.io/blog/2013/12/19/…

    – pascalpuetz
    Nov 10 '18 at 21:12











  • Oh and if you use that approach, just open the location without first downloading the PDF file (e.g. window.open('/my/static/file.pdf', '_blank');)

    – pascalpuetz
    Nov 10 '18 at 21:13











  • Ok but probably it should be more appropriate to configure Angular not Spring for which content to allow for popup?

    – Peter Penzov
    Nov 10 '18 at 21:15

















  • It looks like your PDF file is on the same server as the service. In that case, I'd suggest serving the file with SpringBoot, either by moving the file into the static folder in your resources or by overwriting the addResourceHandlers configuration. Would that be feasable in your case?

    – pascalpuetz
    Nov 10 '18 at 21:05











  • Can you should me how to configure addResourceHandlers?

    – Peter Penzov
    Nov 10 '18 at 21:09











  • Try this guide: spring.io/blog/2013/12/19/…

    – pascalpuetz
    Nov 10 '18 at 21:12











  • Oh and if you use that approach, just open the location without first downloading the PDF file (e.g. window.open('/my/static/file.pdf', '_blank');)

    – pascalpuetz
    Nov 10 '18 at 21:13











  • Ok but probably it should be more appropriate to configure Angular not Spring for which content to allow for popup?

    – Peter Penzov
    Nov 10 '18 at 21:15
















It looks like your PDF file is on the same server as the service. In that case, I'd suggest serving the file with SpringBoot, either by moving the file into the static folder in your resources or by overwriting the addResourceHandlers configuration. Would that be feasable in your case?

– pascalpuetz
Nov 10 '18 at 21:05





It looks like your PDF file is on the same server as the service. In that case, I'd suggest serving the file with SpringBoot, either by moving the file into the static folder in your resources or by overwriting the addResourceHandlers configuration. Would that be feasable in your case?

– pascalpuetz
Nov 10 '18 at 21:05













Can you should me how to configure addResourceHandlers?

– Peter Penzov
Nov 10 '18 at 21:09





Can you should me how to configure addResourceHandlers?

– Peter Penzov
Nov 10 '18 at 21:09













Try this guide: spring.io/blog/2013/12/19/…

– pascalpuetz
Nov 10 '18 at 21:12





Try this guide: spring.io/blog/2013/12/19/…

– pascalpuetz
Nov 10 '18 at 21:12













Oh and if you use that approach, just open the location without first downloading the PDF file (e.g. window.open('/my/static/file.pdf', '_blank');)

– pascalpuetz
Nov 10 '18 at 21:13





Oh and if you use that approach, just open the location without first downloading the PDF file (e.g. window.open('/my/static/file.pdf', '_blank');)

– pascalpuetz
Nov 10 '18 at 21:13













Ok but probably it should be more appropriate to configure Angular not Spring for which content to allow for popup?

– Peter Penzov
Nov 10 '18 at 21:15





Ok but probably it should be more appropriate to configure Angular not Spring for which content to allow for popup?

– Peter Penzov
Nov 10 '18 at 21:15












0






active

oldest

votes











Your Answer






StackExchange.ifUsing("editor", function ()
StackExchange.using("externalEditor", function ()
StackExchange.using("snippets", function ()
StackExchange.snippets.init();
);
);
, "code-snippets");

StackExchange.ready(function()
var channelOptions =
tags: "".split(" "),
id: "1"
;
initTagRenderer("".split(" "), "".split(" "), channelOptions);

StackExchange.using("externalEditor", function()
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled)
StackExchange.using("snippets", function()
createEditor();
);

else
createEditor();

);

function createEditor()
StackExchange.prepareEditor(
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader:
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
,
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
);



);













draft saved

draft discarded


















StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53243309%2fopen-pdf-document-without-popup-blocker%23new-answer', 'question_page');

);

Post as a guest















Required, but never shown

























0






active

oldest

votes








0






active

oldest

votes









active

oldest

votes






active

oldest

votes















draft saved

draft discarded
















































Thanks for contributing an answer to Stack Overflow!


  • Please be sure to answer the question. Provide details and share your research!

But avoid


  • Asking for help, clarification, or responding to other answers.

  • Making statements based on opinion; back them up with references or personal experience.

To learn more, see our tips on writing great answers.




draft saved


draft discarded














StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53243309%2fopen-pdf-document-without-popup-blocker%23new-answer', 'question_page');

);

Post as a guest















Required, but never shown





















































Required, but never shown














Required, but never shown












Required, but never shown







Required, but never shown

































Required, but never shown














Required, but never shown












Required, but never shown







Required, but never shown







Popular posts from this blog

𛂒𛀶,𛀽𛀑𛂀𛃧𛂓𛀙𛃆𛃑𛃷𛂟𛁡𛀢𛀟𛁤𛂽𛁕𛁪𛂟𛂯,𛁞𛂧𛀴𛁄𛁠𛁼𛂿𛀤 𛂘,𛁺𛂾𛃭𛃭𛃵𛀺,𛂣𛃍𛂖𛃶 𛀸𛃀𛂖𛁶𛁏𛁚 𛂢𛂞 𛁰𛂆𛀔,𛁸𛀽𛁓𛃋𛂇𛃧𛀧𛃣𛂐𛃇,𛂂𛃻𛃲𛁬𛃞𛀧𛃃𛀅 𛂭𛁠𛁡𛃇𛀷𛃓𛁥,𛁙𛁘𛁞𛃸𛁸𛃣𛁜,𛂛,𛃿,𛁯𛂘𛂌𛃛𛁱𛃌𛂈𛂇 𛁊𛃲,𛀕𛃴𛀜 𛀶𛂆𛀶𛃟𛂉𛀣,𛂐𛁞𛁾 𛁷𛂑𛁳𛂯𛀬𛃅,𛃶𛁼

Edmonton

Crossroads (UK TV series)