【问题标题】:Using PDF in iPad在 iPad 中使用 PDF
【发布时间】:2010-04-10 10:13:33
【问题描述】:

有没有人尝试在 iPad 应用程序中使用 PDF,使用 CGPDf 功能。我在 iPhone 中使用过它并且效果很好,但是当我在 iPad 中使用相同的代码时,页面尺寸缩小了,经过试用后我将比例设置如下

CGContextScaleCTM(context,1.85, -1.80);

这一次它完全适合屏幕,但这只是一个试验和错误,为什么它不像 iPhone 那样适合屏幕,我也正确设置了视图大小。

任何有相关线索的人请告诉我。

这也是我绘制 PDF 页面的 drawRect 方法

void drawRect:(CGRect)rect{

UIGraphicsBeginPDFPage();
CGContextRef context = UIGraphicsGetCurrentContext();
CGPDFPageRef page = CGPDFDocumentGetPage(pdf, pageNumber);
CGContextSaveGState(context);
CGContextTranslateCTM(context, 1.0, self.frame.size.height);
CGContextScaleCTM(context,1.0, -1.0);   
CGContextDrawPDFPage(context, page);
CGContextRestoreGState(context);

}

alt text http://www.freeimagehosting.net/uploads/6b8bb69bb9.png

谢谢

【问题讨论】:

  • 为什么不简单地使用 UIWebView?
  • 您的代码扩展不均匀,这很糟糕。
  • @KennyTM : UIWebView 提供上下颠倒的导航,并希望像一本书一样并排导航,无论如何,davids 的解决方案效果很好。

标签: pdf ipad


【解决方案1】:

你会想做类似的事情

CGRect  box = CGPDFPageGetBoxRect(page, kCGPDFMediaBox);
CGFloat scale = bounds.size.width / box.size.width;
if (bounds.size.height / box.size.height < scale)
    scale = bounds.size.height / box.size.height;

适应 PDF 的大小。

【讨论】:

  • 感谢大卫的工作!现在它非常适合,但是我面临另一个问题,我在滚动视图中有我的 PDF 页面视图,这样我就可以缩放 PDF 页面,但是当我放大滚动视图时,PDF 页面视图只会被放大并且 PDF 中的文本松散的清晰度。有什么办法可以克服这个吗?我尝试在视图上调用 setNeedsDisplay 方法但搞砸了。谢谢
  • 如果可行,那么投票赞成答案怎么样,这样更容易发现?你需要做一些时髦的事情。基本上,默认行为是以 100% 的比例放大像素。因此,您需要以新的比例绘制它们,并将滚动条重置为 100%,以便将它们绘制成未缩放的。
【解决方案2】:

如果您启用了导航栏,它将在两侧留下大约 10 像素。只有当您在整个区域 (768*1004) 上绘制时,它才会适合..

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-03-03
    • 1970-01-01
    • 1970-01-01
    • 2013-03-29
    • 1970-01-01
    • 1970-01-01
    • 2011-05-12
    相关资源
    最近更新 更多