PDF Context set page

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • PDF Context set page

    Hallo Entwickler,

    in meiner App geniere ich PDFs und würde gerne unten die aktuelle Seitenzahl und die Gesamtseitenzahl anzeigen.
    Mit der aktuellen Seitenzahl funktioniert es bereits, diese zeichne ich, bevor ich UIGraphicsBeginPDFPageWithInfo() aufrufe und numberOfPages um 1 erhöhe.

    Vor dem Zeichnen weiß ich noch nicht, wie viele Seite das PDF zum Schluss haben wird, es wird erst während des Zeichnens mitgezählt.

    Und nun zur Frage: Wie kann ich mit dem Context auf eine der vorhergehenden Seiten zurückspringen, um dort die Gesamtseitenanzahl hinzuzufügen?
  • Hallo,

    das ist äußerst trivial…

    Siehe unten für ein Beispiel, wie ein View in ein PDF geworfen werden kann.

    Viele Grüße

    Quellcode

    1. -(BOOL)wp_writeToPDFFileWithURL:(NSURL*)URL
    2. {
    3. // …
    4. if(URL == nil)
    5. {
    6. return NO;
    7. }
    8. // …
    9. CALayer *layer = [self layer];
    10. if(layer == nil)
    11. {
    12. return NO;
    13. }
    14. // …
    15. CGRect rect = [layer bounds];
    16. if(rect.size.width < 1.0)
    17. {
    18. return NO;
    19. }
    20. if(rect.size.height < 1.0)
    21. {
    22. return NO;
    23. }
    24. // …
    25. rect.origin = CGPointZero;
    26. // …
    27. CGContextRef contextRef = CGPDFContextCreateWithURL((__bridge CFURLRef)URL, &rect, NULL);
    28. if(contextRef == NULL)
    29. {
    30. return NO;
    31. }
    32. // …
    33. CGPDFContextBeginPage(contextRef, NULL);
    34. {
    35. // …
    36. [layer renderInContext:contextRef];
    37. // …
    38. }
    39. CGPDFContextEndPage(contextRef);
    40. // …
    41. CGContextRelease(contextRef);
    42. // …
    43. return YES;
    44. // …
    45. }
    Alles anzeigen