我按照下面的示例查看pdf in my App (Xamarin.iOS)。直到最近,我才开始注意到有些pdf文件无法用这种方法读取。
我打开并获得了我的mac上的信息,我注意到以下内容:
我可以导出每个文件到pdf使用Mac的查看器,但这是一个额外的步骤,我需要。我能做些什么来解决这个问题?
原始编码:AdobeAcrobat10.1.16中的PDFScanLib v1.2.2
导出编码:MacOSX10.10.5 Quartz PDFContext
我运行了额外的测试程序,我可以得出结论,问题是压缩正在使用的pdf文件。有没有任何方式CGPDFDocument可以删除或忽略压缩,以便我可以查看的pdf?我把pdf上传到我的移动后端,在那里我分割页面。我正在使用Pdfsharp来完成这一任务,如果可能的话,在保存到服务器之前是否有一种清除文件的方法?(这个问题只影响我的应用程序的iOS版本)。
经过额外的测试后,我遇到了以下问题:Here,它将显示使用的JBIG2压缩有一个已知的错误,当在pdf中读取一个jpg时会导致错误。(我将继续进行进一步的测试,直到找到解决方案。)
更正: pdf压缩不是JBIG2,而是FlateDecode。在测试和读取二进制数据之后,我注意到原始数据和导出数据都具有相同的压缩类型。(在我试图解决这个问题时,将更新更多的信息。)
发布于 2016-04-16 18:59:22
苹果的CoreGraphics呈现库有很多限制--你不太可能在合理的时间框架内得到修复,因为苹果在推进他们的PDF引擎时只分配了很少的资源。
我们之所以知道这一点,是因为我们从2011年起就在这个领域工作,并提供了一个名为PSPDFKit的商业PDF查看和编辑库。我们在iOS SDK的第5版中取代了苹果的渲染器,现在发布了一个定制的呈现引擎--就像我们用来驱动我们的Android一样。
市场上没有多少竞争对手也使用自定义渲染引擎--您可以将muPDF作为一个潜在的替代方案,这也可能解决您的问题(也是商业的)。大多数其他产品都是CGPDF上的shims,这不会解决您的问题。请随时评估一些产品,并让我知道,如果您有任何进一步的问题。(与pspdfkit.com的彼得联系)
我们还为两个平台提供complete wrappers for Xamarin,使集成变得容易。
https://stackoverflow.com/questions/36605770
复制相似问题