Tiene que hacer en dos pasos.
Primero: Analizar el pdf para localizar los operadores de contenido marcado
Eso es un exemple de un código de análisis:
-(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);
}
(que necesita para completar y ajustar el código para que coincida con su requisito)
Segundo: responda al mensaje de toucheEnded para manejar el toque en esas zonas y haga que la UI responda en consecuencia.
¿Qué es exactamente lo que quiere decir con enlaces entre páginas? ¿Estás hablando de un enlace en la página 1, que va a la página 4, o estás hablando de la página uno seguido de la página 2 en tu lector? Por cierto, si habla de enlaces clicables entre páginas, tenga en cuenta que los hipervínculos en un documento PDF son simplemente rectángulos de punto de acceso seleccionables en una página y no tienen ninguna relación directa con el texto que parecen hipervincular. Un documento PDF no es como un documento HTML en ese sentido. – Rowan
Me refiero a los enlaces de apoyo de una página a otra página arbitraria en el documento. Utilizaría esto para una tabla de contenido, así como para hacer referencia a otras páginas en lugares aleatorios. Así que sí, lo que realmente estoy buscando es una forma similar a HTML para navegar documentos PDF. Puedo manejar el caso simple de navegación "next/prev/home" sin esto, pero idealmente también me gustaría apoyar la navegación arbitraria. Gracias. –
Aquí hay un código de muestra, de mi propia pregunta: http://stackoverflow.com/questions/4080373/get-pdf-hyperlinks-on-ios-with-quartz – pt2ph8