我按照以下示例在我的应用程序(Xamarin.iOS)中查看pdf 。一切都很好,直到最近我开始注意到使用这种方法无法读取一些 pdf 文件。
我在我的 Mac 上打开并获取了信息,我注意到以下内容:
- 如果我使用 Mac 查看器将文档导出为 pdf,它可以很好地阅读,但大小会增加。
- 如果我尝试按原样打开文件,则什么都看不到,只有一个白页。
- 这仅适用于我的 iOS 应用程序,我的 Android 上的查看器工作正常。
我可以使用 Mac 的查看器将每个文件导出为 pdf,但这比我需要的多一步。我能做些什么来解决这个问题?
原始编码:Adobe Acrobat 10.1.16 中的 PDFScanLib v1.2.2
导出编码:Mac OS X 10.10.5 Quartz PDFContext
我对该程序进行了额外的测试,我可以得出结论,问题出在 pdf 文件上使用的压缩。CGPDFDocument 有什么方法可以删除或忽略压缩,以便我可以查看 pdf?我将 pdf 上传到我的移动后端,并在其中拆分页面。如果可能的话,我正在使用 Pdfsharp 来完成此操作有没有办法在保存到服务器之前清除文件?(此问题仅影响我的应用程序的 iOS 版本)。
经过额外的测试,我遇到了以下错误:这里 会出现使用的 JBIG2 压缩有一个已知错误,在读取 pdf 中的 jpg 时会导致错误。(我将继续进一步测试,直到找到解决方案。)
更正:pdf压缩不是JBIG2,而是FlateDecode。在测试和读取二进制数据后,我注意到原始数据和导出数据具有相同类型的压缩。(当我试图弄清楚这一点时,将更新更多信息。)