ios - UIGraphicsBeginPDFContextToData 创建 Acrobat 无法读取的 PDF

标签 ios objective-c pdf

我使用普通代码块从 iOS 创建 PDF。

NSMutableData *pdfdata = [NSMutableData dataWithLength:2048];
CGRect newf = CGRectMake(0, 0,1024,1024);

UIGraphicsBeginPDFContextToData(pdfdata,newf,nil);
UIGraphicsBeginPDFPage();

//rendering code

UIGraphicsEndPDFContext();

iOS 和 OS X 可以很好地读取这些 PDF,但 Acrobat 声称它们已损坏且无法读取。有趣的是,在 Preview 中复制它们可以消除它们并使它们再次可被 Acrobat 读取。

通过比较这两个版本,我可以看到 OS X PDF 编码器添加了一堆东西(它的二进制文件所以不知道是什么)

任何人都知道使我的 PDF 的 Acrobat 再次兼容的秘诀。

编辑

Broken file - 不会在 Acrobat 中打开

最佳答案

文档以一个 2048 字节的 block 开始,用零填充,这会损坏文件中的所有偏移量。

创建一个没有初始长度的空 NSMutableData,问题应该已解决。

关于ios - UIGraphicsBeginPDFContextToData 创建 Acrobat 无法读取的 PDF,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29883640/

相关文章:

ios - 设置带有 FFmpeg 的 Red5 服务器用于直播到 iOS

ios - 如何使用 AVfoundation (swift3) 将照片放在 imageView 上

c++ - 在 Objective-C 中使用 .mm 文件有哪些怪癖/惊喜?

java - 如何在 Sparkle updater(java app) 中等待用户操作?

objective-c - 是否可以为 OSX Preview 编写插件?

ios - prepareForSegue 发送 Pdfs 错误 - 无法转换

ios - 为不同的iphone设置图像并调试

ios - xcodebuild 失败 clang :error no such file or directory:

java - 在 Flying Saucer 中使用符号

html - 如何在 Mac node-webkit 应用程序中打开 PDF 文件?