iOS рисует таблицу в pdf документе - PullRequest
1 голос
/ 19 октября 2011

Я создам pdf из содержимого UIViewController. Когда у UIViewController есть область таблицы (такая же, как в Excel), я не нашел метод для рисования таблицы в документе PDF. Кто-нибудь знает, чтобы решить эту проблему? Пожалуйста, помогите мне.

1 Ответ

4 голосов
/ 19 октября 2011

Не существует простого способа создания таблицы, о которой я знаю, если вы используете графический контекст Quartz (тип CGContextRef). Мне удалось создать таблицу программным способом, рисуя линии в PDF во вложенных циклах for и обращая особое внимание на интервалы, чтобы они выглядели правильно.

псевдопользователей-код:

for (int i=0; i < numberOfRows; i++)
{
// display each row
    // Draw row line
    CGPoint horizontalRowDivider[2] = {CGPointMake(x_startPoint, y_startPoint + (i * row_width)), CGPointMake(x_endPoint, y_endPoint + (i * row_width))};
    CGContextStrokeLineSegments(pdfContext, newlineItemDivider, 2);


    for(int j = 0; j < numberOfColumns; j++)
    {
         //Draw each column cell
         const char *desc_text = "Table value"
         CGContextShowTextAtPoint (pdfContext, x_cellDataLoc, y_cellDataLoc, desc_text, strlen(desc_text));
         CGPoint verticalLineCellDivider[2] = {CGPointMake(x_startPoint + (j * col_width), y_startPoint), CGPointMake(x_endPoint + (j * col_width), y_endPoint)};
         CGContextStrokeLineSegments(pdfContext, verticalLineCellDivider, 2);  
    }


}

Это грубый пример логики, которую вы можете использовать для рисования таблицы. Вам, вероятно, понадобится прямоугольник или граница вокруг вашего стола, чтобы он выглядел правильно, среди любых других настроек, чтобы сделать его так, как вы хотите. Вы можете найти список методов, как это сделать и многое другое, по ссылке ниже. Я знаю, что это, вероятно, не то, что вы имели в виду, но я надеюсь, что это даст вам направление, если вы полностью застряли. Удачи!

В документации Apple вы можете найти полную библиотеку функций, доступных для рисования PDF: http://developer.apple.com/library/ios/#documentation/GraphicsImaging/Reference/CGContext/Reference/reference.html

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...