我在"阅读PDF"的iPhone应用程序开发中遇到了一些问题.我试过以下代码.我知道我使用了错误的方法进行解析 - 解析方法仅用于搜索目的.但我想将整个pdf文本转换为字符串.比如Apple的MobileHIG.pdf - 我在这段代码中使用过.
@implementation NetPDFViewController
size_t totalPages; // a variable to store total pages
// a method to get the pdf ref
CGPDFDocumentRef MyGetPDFDocumentRef (const char *filename) {
CFStringRef path;
CFURLRef url;
CGPDFDocumentRef document;
path = CFStringCreateWithCString (NULL, filename,kCFStringEncodingUTF8);
url = CFURLCreateWithFileSystemPath (NULL, path, kCFURLPOSIXPathStyle, 0);
CFRelease (path);
document = CGPDFDocumentCreateWithURL (url);// 2
CFRelease(url);
int count = CGPDFDocumentGetNumberOfPages (document);// 3
if (count == 0) {
printf("`%s' needs at least one page!", filename);
return NULL;
}
return document;
} …
Run Code Online (Sandbox Code Playgroud) 我将我的PDF从SQLite DB转换为NSData变量.现在我有什么选择从这个NSData创建CGPDFDocumentRef?
或者我有什么选择来创建这个CGPDFDocumentRef,在SQLite中有数据吗?
我想创建一个页面的PDF阅读器.
我知道如何使用UIWebView来显示PDF但它会加载整个PDF并希望一次显示一个页面.
PDF存储在本地.应根据水平滑动加载下一个和上一个PDF页面.
如何显示单个页面以及水平滑动和缩放功能?这种问题的最佳方法是什么?有没有这方面的教程?
编辑:我已经使用CGPDF API逐页显示PDF.我使用PDF页面作为图像.但是,由于也使用了UIPageControl,因此缩放功能无法正常工作.如何缩放这些图像以及页面控制?
我了解到Apple已经在SDK 3.2中发布了用于绘制PDF上下文的CGPDF API.
我从这些API中了解到,您可以将PDF绘制到数据对象或PDF文件中.然后,您可以将其导出到沙盒的目录中,或者作为附件添加到邮件中.
但我不确定我们是否可以使用这些API从应用程序包中读取PDF并在屏幕上逐页显示给用户.我想要做的是在杂志阅读器应用程序中打开杂志的PDF.
我还想知道我们是否可以识别PDF文件中的链接并在应用程序中打开它们.
让我知道是否做过或做过这样的事情.
谢谢AJ
是否可以使用CGPDFDocument
或以其他方式访问PDF文档中的"内部"链接?我正在构建一个简单的阅读器应用程序,并希望以PDF格式提供我的内容,但如果我不能支持文档中的页面之间的链接,这可能不会起作用.
这个问题类似,但没有解决如何支持超链接的问题.
可以使用JavaScript来设置a的像素y偏移量UIWebView
,例如:
[webView stringByEvaluatingJavaScriptFromString:[NSString stringWithFormat:@"scrollTo(0, %d)", offset]];
Run Code Online (Sandbox Code Playgroud)
有没有办法得到:
这些信息UIWebView
是否可以通过其他方式获得?
我想如果我有页数(通过CGPDFDocumentGetNumberOfPages
),页面之间的像素高度差距,或单个页面的像素高度,我可以计算offset
使用JavaScript调用.然后我只是连接一个UIButton
或UISlider
在页面之间移动.
编辑我
我有一个解决方案,但它使用UIWebDocumentView
了一个私人子视图UIWebView
.
我创建了一个名为的视图控制器PDFViewerViewController
,它是一个子类WebViewerViewController
,它本身就是一个视图控制器,它包含a UIToolbar
,a UIWebView
,并且符合UIWebViewDelegate
协议.
在调用PDFViewerViewController
Web视图委托方法之后,我会计算有关封闭Web视图和PDF数据的一些信息-webViewDidFinishLoad:
.
此信息用于计算通过JavaScript提供给Web视图的大致每页偏移量.
PDFViewerViewController.h
#import <UIKit/UIKit.h>
#import "WebViewerViewController.h"
@interface UIWebDocumentView : NSObject {}
@end
@interface PDFViewerViewController : WebViewerViewController {
NSUInteger offset;
NSUInteger currentPage;
NSUInteger documentPages;
CGFloat documentHeight;
CGFloat pageHeight;
}
@property (assign) NSUInteger offset;
@property (assign) NSUInteger …
Run Code Online (Sandbox Code Playgroud) 我目前正在开展一个教育项目,我想在iPhone应用程序中添加一些PDF阅读功能.我知道可以添加一个UIWebView并在那里显示PDF,但是我想添加显示页码,"下一个","上一个"按钮等的功能.是CGPDFDocument我应该走的方向还是有更好的(即功能更丰富的)库可用吗?我一直在寻找CGPDFDocument的功能,但除了API参考之外没有多少可用.
是否也可以用这个来注释PDF?
谢谢
J.P
我在我的应用程序中生成PDF.我想通过我的应用程序为这些pdf提供最好的安全性.我添加了Apple提供的默认安全选项,如所有者密码,允许复制,允许打印等...
但我想添加我的证书信息或将其称为使用自定义证书(X.509证书)文件对pdf进行数字签名.
安全框架是否有任何帮助?或者如何实现这一目标?
我一直在做这个问题,并征求你的意见.
我正在构建一个应用程序,其功能的一部分是呈现PDF表单; 意思是显示它们,允许更改字段并将修改后的PDF文件保存回来.UIWebViews不支持PDF交互表单.
使用CGPDF apis(并从此处和其他地方发布的其他问题中获益),我当然可以呈现PDF(没有表单字段/小部件),扫描并找到文档中的字段,找出屏幕上绘制内容的位置和让他们互动.
我似乎无法弄清楚如何更改CGPDFDictionary对象并将它们写回文件.可以使用CGPDF Apis从整个布料创建新的PDF文档,但是如何使用它来修改现有文件?
我应该寻找其他地方,如PoDoFo或libHaru 等第三方PDF库吗?
我很乐意听到任何成功修改过PDF并将其写回来的方法.
我正在使用PDFKitten在PDF文档中搜索字符串并突出显示结果.FastPDFKit或任何其他商业图书馆都没有选择,所以我坚持最接近我的要求.
正如您在屏幕截图中看到的那样,我搜索了字符串"in",除了最后一个字符串外总是正确突出显示.我得到了一个更复杂的PDF文档,其中"in"的突出显示框几乎有40%错误.
我阅读了整个语法并检查了问题跟踪器,但除线高问题外,我没有发现宽度计算.目前我没有看到计算结果或可能出错的任何模式,我希望也许其他人有我的问题.
我目前的期望是在字体类或RenderingState.m中的某处计算坐标和字符宽度是错误的.该项目非常复杂,过去也许有人和PDFKitten有类似的问题.
我使用PDFKitten的原始样本PDF文档作为我的截图.