早上好, 点击,详细说明一个表格(部分),我运行算法来处理iTextSharp文件pdf,在那里我发布以下说明:
Dim doc As New Document(iTextSharp.text.PageSize.A4.Rotate, 10, 10, 60, 30)
Dim pdfFilePath As String = Resources.FrmParcheggio.Soste & ".pdf"
Dim Response As HttpResponse = HttpContext.Current.Response
Response.Clear()
Response.ContentType = "application/octet-stream"
Response.AddHeader("Content-Disposition", "inline; filename=" & pdfFilePath)
Dim wri As PdfWriter = PdfWriter.GetInstance(doc, Response.OutputStream)
Dim Intestazione As New MyPageEventHandler
Intestazione.Cliente = HttpContext.Current.Session("NomeCliente")
Intestazione.NomeReport = Resources.FrmParcheggio.TitoloReport
wri.PageEvent = Intestazione
doc.Open()
' various processing
doc.Close()
我的问题是,在不同的浏览器(win和mac os)中,它可以与ios一起使用,但Android已经完成,但PDF没有显示...为什么?有一些错误? 非常感谢那些回应的人。 大卫
答案 0 :(得分:1)
这是错误的:
Response.ContentType = "application/octet-stream"
应该是:
Response.ContentType = "application/pdf"
您还要求浏览器显示PDF内联:
Response.AddHeader("Content-Disposition", "inline; filename=" & pdfFilePath)
并非所有浏览器都能以内联方式显示PDF。也许你想确保它在浏览器外面打开:
Response.AddHeader("Content-Disposition", "attachment; filename=" & pdfFilePath)
此外,一些浏览器不喜欢二进制内容而事先不知道将发送多少字节。这就是为什么你会看到大量的iText代码,其中首先在内存中创建PDF(使用MemoryStream
),它允许在写入第一个PDF字节之前设置内容长度。
最后:您检查了不同的Android设备吗?并非每个设备都有PDF查看器,您需要PDF查看器来呈现PDF。
在任何情况下:这不是iTextSharp问题,因为正如您自己所说,PDF在不同的浏览器中正确显示。