iOS - рисовать текст в таблице, как структура в PDF

Я пытаюсь создать PDF-файл, как показано ниже. Я создал строку с помощью NSString *tempStr = [NSString stringWithFormat:@" %@ %@ %@ %@ \n",monthsInfo.month,monthsInfo.principal,monthsInfo.interest,monthsInfo.balance];. Я просто зациклил этот код для каждой строки и построил строку.

введите здесь описание изображения

у меня есть pdf с кодом

UIGraphicsBeginPDFPageWithInfo(CGRectMake(0, 0, 612, 792), nil);

                // Draw a page number at the bottom of each page.
                currentPage++;
                [self drawPageNumber:currentPage];

                // Render the current page and update the current range to
                // point to the beginning of the next page.
                currentRange = [self renderPage:1 withTextRange:currentRange andFramesetter:framesetter];

Я получил PDF-файл, как показано ниже, и обнаружил проблему с форматированием. Может ли кто-нибудь помочь мне структурировать этот PDF-файл или, пожалуйста, дайте свое предложение, какой подход мне нужно использовать, чтобы правильно его построить.

введите здесь описание изображения


person karthik    schedule 12.06.2014    source источник
comment
Размер каждого символа разный. Я бы попробовал с вкладкой, а не с пробелом в stringWithFormat. (Возможно, подойдет другой шрифт):   -  person Watsche    schedule 12.06.2014
comment
@Watsche, я пробовал с вкладкой, даже с вкладкой я обнаружил неправильное выравнивание.   -  person karthik    schedule 13.06.2014
comment
чем надо брать моноширинный шрифт   -  person Watsche    schedule 13.06.2014
comment
@Watsche, поскольку значение в столбцах может иметь разное количество цифр, как вы думаете, моноширинный шрифт будет работать в этом случае.   -  person karthik    schedule 13.06.2014
comment
Это другая проблема. Например, вы должны проверить количество цифр и вставить пробел в свою строку. Теперь я сосредоточился на вопросе формата.   -  person Watsche    schedule 13.06.2014


Ответы (2)


В некоторых шрифтах у вас есть другая ширина символа. Таким образом, вы никогда не получите прямой столбик. Один из способов — использовать моноширинные шрифты с одинаковой шириной символов. Возможно, вкладка "\t" тоже сработает. В любом случае это лучше, чем космос.

person Watsche    schedule 12.06.2014

Я пробовал с приведенным ниже кодом, и я нахожу положение x, y, используя логику, устанавливаю кадры и просто рисую их.

NSDictionary *attributes = [NSDictionary dictionaryWithObjects:
                                @[font, textColor,backgroundColor]
                                                           forKeys:
                                @[NSFontAttributeName, NSForegroundColorAttributeName,NSBackgroundColorAttributeName]];
[text drawInRect:frame withAttributes:attributes];

Я следил за учебником здесь Создание PDF-документов

Теперь я получил ожидаемый результат введите здесь описание изображения

person karthik    schedule 13.06.2014