Anotar PDF dentro del SDK de iPhone

Pude implementar un visor de PDF muy básico dentro de mi aplicación, pero me preguntaba si era posible agregar anotaciones al PDF. Revisé los documentos del SDK, pero no encontré nada. Tengo 2 preguntas realmente:

  1. ¿Es posible hacer esto?
  2. ¿Cuál es el mejor enfoque para tomar?
  3. ¿Existe un marco o biblioteca que pueda incluir para ayudar con esto?

Gracias.

Puede hacer una anotación leyendo en una página PDF, dibujándola en un nuevo contexto de gráficos PDF y luego dibujando contenido adicional en ese contexto gráfico. Aquí hay un código que agrega las palabras ‘Ejemplo de anotación’ en la posición (100.0, 100.0) a un PDF existente. El método getPDFFileName devuelve la ruta de la PD original. getTempPDFFileName devuelve la ruta del nuevo PDF, el que es el original más la anotación.

Para variar las anotaciones, simplemente agregue más código de dibujo en lugar del método drawInRect: withFont :. Consulte la Guía de dibujo e impresión para iOS para obtener más información sobre cómo hacerlo.

- (void) exampleAnnotation; { NSURL* url = [NSURL fileURLWithPath:[self getPDFFileName]]; CGPDFDocumentRef document = CGPDFDocumentCreateWithURL ((CFURLRef) url);// 2 size_t count = CGPDFDocumentGetNumberOfPages (document);// 3 if (count == 0) { NSLog(@"PDF needs at least one page"); return; } CGRect paperSize = CGRectMake(0.0,0.0,595.28,841.89); UIGraphicsBeginPDFContextToFile([self getTempPDFFileName], paperSize, nil); UIGraphicsBeginPDFPageWithInfo(paperSize, nil); CGContextRef currentContext = UIGraphicsGetCurrentContext(); // flip context so page is right way up CGContextTranslateCTM(currentContext, 0, paperSize.size.height); CGContextScaleCTM(currentContext, 1.0, -1.0); CGPDFPageRef page = CGPDFDocumentGetPage (document, 1); // grab page 1 of the PDF CGContextDrawPDFPage (currentContext, page); // draw page 1 into graphics context // flip context so annotations are right way up CGContextScaleCTM(currentContext, 1.0, -1.0); CGContextTranslateCTM(currentContext, 0, -paperSize.size.height); [@"Example annotation" drawInRect:CGRectMake(100.0, 100.0, 200.0, 40.0) withFont:[UIFont systemFontOfSize:18.0]]; UIGraphicsEndPDFContext(); CGPDFDocumentRelease (document); } 

Estoy trabajando en las cosas y creé un proyecto de GitHub. Por favor, échale un vistazo aquí .

No creo que PDFAnnotation o PDFKit hayan sido portados al iPhone desde el escritorio … probablemente sea una gran excusa para archivar un radar . Sin embargo, Haru puede dejarte pasar mientras tanto.

    Intereting Posts