Javascript 如果PDF已过期,请关闭浏览器选项卡

Javascript 如果PDF已过期,请关闭浏览器选项卡,javascript,c#,itext,adobe,spire.doc,Javascript,C#,Itext,Adobe,Spire.doc,在Acrobat中打开文档时,它可以正常工作,但在Google Chrome等web浏览器中打开相同的PDF文档时,它无法正常工作。此.closeDoc()未在浏览器中执行 字符串路径2=@“D:\test\input.pdf”; 字符串输出=@“D:\test\output.pdf” 您正在尝试“window.close()”吗 “在Acrobat中打开文档时效果很好”-任何具有基本技术背景的人都会知道,他只需要停用Acrobat中的JavaScript即可绕过该机制。@mkl您能建议我如何保

在Acrobat中打开文档时,它可以正常工作,但在Google Chrome等web浏览器中打开相同的PDF文档时,它无法正常工作。此.closeDoc()未在浏览器中执行

字符串路径2=@“D:\test\input.pdf”; 字符串输出=@“D:\test\output.pdf”

您正在尝试“window.close()”吗


“在Acrobat中打开文档时效果很好”-任何具有基本技术背景的人都会知道,他只需要停用Acrobat中的JavaScript即可绕过该机制。@mkl您能建议我如何保护它或在过期日期后使pdf损坏一个选项是使用专业的DRM解决方案。如果你不想这样做,那毕竟是要花钱的,你可以尝试在无法阅读的状态下向用户发送PDF(例如,用固定图像覆盖每页,或者将每页的媒体框移到使用区域之外,或者类似的事情),并且只有在成功检查的情况下(上面的
else{}
分支)使PDF可读(通过在页面上迭代并删除覆盖图像或更正媒体框)。当然,这意味着没有启用JavaScript的PDF查看器的用户根本无法读取PDF…这种机制显然也可以绕过,但这需要非法用户做更多的工作。@mkl如果您能提供一些非常好的示例,听起来不错是的,但在确定(单击)浏览器弹出文件打开后@上述解决方案不起作用
        if (File.Exists(path2)) 
        { 
            iText.Kernel.Pdf.PdfWriter writer = new iText.Kernel.Pdf.PdfWriter(output);
            iText.Kernel.Pdf.PdfDocument pdfDocument = new iText.Kernel.Pdf.PdfDocument(new iText.Kernel.Pdf.PdfReader(path2) ,writer);
            pdfDocument.AddNewPage();

            String js = "var rightNow = new Date();"
                      + "var endDate = new Date('2017-07-13');"
                      + "if(rightNow.getTime() > endDate){"
                      + "app.alert('This Document has expired, please contact us for a new one.',1);" 
                      + "this.closeDoc();}"
                      + "else{}";

            pdfDocument.GetCatalog().SetOpenAction(iText.Kernel.Pdf.Action.PdfAction.CreateJavaScript(js));

            pdfDocument.Close();
         } 
String js = "var rightNow = new Date();"
    + "var endDate = new Date('2017-07-13');"
    + "if(rightNow.getTime() > endDate){"
    + "  app.alert('This Document has expired, please contact us for a new one.',1);" 
    + "  this.closeDoc(); "
    + "  if(window){ window.close(); } "
    + "}"
    + "else{}";