誰かがCGPDFScannerを使ってフォント辞書のToUnicode CMapストリームエントリを解析しましたか?私はいくつかの問題に遭遇している。CGPDFScannerでCMapストリームを解析する
私は辞書からCGPDFStreamリファレンスを取得し、それと一緒にCGPDFScannerを構築しようとします。問題は、CGPDFScannerがCGPDFStreamではなく、CGPDFFContentStreamを引数として取ることです。
私は簡単にCGPDFContentStreamCreateWithPageでCGPDFContentStreamを得ることができ、テキストのオペレータが、姉妹機能CGPDFContentStreamCreateWithStreamためCGPDFPageを解析 - あなたは、フォームの内容へのアクセスを取得するには、この機能を使用することができます」と言われ、パターン、タイプ3フォント、または任意のPDFストリーム " - CGPDFContentStream Referenceでやや濁っていて、サンプルコードを見つけることができません。とにかく
、私はストリーム引数、CGPDFDictionaryはstreamResourcesパラメータと親などのページコンテンツストリームとしてCGPDFStreamGetDictionaryとストリームから取得したリソースとしてCMapのストリームを渡します。リソースディクショナリはストリーム自体から簡単に取得できるので、なぜ最初にそれを聞かせても構わないのですか?その上に、パラメータとしてNULLを渡すが、最初は何の効果もないようだ。
結果は常に同じです:私は、私は、コールバックテーブルに設定し、すべての作業のため、以下のメッセージ
`begincodespacerange' isn't an operator. `beginbfrange' isn't an operator. ... `endbfrange' isn't an operator.
を取得し、いくつかのコールバックを設定するスキャナでコンテンツストリームをスキャンしようとします。これは遭遇したすべてのCMapに対してです。
オペレータが無効である場合や、通常のPDFストリームオブジェクトであってもCGapDFannerを使用してCMapを解析することができない場合、コンテンツストリームが間違った方法で設定されているかどうかはわかりませんストリームデータを解析するために私自身のスキャナを書くことに頼ります。
です。また、PDF演算子テーブル(Appendinx A)を見ると、すべてのCMap演算子でトレースがありません。 CGPDFContentStreamCreateWithStreamと共に「any PDF stream」が私を欺いた。ご説明ありがとうございます。 – sigsegv