【问题标题】:Opening a PDF with search parameters just opens the PDF打开带有搜索参数的 PDF 只会打开 PDF
【发布时间】:2014-03-11 19:08:01
【问题描述】:

我被要求在现有系统中添加一些搜索功能,以收集我们拥有的 PDF。我知道如何搜索 PDF 并使用搜索参数打开它们,在我编写的测试应用程序中,它就像一个梦一样工作。当尝试将其转换为我们现有的应用程序时,PDF 会打开,但不会弹出搜索词或 Acrobat Reader 的高级查找。任何帮助将不胜感激!

这是cs代码的sn-p:

case "PDF":
      string searchTerms = SearchWordsTB.Text;
      searchTerms = searchTerms.Replace(',', ' ');
      launchStr = "OpenPDF('" + e.Row.Cells[9].Text.Replace("\\", "/") + "','" + HttpUtility.UrlEncode(e.Row.Cells[2].Text) + "','" + e.Row.Cells[0].Text + "','" + searchTerms + "')";
      break;

我们正在动态创建文档列表,PDF 是其中一种选择。假设我正确理解这一点,将创建一个 DataGrid,其中包含所有这些可点击的行,这些行在点击时将执行 Javascript 函数。 Javascript函数OpenPDF如下所示:

function OpenPDF(url, filename, ID, searchTerms) {
    if (searchTerms.length > 0) {
        window.open('FileViewer.aspx?name=' + filename + '&ID=' + ID + '&url=' + url + '#search="' + searchTerms + '"', 'mywindow' + windowCnt, 'width=800,height=600,location=no,resizable=yes');
    }
    else {
        window.open('FileViewer.aspx?name=' + filename + '&ID=' + ID + '&url=' + url, 'mywindow' + windowCnt, 'width=800,height=600,location=no,resizable=yes');
    }
    windowCnt++;
}

通过跟踪 CS 代码中的调试,我知道我正确地删除了搜索词中的逗号,所以这不应该是问题。当前发生的情况是 PDF 文件可以正常打开,但没有使用搜索词。我曾尝试通过 Javascript 跟踪调试器(对我而言,它一直充其量是参差不齐的),但断点从未命中。还应该注意的是,Javascript 函数保存在一个单独的 Javascript 文件中,并且没有内联在 aspx 页面中。是的,我们正确地引用了 Javascript 文件。我将非常乐意使用所需的任何额外信息来更新这篇文章。提前感谢您的帮助!

【问题讨论】:

    标签: c# javascript asp.net pdf


    【解决方案1】:

    我能够通过在启动字符串上使用 http 编码来达到预期的结果,如下所示。

    launchStr = "OpenFile('" + HttpUtility.UrlEncode(e.Row.Cells[9].Text.Replace("\\", "/") + "#search=\"" + searchTerms + "\"") + "','" + HttpUtility.UrlEncode(e.Row.Cells[2].Text) + "','" + e.Row.Cells[0].Text + "','" + e.Row.Cells[1].Text + "')";
    

    然后我使用该功能打开其中包含 PDF 的窗口。我遇到的问题是,没有 HTTP 编码,URL 只是切断了搜索参数。我相信这是因为 #search="blah" 通常不被识别为 URL 的一部分,因此被截断。如果有人有更好的理由,我很想听听。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-11-04
      • 1970-01-01
      • 2020-01-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多