CGPDFDocument
、または他の手段を使用してPDFドキュメントの「内部」リンクにアクセスすることは可能ですか?シンプルなリーダーアプリを作成していて、コンテンツをPDF形式で配信したいのですが、ドキュメント内のページ間のリンクをサポートできない場合、これはおそらく機能しません。
この質問は似ていますが、ハイパーリンクをサポートする方法の問題には対応していません。
CGPDFDocument
、または他の手段を使用してPDFドキュメントの「内部」リンクにアクセスすることは可能ですか?シンプルなリーダーアプリを作成していて、コンテンツをPDF形式で配信したいのですが、ドキュメント内のページ間のリンクをサポートできない場合、これはおそらく機能しません。
この質問は似ていますが、ハイパーリンクをサポートする方法の問題には対応していません。
ここで私の答えを参照してください。基本的に、PDFリンク注釈に精通する必要があります。
このサンプル コードを参照してください...pdf ハイパーリンクはこれで機能します
2 つのステップで行う必要があります。
最初: PDF を解析して、マークされたコンテンツ オペレータを見つけます。
これは解析コードの例です:
-(void)parseContent() {
CGPDFOperatorTableRef myTable;
myTable = CGPDFOperatorTableCreate();
CGPDFOperatorTableSetCallback(myTable, "BMC", &myOperator_BMC);
CGPDFContentStreamRef myContentStream = CGPDFContentStreamCreateWithPage(page);
CGPDFScannerRef myScanner = CGPDFScannerCreate(myContentStream, myTable, autoZoomAreas);
CGPDFScannerScan(myScanner);
CGPDFScannerRelease(myScanner);
CGPDFContentStreamRelease(myContentStream);
}
void myOperator_BMC(CGPDFScannerRef s, void *info)
{
const char *name;
CGPDFScannerPopName(s, &name);
}
(要件に合わせてこのコードを完成させて調整する必要があります)
2 番目: toucheEnded メッセージに応答して、それらのゾーンでのタップを処理し、それに応じて UI を応答させます。
Quartz を使用して PDF を開いて表示している場合、はい、内部リンクにアクセスできるようです。Quartz では、PDFに新しいリンクを追加することもできます。私は iPhone/Mac の開発を直接経験したことはありませんが、ハイパーリンクを追加できるのに使用できないというのは非常に奇妙です。