0

私は以下を実行しています:

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

ただし、配列のカウントは常にゼロです。[「1要素配列」であるはずです。]どうしてこれができるのでしょうか?-PDFガイドラインでは、この配列が必須であり、「このタイプ0フォントの子孫であるCIDFontディクショナリを指定する」ことも規定されています。どうすればカウントゼロになり、この辞書が含まれているという要件を満たすことができますか?

4

1 に答える 1

1

コードのこの部分の anArray を見てください。

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

NULL 以外に設定されることはありません。おそらく次のように意図していました。

CGPDFObjectGetValue(object, kCGPDFObjectTypeArray, &anArray);
于 2011-05-18T14:20:32.040 に答える