angezeigt werden. Die PDF-Datei, die ich mit Dev Express erstellt habe, und mit Antwortobjekt an den Browser zurücksendet. Ich muss die Datei im neuen Browserfenster öffnen.Die PDF-Datei im Browser kann nicht mit dem Antwortobjekt
Für die Skript Client-Seite des Code-Methode von Web-Service zu nennen:
window.open(dashboardService + "PrintableJobOrderDocument?JobOrderNo=" + jobOrderNo, "Job Order Documnet", "scrollbars=0,fullscreen=1", false);
Für den WCF-Dienst ist die Methode:
[OperationContract]
[WebInvoke(Method = "GET", RequestFormat = WebMessageFormat.Json)]
public void PrintableJobOrderDocument(string JobOrderNo)
{
if (!string.IsNullOrEmpty(JobOrderNo))
{
CommonServiceClient commonService = null;
try
{
commonService = new CommonServiceClient();
var data = commonService.JobOrderPDFDoc(JobOrderNo);
if (data.Count() != 0)
{
//Excel file as a memory stream
var excel = JobOrderTemplate(data);//this method will return the workbook object.
MemoryStream ExcelStream = new MemoryStream();
excel.SaveDocument(ExcelStream, DocumentFormat.Xlsx);
ExcelStream.Position = 0;
//Excel file to a pdf memory stream
Workbook workbook = new Workbook();
workbook.LoadDocument(ExcelStream, DocumentFormat.Xlsx);
MemoryStream PDFStream = new MemoryStream();
workbook.ExportToPdf(PDFStream);
PDFStream.Seek(0, SeekOrigin.Begin);
HttpResponse response = HttpContext.Current.Response;
response.Clear();
response.BufferOutput = true;
response.ContentType = "application/pdf";
response.AppendHeader("content-disposition", "Job Order No. " + JobOrderNo + ".pdf");
byte[] fileToDownload = PDFStream.ToArray();
response.BinaryWrite(fileToDownload);
response.Flush();
response.End();
}
}
catch (Exception ex)
{
GeneralTask.AddMessageLog(MessageLogApplication.Portal, MessageLogModules.Common, MessageLogType.Error, MethodBase.GetCurrentMethod().Name, ex);
}
finally
{
ServiceHelper.CloseService(commonService);
}
}
}
Das Antwortobjekt zeigt eine anderes Verhalten an verschiedenem Browser. Für:
Chrome: Datei einige Zeit geöffnet und einige Zeit nicht in der Lage, die Datei zu öffnen.
Mozilla: Datei nie geöffnet und geben Sie mir Fehler:
C:\Users\tach\AppData\Local\Temp\nJ0oODH4.pdf.part could not be saved, because the source file could not be read.
Try again later, or contact the server administrator.
Response-Header in Mozilla:
Cache-Control: private
Transfer-Encoding: chunked Content-Type:
application/pdf Server: Microsoft-IIS/10.0
Content-Disposition: Job Order No. ad_0003.pdf
X-AspNet-Version: 4.0.30319 X-SourceFiles: =?UTF-8?B?RzpcRm1zMlRmc1xGTVNPZmZpY2UtVjEwNi1UcnVua1xGTVNQb3J0YWxcRGFzaGJvYXJkU2VydmljZS5zdmNcUHJpbnRhYmxlSm9iT3JkZXJEb2N1bWVudA==?= X-Powered-By: ASP.NET Access-Control-Allow-Origin: * Date: Thu, 08 Jun 2017 09:48:00 GMT
Microsoft Edge: Datei nie geöffnet.
Ich habe alle Browser überprüft Netzwerk Registerkarte und in der Kopfzeile Antwortdatei, Dateityp, Dateiname verfügbar, aber nicht in der Lage, die Datei zu öffnen.
Update:
unten AppHeader Werke für Chrome aber nicht für Firefox oder Edge.
response.AppendHeader("content-disposition", "inline; \"Job Order No " + JobOrderNo + ".pdf\"");
und
response.AppendHeader("content-disposition", "Job Order No. " + JobOrderNo + ".pdf");
gerade in Chrom gearbeitet, aber Firefox haben jetzt ein anderes Problem. –
siehe dieses Bild http: //i.stack.imgur.com/9asCl.png –
Ich verstehe nicht, was dieses Bild ist - Sie müssen es ein bisschen mehr erklären. – mjwills