未记录的Windows内置PDF渲染器功能?

时间:2015-09-15 09:10:08

标签: c# pdf windows-10 uwp microsoft-edge

使用Windows.Data.Pdf命名空间,我可以在不使用任何第三方库的情况下呈现pdf(作为图像)。

如果我没弄错,Microsoft的Edge浏览器使用相同的库来呈现pdfs(Windows.Data.Pdf.dll)。通过查看官方Windows.Data.Pdf文档here,我可以看到它只是关于

  

将可移植文档格式(PDF)文档中的页面转换为图像文件。

但是,Edge浏览器有"搜索文本"渲染pdf时的功能,我在Windows.Data.Pdf库中找不到任何地方。

我的问题是,是否有任何未记录的(因此非官方的)功能可用于Windows.Data.Pdf命名空间(或Windows内置的其他位置)? (具体来说,搜索文本函数,我假设我必须能够a)提取pdf的文本,这样我就可以搜索它,并且b)在渲染的页面上获得字符串出现的XY,这样我就能以某种方式突出显示它)

2 个答案:

答案 0 :(得分:4)

一般Windows 10应用使用的库与func insertRecords() { let usrID = txtID.text let checkin = lblInOut.text let comment = txtComment.text // The address of the web service let urlString = "http://your_url/checkInOut_post.php" // These are the keys that your are sending as part of the post request let keyValues = "id=\(usrID)&inout=\(checkin)&comment=\(comment)" // 1 - Create the session by getting the configuration and then // creating the session let config = NSURLSessionConfiguration.defaultSessionConfiguration() let session = NSURLSession(configuration: config, delegate: nil, delegateQueue: nil) // 2 - Create the URL Object if let url = NSURL(string: urlString){ // 3 - Create the Request Object var request = NSMutableURLRequest(URL: url) request.HTTPMethod = "POST" // set the key values request.HTTPBody = keyValues.dataUsingEncoding(NSUTF8StringEncoding); // 4 - execute the request let taskData = session.dataTaskWithRequest(request, completionHandler: { (data:NSData!, response:NSURLResponse!, error:NSError!) -> Void in println("\(data)") // 5 - Do something with the Data back if (data != nil) { // we got some data back println("\(data)") let result = NSString(data: data , encoding: NSUTF8StringEncoding) println("\(result)") if result == "OK" { let a = UIAlertView(title: "OK", message: "Attendece has been recorded", delegate: nil, cancelButtonTitle: "OK") println("\(result)") dispatch_async(dispatch_get_main_queue()) { a.show() } } else { // display error and do something else } } else { // we got an error println("Error getting stores :\(error.localizedDescription)") } }) taskData.resume() } } 不同,它只是windows.data.pdf.dll

中定义的命名空间

enter image description here

另一方面,Windows.Foundation.UniversalApiContract是一个原生函数库,因此您需要查看是否可以让Windows.Data.Pdf.dll使用它。

编辑:以下是DllImport的DependencyWalker的输出您感兴趣的功能可能是PdfCreateRenderer

enter image description here

答案 1 :(得分:1)

对于迟到的回复感到抱歉,但我想这永远不会太晚。 Windows.Data.Pdf仅支持渲染操作。在Windows.Data.Pdf库中不公开格式化特定操作,如搜索,注释枚举等。 Windows组件也不依赖于Windows.Data.Pdf