Более широкие, чем ожидалось, поля с CGContextDrawPDFPage - PullRequest
0 голосов
/ 18 марта 2010

Я рендеринг PDF-страниц на iPhone, используя код ниже. Это работает, но поля кажутся намного шире, чем когда я просматриваю тот же PDF-файл с помощью Acrobat Reader или Mac-Preview, и, следовательно, содержимое уменьшается гораздо меньше, чем было бы в противном случае. Мой код на самом деле вызывает такое поведение?

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

CGContextSetStrokeColorWithColor(context, backgroundColor.CGColor);
CGContextSetFillColorWithColor(context,backgroundColor.CGColor); 
CGContextSetLineWidth(context, 2.0);
CGContextAddRect(context, CGRectMake(0.0,0.0, self.bounds.size.width, self.bounds.size.height));
CGContextDrawPath(context, kCGPathFillStroke);
CGContextTranslateCTM(context, 0.0, self.bounds.size.height);
CGContextScaleCTM(context, 1.0, -1.0);
CGPDFPageRef page = CGPDFDocumentGetPage(myPDF, (size_t) pageNum);
CGContextSaveGState(context);
CGAffineTransform pdfTransform = CGPDFPageGetDrawingTransform(page, kCGPDFMediaBox, self.bounds, 0, true);
CGContextConcatCTM(context, pdfTransform);
CGContextDrawPDFPage(context, page);
CGContextRestoreGState(context);

Ответы [ 2 ]

2 голосов
/ 11 апреля 2010

Предварительный просмотр обычно показывает поле обрезки файла PDF, поэтому вы должны использовать kCGPDFCropBox вместо kCGPDFMediaBox в качестве параметра box для CGPDFPageGetDrawingTransform.

Однако я еще не получил Quartz для фактического масштабирования страницы, если для поля обрезки задан маленький прямоугольник.

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