CGPDFArray弹出但零计数

时间:2011-05-18 14:03:04

标签: arrays pdf cgpdf

我正在运行以下内容:

if (CGPDFDictionaryGetObject(dict, "DescendantFonts", &object))
  {
    CGPDFObjectType objectType = CGPDFObjectGetType(object);
    switch (objectType)
    {
      case kCGPDFObjectTypeArray:
      {
        CGPDFArrayRef anArray = NULL;
        CGPDFObjectGetValue(object, kCGPDFObjectTypeArray, NULL);
        NSLog(@"%i", CGPDFArrayGetCount(anArray));
      }
        break;
      default:
        break;
    }
  }

从PDF页面字体字典中提取信息,当我有一个truetype字体时它会找到一些东西。

PDF指南中的一个例子是:

14 0 obj 
<<
/Type /Font
/Subtype /Type0
/BaseFont /HeiseiMin−W5−90ms−RKSJ−H
/Encoding /90ms−RKSJ−H
/DescendantFonts [15 0 R]
>>
endobj

但是,数组总是有零! [它应该是“一个单元素阵列。”]这怎么可能? - PDF指南还规定此数组是必需的,并且“指定(作为此Type 0字体的后代的CIDFont字典)。”如何计算零并满足它包含该字典的要求?

1 个答案:

答案 0 :(得分:1)

在代码的这一部分中查看anArray:

CGPDFArrayRef anArray = NULL;
CGPDFObjectGetValue(object, kCGPDFObjectTypeArray, NULL);
NSLog(@"%i", CGPDFArrayGetCount(anArray));

它永远不会设置为NULL以外的任何东西。你可能打算这样做:

CGPDFObjectGetValue(object, kCGPDFObjectTypeArray, &anArray);