CGPDFDocument无法读取pdf

Sca*_*lin 11 c# xamarin.ios pdfrenderer ios cgpdf

我按照以下示例在我的应用程序(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.在测试并读取二进制数据之后,我注意到原始数据和导出数据都具有相同类型的压缩.(当我尝试解决这个问题时,会更新更多信息.)

ste*_*ete 8

Apple的CoreGraphics渲染库有许多局限性 - 由于Apple在推进PDF引擎方面投入的资源非常少,因此您无法在合理的时间范围内对其进行修复.

我们知道这一点,因为我们从2​​011年开始在这个领域工作,并提供一个名为PSPDFKit的商业PDF查看和编辑库.我们在iOS SDK的第5版中替换了Apple的渲染器,现在发布了自定义渲染引擎 - 我们也用它来驱动我们的Android SDK.

市场上没有很多竞争对手也使用自定义渲染引擎 - 您可以将muPDF作为潜在替代品来寻找也可以解决您的问题(也是商业化的).大多数其他产品只是垫片在CGPDF其上无法解决您的问题.如果您有任何其他问题,请随时评估一些产品并告诉我.(在pspdfkit.com上与彼得联系)

我们还为两个平台提供Xamarin的完整包装,使集成变得容易.