Como acessar hiperlinks em documentos PDF (iPhone)?

9

É possível obter acesso a links "internos" em documentos PDF usando CGPDFDocument ou outros meios? Estou criando um aplicativo de leitura simples e gostaria de entregar meu conteúdo em formato PDF, mas se eu não puder suportar links entre páginas no documento, isso provavelmente não funcionará.

This pergunta é semelhante, mas não aborda a questão de como suportar hiperlinks.

    
por George Armhold 08.08.2009 в 04:33
fonte

4 respostas

2

Veja minha resposta aqui . Basicamente, você precisa se familiarizar com as anotações de links do PDF.

    
por jbm 10.08.2010 / 00:35
fonte
1

veja este exemplo de código ... hiperlink pdf funciona neste

link

    
por phani yelugula 08.09.2011 / 12:40
fonte
0

Se você estiver usando Quartz para abrir e ver um PDF , então sim, parece que você terá acesso a links internos. O Quartz também permitirá que você adicionar novos links para PDFs. Eu não tenho nenhuma experiência em primeira mão com o desenvolvimento do iPhone / Mac, mas seria muito estranho para eles permitirem que você adicione hiperlinks, mas não os use.

    
por Rowan 11.08.2009 / 04:06
fonte
0

Você precisa fazer em duas etapas.

Primeiro: Analise seu pdf para localizar operadores de conteúdo marcados

Esse é um exemplo de um código de análise:

-(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);
}

(Você precisa completar e ajustar este código para atender às suas necessidades)

Segundo: responda à mensagem toucheEnded para lidar com essas zonas e faça a interface do usuário responder de acordo.

    
por VdesmedT 31.08.2010 / 12:40
fonte