Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/331.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/117.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# CGPDF文档无法读取pdf_C#_Ios_Xamarin.ios_Pdfrenderer_Cgpdf - Fatal编程技术网

C# CGPDF文档无法读取pdf

C# CGPDF文档无法读取pdf,c#,ios,xamarin.ios,pdfrenderer,cgpdf,C#,Ios,Xamarin.ios,Pdfrenderer,Cgpdf,我按照下面的示例查看了一个(Xamarin.iOS)。一切正常,直到最近我开始注意到一些pdf文件不能用这种方法读取 我打开我的mac电脑并获得了信息,我注意到以下几点: 如果我使用Mac viewer将文档导出为pdf,它可以很好地读取,但大小会增加 如果我尝试按原样打开文件,则除了一个白色页面外,其他内容都无法查看 这种情况只发生在我的iOS应用程序上,Android上的查看器工作正常 我可以使用Mac的查看器将每个文件导出为pdf格式,但这比我需要的多了一步。我能做些什么来解决这个问题

我按照下面的示例查看了一个(Xamarin.iOS)。一切正常,直到最近我开始注意到一些pdf文件不能用这种方法读取

我打开我的mac电脑并获得了信息,我注意到以下几点:

  • 如果我使用Mac viewer将文档导出为pdf,它可以很好地读取,但大小会增加
  • 如果我尝试按原样打开文件,则除了一个白色页面外,其他内容都无法查看
  • 这种情况只发生在我的iOS应用程序上,Android上的查看器工作正常
我可以使用Mac的查看器将每个文件导出为pdf格式,但这比我需要的多了一步。我能做些什么来解决这个问题

原始编码:AdobeAcrobat10.1.16中的PDFSCANLIBV1.2.2

导出编码:Mac OS X 10.10.5 Quartz PDFContext


我对程序进行了额外的测试,我可以得出结论,问题在于pdf文件上使用的压缩。CGPDFDocument是否有任何方法可以删除或忽略压缩,以便我可以查看pdf?我将pdf上传到我的移动后端,在那里我拆分页面。我正在使用Pdfsharp来完成这一任务,如果可能的话,在保存到服务器之前有没有办法清除文件?(此问题仅影响我的应用程序的iOS版本)


经过额外测试后,我遇到了以下错误: 使用的JBIG2压缩似乎有一个已知的错误,在pdf中读取jpg时会导致错误。(我将继续进行进一步测试,直到找到解决方案。)



更正:pdf压缩不是JBIG2,而是FlateCode。在测试和读取二进制数据之后,我注意到原始数据和导出数据具有相同的压缩类型。(当我试图弄明白这一点时,将更新更多信息。)

苹果的CoreGraphics渲染库有很多局限性——你不可能期望在合理的时间范围内修复它,因为苹果在推进PDF引擎方面只分配了很少的资源

我们之所以知道这一点,是因为我们从2011年开始在这个领域工作,并提供了一个名为的商业PDF查看和编辑库。我们在iOS SDK的第5版中替换了苹果的渲染器,现在提供了一个定制的渲染引擎——我们也用它来驱动Android SDK

市场上没有多少竞争对手也使用自定义渲染引擎-您可以寻找muPDF作为一种潜在的替代方案,它也可以解决您的问题(也是商业性的)。大多数其他产品只是
CGPDF
上的垫片,无法解决您的问题。请随意评估一些产品,如果您有任何进一步的问题,请告诉我。(请通过pspdfkit.com联系peter)


我们还为这两种平台提供了方便的集成。

这听起来像是一个iOS错误(或限制),与Xamarin无关。我编辑了标签,这样更多的人会看到它(你应该得到一个更好的更改来获得答案)。我认为将代码移植到Xamarin是一个限制,但你可能是对的。我使用5种不同的方式阅读pdf(pdfsharp可拆分,chrome可查看,safari可查看,甚至iPhone中的普通邮件也适用于原版)。我不知道实际的bug与什么有关。如果可能的话,我希望避免商业许可证。你们知道这个错误的确切性质吗?更糟糕的是,我想我可以创建全新的pdf文件;似乎我必须运行广泛的测试,以找到完美的格式,使其与iOS核心图形100%兼容。