Revision: 16315
http://sourceforge.net/p/skim-app/code/16315
Author: hofman
Date: 2026-05-25 17:16:11 +0000 (Mon, 25 May 2026)
Log Message:
-----------
correct thumbnail size for rotated pages. Add some binder to pdfd thumbnails.
Modified Paths:
--------------
trunk/QuickLook-Skim/GenerateThumbnailForURL.m
trunk/SkimQuickLookThumbnails/SKThumbnailProvider.m
Modified: trunk/QuickLook-Skim/GenerateThumbnailForURL.m
===================================================================
--- trunk/QuickLook-Skim/GenerateThumbnailForURL.m 2026-05-25 14:38:28 UTC
(rev 16314)
+++ trunk/QuickLook-Skim/GenerateThumbnailForURL.m 2026-05-25 17:16:11 UTC
(rev 16315)
@@ -126,6 +126,8 @@
if (pdfPage) {
CGRect pageRect = CGPDFPageGetBoxRect(pdfPage,
kCGPDFCropBox);
CGRect thumbRect = {{0.0, 0.0}, {CGRectGetWidth(pageRect),
CGRectGetHeight(pageRect)}};
+ if ((CGPDFPageGetRotationAngle(pdfPage) % 180))
+ thumbRect.size = CGSizeMake(CGRectGetHeight(pageRect),
CGRectGetWidth(pageRect));
CGContextRef ctxt =
QLThumbnailRequestCreateContext(thumbnail, thumbRect.size, FALSE, NULL);
CGAffineTransform t =
CGPDFPageGetDrawingTransform(pdfPage, kCGPDFCropBox, thumbRect, 0, true);
CGContextConcatCTM(ctxt, t);
@@ -163,6 +165,8 @@
if (pdfPage) {
CGRect pageRect = CGPDFPageGetBoxRect(pdfPage,
kCGPDFCropBox);
CGRect thumbRect = {{0.0, 0.0},
{CGRectGetWidth(pageRect), CGRectGetHeight(pageRect)}};
+ if ((CGPDFPageGetRotationAngle(pdfPage) % 180))
+ thumbRect.size =
CGSizeMake(CGRectGetHeight(pageRect), CGRectGetWidth(pageRect));
CGContextRef ctxt =
QLThumbnailRequestCreateContext(thumbnail, thumbRect.size, FALSE, NULL);
CGAffineTransform t =
CGPDFPageGetDrawingTransform(pdfPage, kCGPDFCropBox, thumbRect, 0, true);
CGContextConcatCTM(ctxt, t);
Modified: trunk/SkimQuickLookThumbnails/SKThumbnailProvider.m
===================================================================
--- trunk/SkimQuickLookThumbnails/SKThumbnailProvider.m 2026-05-25 14:38:28 UTC
(rev 16314)
+++ trunk/SkimQuickLookThumbnails/SKThumbnailProvider.m 2026-05-25 17:16:11 UTC
(rev 16315)
@@ -126,10 +126,12 @@
if (pdfPage) {
CGRect pageRect = CGPDFPageGetBoxRect(pdfPage, kCGPDFCropBox);
CGSize size = [request maximumSize];
- if (pageRect.size.height <= size.height)
- size = pageRect.size;
- else
+ if (pageRect.size.height > pageRect.size.width)
size.width = round(size.height * pageRect.size.width /
pageRect.size.height);
+ else if (pageRect.size.height < pageRect.size.width)
+ size.height = round(size.width * pageRect.size.height /
pageRect.size.width);
+ if ((CGPDFPageGetRotationAngle(pdfPage) % 180))
+ size = CGSizeMake(size.height, size.width);
handler([QLThumbnailReply replyWithContextSize:size
drawingBlock:^BOOL(CGContextRef context) {
@@ -139,6 +141,12 @@
CGContextClipToRect(context, pageRect);
CGContextDrawPDFPage(context, pdfPage);
+ CGRect binderRect, ignored;
+ CGRectDivide(thumbRect, &binderRect, &ignored, 14,
CGRectMinXEdge);
+ binderRect = CGRectApplyAffineTransform(binderRect,
CGAffineTransformInvert(t));
+ CGContextSetGrayFillColor(context, 0, 0.7);
+ CGContextFillRect(context, binderRect);
+
CGPDFDocumentRelease(pdfDoc);
// Return YES if the thumbnail was successfully drawn
inside this block.
@@ -207,10 +215,12 @@
if (pdfPage) {
CGRect pageRect = CGPDFPageGetBoxRect(pdfPage,
kCGPDFCropBox);
CGSize size = [request maximumSize];
- if (pageRect.size.height <= size.height)
- size = pageRect.size;
- else
+ if (pageRect.size.height > pageRect.size.width)
size.width = round(size.height *
pageRect.size.width / pageRect.size.height);
+ else if (pageRect.size.height < pageRect.size.width)
+ size.height = round(size.width *
pageRect.size.height / pageRect.size.width);
+ if ((CGPDFPageGetRotationAngle(pdfPage) % 180))
+ size = CGSizeMake(size.height, size.width);
handler([QLThumbnailReply replyWithContextSize:size
drawingBlock:^BOOL(CGContextRef context) {
@@ -220,6 +230,12 @@
CGContextClipToRect(context, pageRect);
CGContextDrawPDFPage(context, pdfPage);
+ CGRect binderRect, ignored;
+ CGRectDivide(thumbRect, &binderRect, &ignored, 14,
CGRectMinXEdge);
+ binderRect =
CGRectApplyAffineTransform(binderRect, CGAffineTransformInvert(t));
+ CGContextSetGrayFillColor(context, 0, 0.7);
+ CGContextFillRect(context, binderRect);
+
CGPDFDocumentRelease(pdfDoc);
// Return YES if the thumbnail was successfully
drawn inside this block.
This was sent by the SourceForge.net collaborative development platform, the
world's largest Open Source development site.
_______________________________________________
Skim-app-commit mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/skim-app-commit