小编Dav*_*e W的帖子

如何使用javascript在浏览器中显示PDF流

我正在使用jquery的ajax方法访问现有的WCF Web服务(它将PDF作为字节流返回).

当对服务的调用完成时,我最终得到一个包含PDF的javascript变量(该变量包含二进制数据,从"%PDF-1.4 ..."开始).

我想在新的浏览器窗口中显示这个PDF,但是我很难实现这个目标.

到目前为止,我的研究表明,我可能能够使用数据实现我想要的东西:uri,所以我在ajax调用完成时调用的代码如下:

function GotPDF(data)
{
    // Here, data contains "%PDF-1.4 ..." etc.
    var datauri = 'data:application/pdf;base64,' + Base64.encode(data);
    var win = window.open("", "Your PDF", "width=1024,height=768,resizable=yes,scrollbars=yes,toolbar=no,location=no,directories=no,status=no,menubar=no,copyhistory=no");
    win.document.location.href = datauri;
}
Run Code Online (Sandbox Code Playgroud)

这会导致打开一个新的浏览器窗口,但内容为空.

有趣的是,如果我通过使用文件:uri(例如file:// c:/tmp/example.pdf)将我的浏览器(IE9)指向本地磁盘上的现有文件,那么我得到相同的结果,即空白窗口.

有什么方法可以显示这个PDF数据吗?

javascript browser pdf jquery

19
推荐指数
2
解决办法
6万
查看次数

如何使用JSON.NET反序列化DateTime时保留时区?

我正在使用JSON.NET在C#中解析一些JSON.JSON中的一个字段是日期/时间,如下所示:

{
    "theTime":"2014-11-20T07:15:11-0500",
    // ... a lot more fields ...
}
Run Code Online (Sandbox Code Playgroud)

请注意,时间部分是07:15:11(GMT-5小时TZ)

我从这样的流解析JSON:

 using (var streamReader = new StreamReader(rcvdStream))
 {
     JsonTextReader reader = new JsonTextReader(streamReader);
     JsonSerializer serializer = new JsonSerializer();
     JObject data = serializer.Deserialize<JObject>(reader);
     //...
  }
Run Code Online (Sandbox Code Playgroud)

然后访问时间:

DateTime theTime = (DateTime)data["theTime"];
Run Code Online (Sandbox Code Playgroud)

但是,这给了我这个DateTime对象:

{20/11/2014 12:15:11}
Date: {20/11/2014 00:00:00}
Day: 20
DayOfWeek: Thursday
DayOfYear: 324
Hour: 12
Kind: Local
Millisecond: 0
Minute: 15
Month: 11
Second: 11
Ticks: 635520825110000000
TimeOfDay: {12:15:11}
Year: 2014
Run Code Online (Sandbox Code Playgroud)

我需要知道原始的本地时间和tz偏移量,但我似乎在反序列化过程中丢失了这些信息,它给了我时间,我认为是我当地的时间(我在英国,所以目前在GMT + 0).

在反序列化时,我有办法保留时区信息吗?

编辑:添加了有关我如何反序列化的更多细节.

c# timezone datetime json.net deserialization

11
推荐指数
1
解决办法
1万
查看次数

在iOS8上没有调用willRotateToInterfaceOrientation

我正在我的应用程序中使用VFR PDF查看器库,我在其中呈现它:

ReaderDocument *document = [ReaderDocument withDocumentFilePath:pdfFile password:nil];
ReaderViewController *vc = [[ReaderViewController alloc] initWithReaderDocument:document];
[self.navigationController pushViewController:vc animated:YES];
Run Code Online (Sandbox Code Playgroud)

如果我在iOS7上运行,一切正常.

如果我跑我的iOS8上的应用程序,在ReaderViewController的willRotateToInterfaceOrientation方法不会被调用,所以当设备旋转文档不能正确格式化.

但是,如果我运行自带的iOS8上的库中的演示应用程序,在ReaderViewController的willRotateToInterfaceOrientation不会被调用,这使我相信图书馆是确定的,我做错了什么(或者忽略做某事)在我应用程序.

我对这种行为感到很困惑.为什么不在我的iOS8应用程序中调用rpmRotateToInterfaceOrientation,但它在其他变体下呢?我怎样才能尝试追踪这个?

ipad uiinterfaceorientation vfr-reader ios8

9
推荐指数
1
解决办法
9877
查看次数

Eclipse:未提取引用库.jar的更新

我的Eclipse工作区中有2个Java项目,如下所示:

一个是代码库,可以在构建时自动创建.jar文件.

另一个是使用该库中的类的应用程序,并引用库项目创建的.jar文件(通过右键单击应用程序 - >构建路径 - >配置构建路径 - >库 - >添加JAR ...)

但是,每当我修改库项目中的类时,虽然我可以看到库.jar得到更新,但是除非我从应用程序引用的库中删除库.jar并重新添加它,否则app项目不会获取更改

我从根本上做错了吗?是否有更好的方法将应用程序连接到共享代码库?如何确保我的应用程序始终引用最新的库代码?

java eclipse jar

3
推荐指数
1
解决办法
1万
查看次数

在另一个视图中嵌入VFR Reader

我正在尝试使用VFR Reader代码将PDF查看功能添加到我的iPad应用程序中.

我可以使用现有的ReaderViewController将Reader显示为全屏页面,使用如下代码:

ReaderDocument *document = [ReaderDocument withDocumentFilePath:file password:nil];
if (document != nil)
{
    ReaderViewController *readerViewController = [[ReaderViewController alloc] initWithReaderDocument:document];
    // ...
    [self presentModalViewController:readerViewController animated:YES];
}
Run Code Online (Sandbox Code Playgroud)

这确实非常好用.

但是,我想在PDF周围有其他东西(比如一个带有按钮的永久显示栏,例如),所以理想情况下我喜欢读者视图在我自己的视图中.

我对iOS编程很陌生,无法弄清楚如何实现这一目标.有人能指出我正确的方向并告诉我在子视图中用VFR阅读器自己查看我需要做些什么吗?

ios vfr-reader

3
推荐指数
1
解决办法
634
查看次数