google-chrome - 如何在 Chrome 中使用 vbscript 打开 Pdf 并通过网址中包含 # 进行搜索

标签 google-chrome pdf vbscript acrobat

美好的一天,

我正在尝试使用 vbscript 打开 pdf url。 pdf 在本地电脑上。我正在使用 vbscript 打开 url 并使用 chrome。在我的 URL 中,我使用 #Search=Register,这将使 pdf 打开并搜索第一次出现的 Register。

我的问题是,即使我的 # 被编码为 %23,我的 Url 也会被 % 编码,然后 chrome pdf 预览无法正常工作。

我的 vbscript 代码:

Dim strChrome
Dim WShellChrome
Dim strUrl

Set WShellChrome = CreateObject("WScript.Shell")
strChrome = "C:\Program Files (x86)\Google\Chrome\Application\chrome.exe"
strUrl = "\\myserver/HelpDocumentation/Configuration - Company Configuration.pdf#Search=Register"

WShellChrome.Run chr(34) + strChrome + chr(34) & " " & chr(34) + strUrl + chr(34), 1, false

当我运行此代码时,它会使用以下网址打开 Chrome:

file://myserver/HelpDocumentation/Configuration%20-%20Company%20Configuration.pdf%23Search=Register

注意已发生的 % url 编码。 %20 是空格,%23 是#

浏览器无法找到 pdf 网址,因为 # 已编码为 %23。 如果我将浏览器 URL 中的 %23 更改为 #,它就会起作用并显示 pdf。

URL 中的 %20(空格)似乎没问题,但它不喜欢 %23(#)。

我需要网址中的 # 来打开 pdf 并搜索特定字符串。

如果我复制网址,它似乎也不是 vbscript:

\\myserver/HelpDocumentation/Configuration - Company Configuration.pdf#Search=Register

并将其粘贴到我的 chrome 网址中,它会自动将空格转换为 %20,将 # 转换为 %23,但 acrobat 预览无法工作,因为它认为 %23 是文件名的一部分。

希望我说得有道理,如果你不明白,请询问。

最佳答案

回复后我尝试了以下操作。

尝试使用 strUrl = escape(strUrl) 但这导致 strUrl 被完全编码,甚至/和\斜杠也是如此。

然后我开始检查不同的 URL,按照建议将/更改为\斜杠以及编码空格。这就是我的结果。

当我使用不带编码空格的网址时,例如

"\\myserver\HelpDocumentation\Configuration - Company Configuration.pdf#Search=Register_"

在 Chrome 中,它根本不编码,并且在 url 中的每个空格处打开一个新选项卡。 - 不工作。

当我使用时

"\\myserver\HelpDocumentation\Configuration%20-%20Company%20Configuration.pdf#Search=Register_"

在 Chrome 中,它更改为:file://myserver/HelpDocumentation/Configuration%2520-%2520Company%2520Configuration.pdf%23Search=Register_
然后由于双重编码而无法工作。因此它添加了一个“file:”,并再次对 url 进行编码,对空格和 # 进行了编码。

当我使用时

file:\\myserver\HelpDocumentation\Configuration%20-%20Company%20Configuration.pdf#Search=Register_

在 Chrome 中它保持不变,并且结果它正在工作。因此,在开头附加“file:”并仅对 url 中的空格进行编码会产生差异。

我最终得到了以下代码。请注意,strUrl 是我刚刚硬编码的输入变量。我现在还检查它是否是 pdf,然后添加“文件:”,因为 url 可以是文件或报告 url。此代码有效。

Dim strChrome
Dim WShellChrome
Dim strUrl

Set WShellChrome = CreateObject("WScript.Shell")
strChrome = """C:\Program Files (x86)\Google\Chrome\Application\chrome.exe"""
strUrl = "\\myserver\HelpDocumentation\Configuration - Company Configuration.pdf#Search=Register_"

strUrl = Replace(strUrl, " ", "%20")

if(InStr(strUrl,".pdf")) Then
   strUrl = "file:" + strUrl
End If

WShellChrome.Run strChrome & " " & ""+strUrl+"" , 1, false

关于google-chrome - 如何在 Chrome 中使用 vbscript 打开 Pdf 并通过网址中包含 # 进行搜索,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64697875/

相关文章:

html - 使用 :after pseudo element after anchor element - browser differences

google-chrome - 不进入隐身模式就无法进入 Google Analytics

java - 使用 iText 创建具有重复标题的表格

internet-explorer - 如何获得具有焦点的 IE 选项卡的句柄?

google-chrome - 为什么 chrome.extension.getBackgroundPage() 返回 null?

javascript - 单击按钮替换输入字段中的选定文本

java - PDFBox 是否支持专色和分色?

parsing - 以编程方式从 PDF 文件中提取文本(手动) - 丢失一些文本

VBScript For Each 不起作用

excel - 我可以使用 UTF-8 无 BOM 导出 Excel 数据吗?