iTextSharp处理,但它没有出现在Android pdf中

时间:2015-12-29 08:50:01

标签: android asp.net itextsharp

早上好, 点击,详细说明一个表格(部分),我运行算法来处理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没有显示...为什么?有一些错误? 非常感谢那些回应的人。 大卫

1 个答案:

答案 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在不同的浏览器中正确显示。