Cookies op Tweakers

Tweakers maakt gebruik van cookies, onder andere om de website te analyseren, het gebruiksgemak te vergroten en advertenties te tonen. Door gebruik te maken van deze website, of door op 'Ga verder' te klikken, geef je toestemming voor het gebruik van cookies. Wil je meer informatie over cookies en hoe ze worden gebruikt, bekijk dan ons cookiebeleid.

Meer informatie
Toon posts:

[Reporting Services] bestandsnaam PDF

Pagina: 1
Acties:
Hoi allen,

ik genereer orderbonnen en facturen op een daarvoor ingerichte pagina 'print.aspx'. Deze pagina rendert met reporting services een PDF met daarin de gegevens van de opgevraagde order/factuur (welke via de querystring wordt mee gegeven).

Deze PDF wordt direct op het scherm getoond in de browser door o.a. de volgende regels:
C#:
1
2
3
4
this.Response.AddHeader("Content-disposition", String.Format("inline; filename={0}", filename));
this.Response.BinaryWrite(bytes);
this.Response.Flush();
this.Response.End();

filename is een dynamisch gegenereerde text op basis van wat order/factuur gegevens, bijv:
C#:
1
filename = String.Format("Invoice_{0}.pdf", invoicenumber);

Adobe Reader wordt binnen de browser geopend en toont de PDF.
Als ik echter vervolgens binnen Adobe Reader de PDF op wil slaan, slaat hij deze op met de naam van de pagina 'print.pdf' in plaats van 'invoice_{0}.pdf'.

Als ik de pdf niet in de browser open, maar als download aanbied (Content-disposition attachment i.p.v. inline) krijg ik wel de juiste bestandsnaam aan de file gekoppeld.

Hoop dat het een beetje duidelijk is.
Iemand een idee hoe ik dit kan oplossen?

Fujifilm X-T2 || 23mm f/2 || 35mm f/2 || 50mm f/2


  • HuHu
  • Registratie: maart 2005
  • Niet online
Een korte zoektocht op Google geeft de volgende URL: http://itext-general.2136...obe-reader-td2155623.html

Lijkt er op dat het dus niet kan, tenzij je de URL kunt aanpassen naar mijnpagina.nl/print/invoice_{0}.pdf en je dit server-side afhandelt.
ik heb uiteraard zelf ook gegoogled en daarbij kwam ik deze site tegen:
http://stackoverflow.com/...-save-filename-in-acrobat
quote:
Set the file name in ContentType as well. This should solve the problem.
C#:
1
2
3
context.Response.ContentType = "application/pdf; name=" + fileName;
// the usual stuff
context.Response.AddHeader("content-disposition", "inline; filename=" + fileName);

After you set content-disposition header, also add content-length header, then use binarywrite to stream the PDF.
C#:
1
2
context.Response.AddHeader("Content-Length", fileBytes.Length.ToString());
context.Response.BinaryWrite(fileBytes);

Dit werkt in zowel Firefox als Chrome. Helaas niet in IE.

Fujifilm X-T2 || 23mm f/2 || 35mm f/2 || 50mm f/2

na overleg met collega's besloten dit even te laten voor wat het is. Dus wellicht kom ik er later nog eens op terug.

Fujifilm X-T2 || 23mm f/2 || 35mm f/2 || 50mm f/2


  • Pizzalucht
  • Registratie: januari 2011
  • Laatst online: 22-04 19:44

Pizzalucht

Snotneus.

Ik gebruikte deze code om het te laten werken in alle browsers, het is PHP, maar misschien kun je er iets mee:
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
header("Content-Type: audio/x-mpeg, audio/x-mpeg-3, audio/mpeg3");

$invalid_chars = array("'", "\"", ":", "/", "\\", "*", "?", "<", ">", "|");
$file_title = str_replace($invalid_chars, "", $file_title);

if (preg_match("/MSIE/",$_SERVER['HTTP_USER_AGENT'])){
    
    header('Content-Disposition: attachment; filename="' . trim(addslashes(rawurlencode($file_title))) . '.mp3"');
} else {
    
    header('Content-Disposition: attachment; filename="' . trim(addslashes($file_title)) . '.mp3"');
}

De oplossing zit er wellicht bij:
* Foute karakters uit de bestandsnaam filteren
* De bestadsnaam omsluiten met quotes
* Een url encode doen wanneer de request van IE komt

Pizzalucht wijzigde deze reactie 12-09-2012 00:14 (39%)


  • HuHu
  • Registratie: maart 2005
  • Niet online
@Pizzalucht; het gaat om PDF documenten en niet om MP3. Er zit gewoon een fout in Adobe Reader wat er voor zorgt dat de standaard oplossing niet werkt.

  • Pizzalucht
  • Registratie: januari 2011
  • Laatst online: 22-04 19:44

Pizzalucht

Snotneus.

quote:
HuHu schreef op woensdag 12 september 2012 @ 09:44:
@Pizzalucht; het gaat om PDF documenten en niet om MP3. Er zit gewoon een fout in Adobe Reader wat er voor zorgt dat de standaard oplossing niet werkt.
Dat snap ik, maar het werkt precies hetzelfde, alleen de mimetype is anders ;)

pdebie geeft al aan dat het hem inmiddels gelukt is in Firefox en Chrome, ik geef hem een aantal mogelijkheden waarom het mogelijk niet werkt in IE :)

  • HuHu
  • Registratie: maart 2005
  • Niet online
Ook jouw oplossing werkt niet in IE voor PDF documenten, de mogelijkheden die je suggereert zullen het niet oplossen. Dat is nu juist het probleem.
Pagina: 1


OnePlus 7 Microsoft Xbox One S All-Digital Edition LG W7 Google Pixel 3 XL OnePlus 6T (6GB ram) FIFA 19 Samsung Galaxy S10 Sony PlayStation 5

Tweakers vormt samen met Tweakers Elect, Hardware.Info, Autotrack, Nationale Vacaturebank, Intermediair en Independer de Persgroep Online Services B.V.
Alle rechten voorbehouden © 1998 - 2019 Hosting door True