CGPDFArray выскочил, но нулевой счет - PullRequest
0 голосов
/ 18 мая 2011

Я выполняю следующее:

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 также предусматривают, что этот массив является обязательным и «указывает (-ют) словарь CIDFont, являющийся потомком этого шрифта типа 0».Как он может иметь нулевой счет и удовлетворять требованию, чтобы он содержал этот словарь?

1 Ответ

1 голос
/ 18 мая 2011

Посмотрите на anArray в этой части вашего кода:

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

Он никогда не устанавливается на что-либо кроме NULLВы, вероятно, предполагали, что это будет:

CGPDFObjectGetValue(object, kCGPDFObjectTypeArray, &anArray);
...