Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • SEARCH
  • Home
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 7886957
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: June 3, 20262026-06-03T05:27:16+00:00 2026-06-03T05:27:16+00:00

My app creates a pdf page from app data, using Quartz and UIGraphics. Basically

  • 0

My app creates a pdf page from app data, using Quartz and UIGraphics.
Basically I define a CGRect docRect to fit on that page, then increment an NSInteger yOffset each time I draw something.
If yOffset gets larger than docRect.size.height I do a UIGraphicsBeginPDFPage().
This works fine, BUT:

I would like to draw a page count at the bottom, like “Page X of Y“.

X is obviously easy to tell, but at the moment when I create a new page, I don’t know how large Y might be.

I see 2 possible solutions for this:

  1. After drawing all pages, reiterate through all pages and add the counter.
    Problem: As far as I can tell, after calling UIGraphicsBeginPDFPage() there is no way to return back to previous pages. Is anyone able to disconfirm that?

  2. Calculate all yOffset increments in advance to get the total page count.
    Possible, but IMHO not really an elegant solution.

Has anyone advice on this problem?

Thanks in advance, m

  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. Editorial Team
    Editorial Team
    2026-06-03T05:27:18+00:00Added an answer on June 3, 2026 at 5:27 am

    If you don’t want to pre-calculate the sizes of everything to determine in advance how many pages you’ll have, one option is to render in two passes, much like you mention in your question. Render the first pass to temp.pdf and leave room for the page number counter.

    If working through the source content is a memory or performance burden, the second pass can go to final.pdf, using temp.pdf as an input. Loop through all the pages of temp.pdf, using CGPDFDocumentGetNumberOfPages to get your page count. Draw each page from temp.pdf via CGContextDrawPDFPage, followed by drawing the page counter.

    When you’re done, delete temp.pdf as cleanup, and you’re all set.

    Update: Something along the lines of this untested code, summarized from some previous work:

    ...
    CGPDFDocumentRef tempDocRef = CGPDFDocumentCreateWithURL((CFURLRef)tempPdfUrl);
    size_t pageCount = CGPDFDocumentGetNumberOfPages(docRef);
    CGContextRef finalPdfContext = CGPDFContextCreateWithURL((CFURLRef)finalPdfUrl, &defaultPageRect, nil);
    
    for (int pageNum = 1; pageNum <= pageCount; pageNum++) {
      CGPDFPageRef tempPageRef = CGPDFDocumentGetPage(tempDocRef, pageNum+1);
      CGPDFContextBeginPage(finalPdfContext, nil);
      CGContextDrawPDFPage(finalPdfContext, tempPageRef);
    
      // do your page number rendering here, using pageNum and pageCount
      ...
    
      CGPDFContextEndPage(finalPdfContext);
      CGPDFPageRelease(tempPageRef);
    }
    
    CGPDFDocumentRelease(tempDocRef);
    CGContextRelease(finalPdfContext);
    ...
    
    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Related Questions

I'm writing a java app that creates a pdf from scratch using the pdfbox
I have a web app that creates a pdf using Websupergoo's ABCPDF. Right now
I'm creating a Java app that creates 4 PDF files using iText. On the
I have a PowerBuilder app that creates informs and save then as PDF with
I have an app that can optionally open PDF's after it creates them. If
I have a servlet in an GWT app thats creates a PDF file with
I have an app that creates a variable number of ScatterviewItems based on which
I have an app that creates a SQLite database ( with 24 records ),
I have an app that creates a database and do some stuff. I am
So im making an app that creates events by filling in a form then

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.